M=2; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s1=filter(b,1,delta); %求取滤波器冲激响应
s2=filter(b,1,s1); %求取滤波器冲激响应
s3=filter(b,1,s2); %求取滤波器冲激响应
s4=filter(b,1,s3); %求取滤波器冲激响应
s=filter(b,1,s4); %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec2=Spec-max(Spec);
f=0:length(Spec)-1;
f=2*f/(length(Spec)-1); %对频率轴进行归一化处理
M=5; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s1=filter(b,1,delta); %求取滤波器冲激响应
s2=filter(b,1,s1); %求取滤波器冲激响应
s3=filter(b,1,s2); %求取滤波器冲激响应
s4=filter(b,1,s3); %求取滤波器冲激响应
s=filter(b,1,s4); %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec5=Spec-max(Spec);
M=7; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s1=filter(b,1,delta); %求取滤波器冲激响应
s2=filter(b,1,s1); %求取滤波器冲激响应
s3=filter(b,1,s2); %求取滤波器冲激响应
s4=filter(b,1,s3); %求取滤波器冲激响应
s=filter(b,1,s4); %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec7=Spec-max(Spec);
M=8; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s1=filter(b,1,delta); %求取滤波器冲激响应
s2=filter(b,1,s1); %求取滤波器冲激响应
s3=filter(b,1,s2); %求取滤波器冲激响应
s4=filter(b,1,s3); %求取滤波器冲激响应
s=filter(b,1,s4); %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec8=Spec-max(Spec);
% plot(f,Spec2,f,Spec5,f,Spec7,f,Spec8);axis([0 1 -50 0]);grid;
% xlabel('归一化频率');ylabel('幅度(dB)');
% legend('M=2','M=5','M=7','M=8');
% grid;
plot(f,Spec2,'-',f,Spec5,'.',f,Spec8,'--');axis([0 1 -200 0]);
xlabel('归一化频率');ylabel('幅度(dB)');
legend('M=2','M=5','M=8');
grid;
%用Matlab仿真长度为4的不同级联数CIC滤波器的频谱特性。
M=5; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s1=filter(b,1,delta); %求取滤波器冲激响应
s2=filter(b,1,s1); %求取滤波器冲激响应
s3=filter(b,1,s2); %求取滤波器冲激响应
s4=filter(b,1,s3); %求取滤波器冲激响应
s5=filter(b,1,s4); %求取滤波器冲激响应
Spec1=20*log10(abs(fft(s1))); %求取滤波器频谱特性
Spec1=Spec1-max(Spec1);
Spec2=20*log10(abs(fft(s2))); %求取滤波器频谱特性
Spec2=Spec2-max(Spec2);
Spec3=20*log10(abs(fft(s3))); %求取滤波器频谱特性
Spec3=Spec3-max(Spec3);
Spec4=20*log10(abs(fft(s4))); %求取滤波器频谱特性
Spec4=Spec4-max(Spec4);
Spec5=20*log10(abs(fft(s5))); %求取滤波器频谱特性
Spec5=Spec5-max(Spec5);
f=0:length(Spec1)-1;
f=2*f/(length(Spec1)-1); %对频率轴进行归一化处理
plot(f,Spec1,'-',f,Spec2,'.',f,Spec3,'--',f,Spec5,'-.');axis([0 0.2 -25 0]);
xlabel('归一化频率');ylabel('幅度(dB)');
legend('D=1','D=2','D=3','D=5');
grid;
从图中可以清楚地看出,对于归一化通带频带率为0.2的通带衰减,单级CIC滤波器为3.8dB,2级CIC滤波器为7.5dB,5级CIC滤波器则已达到18.9dB。对于给定的通带衰减要求,多级CIC滤波器的通带范围要低于单级CIC滤波器。