Code for Deliverable 05
This commit is contained in:
@@ -135,6 +135,7 @@ classdef AWG < handle
|
||||
%%%%%%%%% PRECOMP SINC ROLLOFF %%%%%%%%%
|
||||
if 1
|
||||
% X: design FIR filter for sinc precomp
|
||||
% https://www.dsprelated.com/showarticle/1191.php
|
||||
ntaps = 13;
|
||||
npts = 32;
|
||||
% least-squares FIR design
|
||||
|
||||
@@ -9,6 +9,9 @@ classdef PAMsource
|
||||
fsym
|
||||
randkey
|
||||
|
||||
mrds_code
|
||||
mrds_blocklength
|
||||
|
||||
applypulseform
|
||||
pulseformer
|
||||
|
||||
@@ -30,6 +33,9 @@ classdef PAMsource
|
||||
options.fsym = 112e9;
|
||||
options.randkey = 0;
|
||||
|
||||
options.mrds_code = 0;
|
||||
options.mrds_blocklength = 512;
|
||||
|
||||
options.applypulseform = 1;
|
||||
options.pulseformer Pulseformer;
|
||||
|
||||
@@ -84,22 +90,28 @@ classdef PAMsource
|
||||
|
||||
symbols = PAMmapper(obj.M,0).map(bits);
|
||||
symbols.fs = obj.fsym;
|
||||
|
||||
if obj.mrds_code
|
||||
symbols = MRDS_coding("blocklength",obj.mrds_blocklength).encode(symbols);
|
||||
end
|
||||
|
||||
if obj.applyclipping
|
||||
sym_min = min(symbols.signal);
|
||||
sym_max = max(symbols.signal);
|
||||
end
|
||||
|
||||
%%%%% Pulseforming %%%%%%
|
||||
%%%%% Pulse-forming %%%%%%
|
||||
if obj.applypulseform
|
||||
digi_sig = obj.pulseformer.process(symbols);
|
||||
else
|
||||
digi_sig = symbols;
|
||||
end
|
||||
|
||||
%%%%% Resample to f DAC %%%%%%
|
||||
%%%%% Re-sample to f DAC %%%%%%
|
||||
digi_sig = digi_sig.resample("fs_in",digi_sig.fs,"fs_out",obj.fs_out,"n",10,"beta",5);
|
||||
|
||||
% digi_sig.spectrum("fignum",111,"displayname","after pulseforming");
|
||||
|
||||
%%%%% Hard clip digital signal to PAM range before DAC %%%%%%
|
||||
if obj.applyclipping
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user