CIC 滤波器——不同长度的单级CIC滤波器的频谱特性

CIC 滤波器

% 多速率信号处理过程的关键是设计满足要求的抗混叠滤波器:

% 第一:滤波器在有用信号频段内的纹波系数满足要求;

% 第二:抽取或内插处理后,在有用信号频段内不产生频谱混叠;

% 第三:滤波器占用硬件资源少且运算速度快。

%

% CIC(积分梳状)滤波器及半带滤波器因为具有速度快、占用资源少等特点,

% 在多速率信号处理中得到了广泛的应用。

% CIC滤波器的结构简单,没有乘法器,只有加法器、积分器和寄存器,

% 适合于工作在高采样率条件下,而且CIC滤波器是一种基于零点相消的FIR滤波器,

% 已经被证明是在高速抽取或者插值系统中非常有效的单元。

CIC 滤波器——不同长度的单级CIC滤波器的频谱特性


%
% E6_3_SigCIC.m
% 用matlab仿真不同长度的单级CIC滤波器的频谱特性
% 
M = 2; %滤波器长度
b = ones(1,M);
delta = [1,zeros(1,1023)];
s = filter(b,1,delta); %求取滤波器冲激响应
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)];
s=filter(b,1,delta);  %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec5=Spec-max(Spec);

M=7; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s=filter(b,1,delta); %求取滤波器冲激响应
Spec=20*log10(abs(fft(s))); %求取滤波器频谱特性
Spec7=Spec-max(Spec);

M=8; %滤波器长度
b=ones(1,M);
delta=[1,zeros(1,1023)];
s=filter(b,1,delta); %求取滤波器冲激响应
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 -50 0]);
xlabel('归一化频率');
ylabel('幅度(dB)');
legend('M=2','M=5','M=8');
title('不同长度的单级CIC滤波器的频谱特性','fontsize',10);
grid on;

上图中 横坐标为归一化频率,数值1相当于数据速率的一半。当滤波器的长度M远大于1时,第一旁瓣电平相对于主瓣电平的差值几乎是固定的13.46dB。显然,这样小的阻带衰减远不能满足较高的滤波要求。解决该问题的方法是对滤波器进行级联,每增加一级滤波器,则旁瓣电平衰减增加13.46dB。采用5级CIC滤波器级联,则旁瓣电平衰减变为67.3dB。增加滤波器级联数目虽然可以解决旁瓣电平衰减减小的问题,但是会带来其他不利影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值