Files
imdd_silas/Tests/05_Lab/awg_minimal.m
2024-10-23 09:32:10 +02:00

34 lines
1.3 KiB
Matlab

M = 4;
usemrds = 0;
fsym = 68e9;
fdac = 256e9;
awg_vpp = 0.1;
rrcalpha = 0.05;
%%%%% Construct AWG and Scope Modules %%%%%%
SCP = ScopeKeysight("model","UXR1104B",'autoscale',0,"fadc","GSa_256","channel",[0,0,0,1],"recordLen",2000000,"removeDC",1);
AWG = AwgKeysight("model","M8199B","fdac",fdac,"scaletodac",[1,1],"skews",[0,0],"voltages",[awg_vpp,0]);
A2S = Awg2Scope(AWG,SCP,[0,0,0,1]);
%%%%% Symbol Generation %%%%%%
Pform = Pulseformer("fsym",fsym,"fdac",4*fsym,"pulse","rrc","pulselength",16,"rrcalpha",rrcalpha);
[Digi_sig,Symbols,Bits] = PAMsource("fsym",fsym,"M",M,"order",19,"useprbs",1,...
"fs_out",fdac,"applyclipping",0,"clipfactor",1.7,...
"applypulseform",0,"pulseformer",Pform,"randkey",pn_key,...
"db_precode",db_precode,...
"mrds_code",usemrds,"mrds_blocklength",512,"db_encode",db_coding_approach).process();
%%%%% Resample to DAC rate %%%%%%
Digi_sig = Digi_sig.resample("fs_out",AWG.fdac);
Digi_sig = Filter('filtdegree',5,"f_cutoff",1.1*(fsym/log2(M)),"fs",Digi_sig.fs,"filterType",filtertypes.gaussian).process(Digi_sig);
%%%%% AWG --> Scope %%%%%%
[Scpe_sig,~,~,~] = A2S.process("signal1",Digi_sig);
Scpe_sig.plot('displayname','Signal from Scope','fignum',10);
Scpe_sig.spectrum("displayname","Scope PSD","fignum",20);