基于FPGA的多级CIC滤波器实现四倍抽取二

基于FPGA的多级CIC滤波器实现四倍抽取二

 

   在实现多级CIC滤波器前我们先来了解滑动平均滤波器、微分器、积分器以及梳状滤波器原理。CIC滤波器在通信信号处理中有着重要的应用。

   上一篇在《基于FPGA的多级CIC滤波器实现四倍抽取一》中介绍了滑动平均滤波器、微分器、积分器的原理,这篇文章来介绍梳状滤波器以及积分梳状滤波器,为up sample rate convert down sample rate convert FPGA实现打下基础。

1 梳状滤波器

 

基于FPGA的多级CIC滤波器实现四倍抽取二

1 梳状滤波器结构

  梳状滤波器的两端为1-1的权值,具有简单的多信道频率响应。

Matlab

close all

clear all

Clc

 

%set system parameter

Fs = 352800;   %sampling frequency

L = 8192;

 

%comb

b =[1,0,0,0,0,0,0,0,-1];

a =1;

 

%频率响应和相位响应

[h,f]=freqz(b,a,L,Fs);       %freqz函数求频率响应

mag=20*log(abs(h))/log(10);  %幅度转换成dB单位    

ph=angle(h)*180/pi;          %相位值单位转换

 

figure(1),

subplot(211);plot(f,mag);

xlabel('频率(Hz)','fontsize',8);

ylabel('幅度(dB)','fontsize',8);

title('freqz()幅频响应','fontsize',8);

subplot(212);plot(f,ph);

xlabel('频率(Hz)','fontsize',8);

ylabel('相位()','fontsize',8);

title('freqz()相频响应','fontsize',8);

 

 

基于FPGA的多级CIC滤波器实现四倍抽取二

2 梳状滤波器的频率响应和相位响应

  因为滤波器的幅频响应像一把梳子,所以称作梳状滤波器。

2 积分梳状滤波器

 

基于FPGA的多级CIC滤波器实现四倍抽取二

3 积分梳状滤波器结构

  积分器和梳状滤波器的级联就是积分梳状(Integrator-Comb)滤波器。

Matlab

close all

clear all

clc

 

%set system parameter

Fs = 44100;   %sampling frequency

L = 8192;

 

%Integerator+comb

b =[1,0,0,0,0,0,0,0,-1];

a =[1,-1];

 

%频率响应和相位响应

[h,f]=freqz(b,a,L,Fs);       %freqz函数求频率响应

mag=20*log(abs(h))/log(10);  %幅度转换成dB单位   

mag = mag -max(mag)

ph=angle(h)*180/pi;          %相位值单位转换

 

figure(1),

subplot(211);plot(f,mag);

xlabel('频率(Hz)','fontsize',8);

ylabel('幅度(dB)','fontsize',8);

title('freqz()幅频响应','fontsize',8);

subplot(212);plot(f,ph);

xlabel('频率(Hz)','fontsize',8);

ylabel('相位()','fontsize',8);

title('freqz()相频响应','fontsize',8);

 

基于FPGA的多级CIC滤波器实现四倍抽取二

4 积分梳状滤波器的频率响应和相位响应

基于FPGA的多级CIC滤波器实现四倍抽取二

5 五级IC串联

如图5所示,5个积分梳状滤波器级联的幅频响应如图6所示。

 

基于FPGA的多级CIC滤波器实现四倍抽取二

6 五级积分梳状滤波器串联幅频响应

 

DSP往期

基于FPGA低通滤波器的FIR的设计

   基于FPGA IIR数字滤波器的设计

基于FPGA单级CIC滤波器实现8倍抽取

更多精彩推荐,请关注我们

基于FPGA的多级CIC滤波器实现四倍抽取二

万水千山总是情,点个 “在看” 行不行!!!

基于FPGA的多级CIC滤波器实现四倍抽取二