46 lines
1.2 KiB
Matlab
46 lines
1.2 KiB
Matlab
|
clear all;
|
||
|
close all;
|
||
|
|
||
|
decim_rate = 50000;
|
||
|
|
||
|
h_cic = dsp.CICDecimator(decim_rate,1,6);
|
||
|
gainCIC = (h_cic.DecimationFactor*h_cic.DifferentialDelay)^h_cic.NumSections
|
||
|
[h1, w1] = h_cic.freqz();
|
||
|
|
||
|
fs = 1;
|
||
|
fPass = 0.20;
|
||
|
fStop = 0.50;
|
||
|
ast = 70;
|
||
|
|
||
|
CICCompDecim = dsp.CICCompensationDecimator(h_cic, ...
|
||
|
'DecimationFactor',2,'PassbandFrequency',fPass, ...
|
||
|
'StopbandFrequency',fStop,'SampleRate',fs, ...
|
||
|
'StopbandAttenuation',ast);
|
||
|
[h2, w2] = CICCompDecim.freqz();
|
||
|
CICCompDecim.coeffs()
|
||
|
|
||
|
FC = dsp.FilterCascade(h_cic,CICCompDecim);
|
||
|
[h3, w3] = FC.freqz();
|
||
|
|
||
|
subplot(311); hold on;
|
||
|
plot(w1/pi, 20*log10(abs(h1)/gainCIC));
|
||
|
plot(w2/pi, 20*log10(abs(h2)));
|
||
|
hold off; grid
|
||
|
|
||
|
subplot(312); plot(w3/pi, 20*log10(abs(h3)/gainCIC)); grid
|
||
|
|
||
|
% M = 8; % Decimation factor
|
||
|
% Fp = 40; % Passband-edge frequency
|
||
|
% Fst = 60; % Stopband-edge frequency
|
||
|
% Ap = 0.1; % Passband peak-to-peak ripple
|
||
|
% Ast = 80; % Minimum stopband attenuation
|
||
|
% Fs = 800; % Sampling frequency
|
||
|
% HfdDecim = fdesign.decimator(M,'lowpass',Fp,Fst,Ap,Ast,Fs);
|
||
|
% HNyqDecim = design(HfdDecim,'kaiserwin','SystemObject', true);
|
||
|
%
|
||
|
% [h4, w4] = freqz(HNyqDecim);
|
||
|
% subplot(313); plot(w4/pi, 20*log10(abs(h4))); grid
|
||
|
|
||
|
nt = numerictype(1,12,11);
|
||
|
fdhdltool(h_cic, nt);
|
||
|
fdhdltool(CICCompDecim, nt)
|