wqy1985
Junior Member level 3
ciccomp
Hi,all
I am in a project of Sigma-Delta ADC. But I get in trouble when I design the digital filter in the MATLAB. The filter consists of a CIC, a CICCOMP and two halfband. When CIC is followed by the CICCOMP and then the twe halfbands, the CICCOMP can compensate the droop caused by the CIC in the passband well. But when I exchange the order between the CICCOMP and the first halfband(the order now is CIC-halfband-CICCOMP-halfband), there will be a bugle in the passband which is like overcompensation. I don't know why it happens. I attach the figure I simulate and the code I used in the MATLAB.
So thanks for your response.
this is the code i use in the matlab.
Fs = 6144000; % Input sampling frequency
Fpass = 21770; % Frequency band of interest
M = 16; % Decimation factor of CIC
Hcic = design(fdesign.decimator(M,'CIC',01,Fpass,120,Fs));
Hd = cascade(dfilt.scalar(1/gain(Hcic)),Hcic); %the CIC filter
hb=fdesign.decimator(2,'halfband',148460,120,384000);%first halfband
Hb=equiripple(hb);
d = fdesign.ciccomp(Hcic.DifferentialDelay, ...
Hcic.NumberOfSections,Fpass,74230,.01,120,192000);%CICCOMP
Hdc=design(d);
filter1=cascade(Hd,Hb,Hdc);
fvtool(filter)
Hi,all
I am in a project of Sigma-Delta ADC. But I get in trouble when I design the digital filter in the MATLAB. The filter consists of a CIC, a CICCOMP and two halfband. When CIC is followed by the CICCOMP and then the twe halfbands, the CICCOMP can compensate the droop caused by the CIC in the passband well. But when I exchange the order between the CICCOMP and the first halfband(the order now is CIC-halfband-CICCOMP-halfband), there will be a bugle in the passband which is like overcompensation. I don't know why it happens. I attach the figure I simulate and the code I used in the MATLAB.
So thanks for your response.
this is the code i use in the matlab.
Fs = 6144000; % Input sampling frequency
Fpass = 21770; % Frequency band of interest
M = 16; % Decimation factor of CIC
Hcic = design(fdesign.decimator(M,'CIC',01,Fpass,120,Fs));
Hd = cascade(dfilt.scalar(1/gain(Hcic)),Hcic); %the CIC filter
hb=fdesign.decimator(2,'halfband',148460,120,384000);%first halfband
Hb=equiripple(hb);
d = fdesign.ciccomp(Hcic.DifferentialDelay, ...
Hcic.NumberOfSections,Fpass,74230,.01,120,192000);%CICCOMP
Hdc=design(d);
filter1=cascade(Hd,Hb,Hdc);
fvtool(filter)