梳状滤波器CIC整理
多采样速率的数字信号处理系统常常会用到采样速率的转换,如内插和抽取。由傅里叶变换性质可知,信号时域内的抽取会导致频谱周期性平移拓宽,当信号中有高频分量时,可能出现频谱混叠的现象。因此在抗频谱混叠中需要滤波操作,将高频分量滤除。梳状滤波器(CIC,Cascaded integrator–comb filter)结构简单,仅有乘、加单元,可以实现多倍速率下抽变换,并且能够滤除高频成分。为了使过渡带陡峭,抑制旁瓣,滤波器的带内容差不宜过大。当扫频的带宽一定时,CIC滤波器常用在采样率下抽的第一级,以满足较大的采样率和较小的下抽因子来降低带内容差。梳状滤波器传递函数的表达式和实现结构如下:
D为采样率下抽的倍数,N表示滤波器级联数,Z-1表示延迟一拍。由于梳状滤波器的零极点可以相互抵消,滤波器仍是稳定的因果系统。在MATLAB环境中绘制其幅频响应曲线和相频响应曲线如下:
可以看出,单级情况下旁瓣衰减约为13.46dB;级联之后,CIC滤波器旁瓣衰减与级联数成正比为N*13.46dB,即每增加一级级联旁瓣抑制将增加13.46dB;并且CIC滤波器的相位呈线性。另外的参考书本:
- 杜勇. 数字调制解调技术的MATLAB与FPGA实现:Altera/Verilog版[M]. 北京:电子工业出版社, 2015.
--------------------------------------------------------假装我是分割线--------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%
% 绘制M阶CIC的频谱特性
%%%%%%%%%%%%%%%%%%%%%%%%%
clc
clear
close all
Len = 1024*300;%绘制数据点数
fs = 2*1e5;
D = 16;%下抽倍数
N = [1,3,5]; %CIC级联数
w = 0.01:1/fs:(Len-1)/fs;
H_abs = zeros(length(N),length(w))';
for ii = 1:length(N)
for jj = 1:length(w)
%H(jj,ii) = (abs(sin(w(jj)*D/2)/sin(w(jj)/2)))^N(ii);%幅度相应表达式
H(jj,ii)=((1-exp(-1j*w(jj)*D))/(1-exp(-1j*w(jj))))^N(ii);
H_abs(jj,ii)=abs(H(jj,ii));
H_ang(jj,ii)=angle(H(jj,ii));
end
end
%绘制幅频特性曲线
figure
plot(w'/max(w),20*log10(H_abs(:,1) / max(H_abs(:,1)) ),'k','Linewidth',2);
grid on
title('幅频特性');xlabel('归一化频率');ylabel('幅度(dB)');
legend('N=1','N=3','N=5','Location','best');
hold on
plot(w'/max(w),20*log10(H_abs(:,2) / max(H_abs(:,2)) ),'k--','Linewidth',2);
plot(w'/max(w),20*log10(H_abs(:,3) / max(H_abs(:,3)) ),'k','Linewidth',3);
hold off;
grid on;
title('幅频特性');xlabel('归一化频率');ylabel('幅度(dB)');
legend('N=1','N=3','N=5','Location','best');
axis([0 1 -200 0]);%绘制相频特性曲线
figure
plot(w'/max(w),H_ang(:,1),'k','Linewidth',2);grid on;
title('相频特性');xlabel('归一化频率');ylabel('相位(rad)');
legend('N=1','Location','best');
axis([0 1 -pi pi]);
-------------------------------------------------------cic的m文件------------------------------------------------
以下抽时举例
function signal_cic = cic_filter(signal,div)
%------------------------------------------------------------------------
% 功能: 函数实现3级级联的梳状滤波器,下抽倍数为div
% 输入输出:
% signal : 待滤波及下抽的信号
% div : 下抽的倍数
%------------------------------------------------------------------------
%CIC filter and downsample div
x = zeros(length(signal),1);
x(1) = signal(1);
%积分过程
for ii = 1:length(signal)-1
x(ii+1) = x(ii) + signal(ii+1);
end
y = zeros(length(signal),1);
y(1) = x(1);
for ii = 1:length(signal)-1
y(ii+1) = y(ii) + x(ii+1);
end
z = zeros(length(signal),1);
z(1) = y(1);
for ii = 1:length(signal)-1
z(ii+1) = z(ii) + y(ii+1);
end
data = z(1:div:div*floor(length(signal)/div));%downsample
%差分过程
x = zeros(length(data),1);
x(1) = data(1);
for ii = 1:length(data)-1
x(ii+1) = data(ii+1) - data(ii);
end
y = zeros(length(data),1);
y(1) = x(1);
for ii = 1:length(data)-1
y(ii+1) = x(ii+1) - x(ii);
end
z = zeros(length(data),1);
z(1) = y(1);
for ii = 1:length(data)-1
z(ii+1) = y(ii+1) - y(ii);
end
signal_cic = (z/div^3);
--------------------------------------------------------CIC的FPGA设计------------------------------------------------
以Xilinx官网给的cic IP核手册为例,需要关注每一级的位宽增加。
如:梳状滤波器CIC下抽R=5倍,N=3级级联,延迟拍数M=1,输入数据Bit_in=16,输出Bit_out=Bit_in+N*log2(R),向上取整,输出全精度为23位定点数=floor(16+3*log2(5))+1。(有次面试官问了CIC中间数据位宽的计算,当时一脸懵逼,都是IP核搞定,谁管这些。后来…………哎)
梳状滤波器CIC整理相关推荐
- 2021-03-14 梳状滤波器学习整理
梳状滤波器学习整理 目录 梳状滤波器学习整理 1. 梳状滤波器定义 2. 梳状滤波器仿真 (1)matlab函数:
- [寄存器]CIC梳状滤波器
近期一直在做信号的处理部分的工作,上几篇讲到了多普勒超声波流量计的工作原理以及项目解决方案.这几天,准备优化一下,所以准备使用梳状滤波器(CIC,Cascaded integrator–comb fi ...
- 一种Δ-Σ模数转换器中梳状滤波器的设计
Δ-Σ模数转换器是一种低速,高精度的过采样模数转换器广泛的应用于信号采集和处理.数字通信.自动检测.自动控制和多媒体技术等领域.作为Δ-Σ模数转换器首级的梳状滤波器的设计就显得非常重要,滤波器的设计直 ...
- 基于Δ-Σ模数转换器的梳状滤波器的设计与matlab仿真
欢迎订阅<FPGA学习入门100例教程>.<MATLAB学习入门100例教程> 目录 一.理论基础 二.核心程序 三.测试结果 一.理论基础 Δ-Σ模数转换器是一种低速,高精度 ...
- 在Matlab中设计梳状滤波器
梳状滤波器之所以被称为梳状滤波器,是因为它的幅频特性曲线状如梳子.这是一类典型的数字滤波器,主要用来对频谱中特定频率"定点清除".MATLAB中有专门梳状滤波器函数,编程很方便.这 ...
- 【梳状滤波器:浅析其基本概念、功能特点及与全通、最小相位滤波器的区别】
文章目录 梳状滤波器 一.基本概念 二.分类 三.功能特点 四.与全通.最小相位滤波器的区别 此文为博主数字信号处理小作业. 梳状滤波器 一.基本概念 梳状滤波器,是一种由延时.加法器.减法器.带通滤 ...
- 去除杂波的梳状滤波器
简 介: 本文分析了两种可以去除周期干扰信号的滤波器,一个是周期平滑滤波器,它可以彻底去除信号中周期信号,但滤波器同时对信号中高频分量与也有较大的衰减. 另一个是延迟相加滤波器,它比较接近于理想的梳状 ...
- 一种Δ-∑模数转换器中梳状滤波器的设计
Δ-∑A/D转换器以其高精度和易于用标准数字CMOS 工艺实现的特点而被广泛应用.数字抽取滤波器是它的重要组成部分,通常采用多级结构来实现.由于梳状滤波器是一种结构简单的线性相位FIR滤波器,所以通常 ...
- FBCF反馈梳状滤波器设计
FBCF的结构图 反馈梳状滤波器差分方程为 b0x(n)+y(n)b*z-M*(-aM)=y(n)=b0x(n)-aMy(n-M) 传输函数为 H(z)=b01+aMz-M 反馈梳状滤波器是IIR滤波 ...
最新文章
- Python 字典(Dictionary) copy()方法
- 利用SimpleHttpServer+urllib传文件
- 关于SDC沙盒源代码加密
- putty 配置导出
- hdu3786 找出直系亲属 水题
- 馒头,国庆节快乐啊!!~~~!
- [攻防世界 pwn]——Mary_Morton
- SpringSecurity 认证通过后显示当前认证用户名
- spring书籍调研
- linux修改挂载目录名字,linux下修改mount挂载目录名
- Linux下的设备管理、磁盘分区及分区类型的修改
- 关系代数操作应用、关系元组运算应用
- wget通过代理上网办法
- elasticsearch6.x.x logstash6.x.x kibana6.x.x Filebeat6.x 配置及安装 CentOS7.3或更高
- javascript去除空格
- 手把手教你做个人 app
- 电容 电阻0201/0402/0603/等封装长宽高定义
- 如何使用Lumion创建惊艳的渲染
- 科技大停滞--过去已逝,未来未来
- CSDN博客微信登录竟然强制扫码关注登录(又来了)