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

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

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

1 梳状滤波器

图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);

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

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

2 积分梳状滤波器

图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);

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

图5 五级IC串联

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

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

DSP往期

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

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

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

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

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

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

  1. 基于FPGA的多级CIC滤波器实现四倍抽取二(6)

    基于FPGA的多级CIC滤波器实现四倍抽取二 在实现多级CIC滤波器前我们先来了解滑动平均滤波器.微分器.积分器以及梳状滤波器原理.CIC滤波器在通信信号处理中有着重要的应用. 上一篇在<基于F ...

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

    基于FPGA的多级CIC滤波器实现四倍抽取三 原文链接:基于FPGA的多级CIC滤波器实现四倍抽取三 在<基于FPGA的多级CIC滤波器实现四倍抽取一>和<基于FPGA的多级CIC滤 ...

  3. 基于FPGA的多级CIC滤波器实现四倍抽取一(5)

    基于FPGA的多级CIC滤波器实现四倍抽取一 在实现多级CIC滤波器前我们先来了解滑动平均滤波器.微分器.积分器以及梳状滤波器原理.CIC滤波器在通信信号处理中有着重要的应用. 1滑动平均滤波器 图1 ...

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

    在实现多级CIC滤波器前我们先来了解滑动平均滤波器.微分器.积分器以及梳状滤波器原理.CIC滤波器在通信信号处理中有着重要的应用. 1滑动平均滤波器 图1 8权值滑动平均滤波器结构 滑动平均滤波器(M ...

  5. 多级CIC滤波器的matlab仿真

    M=2; %滤波器长度 b=ones(1,M); delta=[1,zeros(1,1023)]; s1=filter(b,1,delta); %求取滤波器冲激响应 s2=filter(b,1,s1) ...

  6. 基于FPGA的一维卷积神经网络CNN的实现(二)资源分配

    资源分配 环境:Vivado2019.2. Part:xcku040-ffva1156-2-i,内嵌DSP个数 1920个,BRAM 600个也就是21.1Mb. 说明:通过识别加高斯白噪声的正弦波. ...

  7. m基于FPGA的多级抽取滤波器组verilog设计,包括CIC滤波,HB半带滤波以及DA分布式FIR滤波

    目录 1.算法描述 2.仿真效果预览 3.verilog核心程序 4.完整FPGA 1.算法描述 数字下变频中的低通滤波器是由多级抽取滤波器组实现的.信号的同相分量和正交分量再分别经由积分梳状滤波器( ...

  8. 【CIC滤波器】基于MATLAB/FPGA的数字CIC滤波器的设计

    FPGA代码: module down(i_clk,//输入时钟i_rst,//输入复位信号i_M, //抽取值i_data,//输入信号o_data,//输出信号r_clk);input i_clk ...

  9. 基于MATLAB FDATOOL的CIC滤波器设计

    级联积分梳状(CIC)滤波器是一种被广泛应用于软件无线电中,可以实现抽取或者插值的高效滤波器.它主要用于降低或提高采样率.CIC滤波器的主要特点是,仅利用加法器.减法器和寄存器,占用资源少,实现简单且 ...

最新文章

  1. 优化自动化测试流程,使用 flask 开发一个 toy jenkins工具
  2. 概率论与数理统计(二)
  3. opencv角点检测学习总结
  4. 多线程—事件Event
  5. [Java网络编程基础]UDP发送和接收数据
  6. php输出楼层号,ZBlog开发中实现评论楼层号正确输出的具体方法代码
  7. 基础知识(七)opencv、python、人脸框检测
  8. oracle中使用kill,WINDOWS和LINUX服务器级别的KILLORACLE进行方法
  9. Atitit 2017年的技术趋势与未来的大技术趋势
  10. 用Java做一个及时翻译工具
  11. 7.3 超标量流水线
  12. 《VoIP技术构架(第2版·修订版)》一1.7 小结
  13. java 截取视频_2种方式获取视频时长、截取视频帧作为封面(java or H5)
  14. python中easygui()库的使用
  15. 带有打开密码的压缩包如何解压
  16. python duplicated函数_16、pandas的duplicated和drop_duplicaates函数
  17. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛题解 H
  18. 首次使用恒源云服务器【详细教程】
  19. 程序员的自我进化:互联网公司套路多,如何避免自己被无偿辞退?
  20. ROS机器人高效编程(原书第3版)勘误、问题及资料汇总

热门文章

  1. AI趋势量化系统(升级版)
  2. 2018新创业赛事平台|创成汇
  3. 华为nova7se怎么看云相册_华为nova7se不好吗?现在买的人非常少,这是为什么
  4. 再谈“开源软件供应链安全”
  5. Android N 开启freeform界面
  6. Stata:ritest-随机推断(RandomizationInference)
  7. 可以扫描10米以上距离的手持终端,idata65手持终端配置霍尼4850头--传翔电商
  8. greenplum获取建表语句_Greenplum数据库基本语句 - 树懒学堂
  9. 使用 VXAPI ProtoBuf 工具抓取iPad微信Protobuf
  10. Linux 用户passwd文件详解