FIR滤波器的设计
FIR数字滤波器的设计
- 线性相位FIR滤波器的特点
- 单位冲激响应:\(h(n),0\leq n\leq N-1\)
- 系统函数:\(H(z)=\sum_{n=0}^{N-1}h(n)z^{-n}\)
- 零极点分布:无穷远处N-1个零点,z=0处有一个N-1阶极点
- 线性相位条件
线性相位是FIR滤波器的一个优势,因为FIR滤波器相比于IIR滤波器的阶数一般要高很多。
\(H(e^{j\omega})=\sum_{n=0}^{N-1}h(n)e^{-j\omega n}=\pm|H(e^{j\omega})|e^{j\theta(\omega)}\)
线性相位是指\(\theta(\omega)\)是\(\omega\)的线性函数。根据它们之间的线性关系,将线性相位分为两种:正比例;一次函数。- 第一类线性相位:\(\theta(\omega)=-\tau\omega\)
若实序列\(h(n)\)为第一类线性相位,则\(\sum_{n=0}^{N-1}h(n)e^{-j\omega n}=\sum_{n=0}^{N-1}h(n)\cos(\omega n)-j\sum_{n=0}^{N-1}h(n)\sin(\omega n)=\pm|H(e^{j\omega})|\cos(\omega \tau)\pm j|H(e^{j\omega})|\sin(\omega \tau)\) 于是:\(\tan(\omega\tau)=\frac{\sum_{n=0}^{N-1}h(n)\sin (\omega n)}{\sum_{n=0}^{N-1}h(n)\cos (\omega n)}\) \(\rightarrow \sum_{n=0}^{N-1}h(n)\sin[(\tau-n)\omega]=0\)\[\text{FIR系统满足线性相位的充要条件}\begin{cases}
\text{$\tau=\frac{N-1}{2}$}\\ h(n)=h(N-1-n)\end{cases}$$ ,即h(n)为偶对称,对称中心为$\frac{N-1}{2}$ .
\]同理可得,满足线性相位的冲要条件\(h(n)=-h(N-1-n),\tau=\frac{N-1}{2},\beta_0=\pm\frac{\pi}{2}\)
- 第一类线性相位:\(\theta(\omega)=-\tau\omega\)
窗函数设计法
方法及原理
性能指标\(\rightarrow\)理想低通滤波器的系统函数\(\rightarrow\)反变换时域无限长信号\(\rightarrow\)信号截断\(\rightarrow\)右移变因果系统。
线性相位理想低通滤波器的频率响应(周期连续)为:\[H_d(e^{j\omega)})=\begin{cases} e^{-j\omega\alpha}&-\omega_c \leq \omega \leq\omega_c\\ 0&-\pi\leq\omega\leq-\omega_c, \omega_c\leq\omega\leq\pi \end{cases}
\]经过离散傅里叶反变换对应的序列(非周期离散)为:
\[h_d(n)=\frac{\omega_c}{\pi}\frac{\sin[\omega_c(n-\alpha)]}{\omega_c(n-\alpha)}
\]该序列为中心点为\(\alpha\)的偶对称无限长非因果序列。
现需要将其转变为偶对称有限长因果序列。取矩形窗\(w(n)=R_N(n)\),则FIR滤波器的单位抽样响应:\[h(n)=h_d(n)=\begin{cases} h_d(n) & 0\leq n\leq N-1 \\ 0 & \text{else}\end{cases}
\]根据第一类线性相位的条件,应有:\(\alpha=\frac{N-1}{2}\),即:
\[h(n)=\frac{\omega_c}{\pi}\frac{\sin[\omega_c(n-\frac{N-1}{2})]}{\omega_c(n-\frac{N-1}{2})},0\leq n \leq N-1
\]FIR滤波器的频率响应的幅度函数为h(n)的幅度函数与w(n)幅度函数的卷积,即为\(H(\omega)=\frac{1}{2\pi}\int_{-\pi}^{\pi}H_d(\omega)W_R(\omega-\theta)d\theta\),变换的具体过程如下:

可以看做\(W_R(\theta)\)平移\(\omega\)之后在\([-\omega_c,\omega_c]\)内的积分(因为\(H_d(\theta)\)在此区间内为1).\(\omega\) \(H(\omega)\) 0 近似\(W_R(\theta)\)的全部面积 \(\omega_c\) 0.5\(H(0)\) \(\omega_c-\frac{2\pi}{N}\) 最大,正肩峰 \(\omega_c+\frac{2\pi}{N}\) 最小,负肩峰 \(>\omega_c+\frac{2\pi}{N}\) 在零值上下波动 \(<\omega_c-\frac{2\pi}{N}\) 在\(H(0)\)上下波动 \(-\frac{2\pi}{N},\frac{2\pi}{N}\)为窗函数频谱主瓣的两个零点,主瓣宽度为\(\frac{4\pi}{N}\)。
从图中可以看出,FIR滤波器的幅值函数在\(\omega_c\pm\frac{2\pi}{N}\)出现肩峰。改变N值改变主瓣宽度,使过渡带变得更窄,但是并不能改变正肩峰与负肩峰的相对比例(相对比例由窗函数的形状决定,此为Gibbs效应)。几种窗函数的对比
窗函数 窗谱性能指标 加窗后滤波器性能指标 旁瓣峰值幅度/dB 主瓣宽度/(2pi/N) 过渡带宽△w/(2pi/N) 最小阻带衰减/dB 矩形窗 -13 2 0.9 -21 三角形窗 -25 4 2.1 -25 汉宁窗 -31 4 3.1 -44 海明窗 -41 4 3.3 -53 布莱克曼窗 -57 6 5.5 -74 凯泽窗(β=8.865) -57 5 -80 阻带最小衰减只由窗函数形状决定。过渡带宽与窗形状和窗宽N都有关。
设计步骤
graph LR
A(理想的频率响应函数及技术指标)-->B(理想的单位抽样响应)
D(根据阻带衰减选择窗函数)-->C(根据过渡带宽度确定N)
E(FIR滤波器的单位冲激响应)
B-->D
C-->E技术指标包括:阻带衰减和过渡带宽。一般取\(\omega_c\)为通带截止频率和阻带截止频率的平均值
从理想的频率响应函数(\(H_d(e^{j\omega})\))得到理想的单位抽样响应\(h_d(n)\),有两种方法:- 公式法
- IFFT法:对\(H_d\)进行M点IFFT变换,要求M>>N
最终得到FIR滤波器的h(n),并求得\(H(e^{j\omega})\),进行验证
FIR滤波器的设计的更多相关文章
- 数字信号处理实验(六)——FIR滤波器的设计
一.四种线性相位FIR滤波器的振幅响应 1.自编函数 [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) 2.一个demo clea ...
- IIR滤波器和FIR滤波器的区别与联系zz
-------------------------------------------------------------------------------------------------- ...
- 转载论文关于fir滤波器的fpga实现
摘 要 本文讨论的FIR滤波器因其具有严格的线性相位特性而得到广泛的应用.在工程实践中,往往要求信号处理具有实时性和灵活性,本论文研究FIR的FPGA解决方案正体现了电子系统的微型化和单片化. 本论文 ...
- FIR滤波器设计
FIR滤波器的优越性: 相位对应为严格的线性,不存在延迟失真,仅仅有固定的时间延迟: 因为不存在稳定性问题,设计相对简单: 仅仅包括实数算法,不涉及复数算法,不须要递推运算,长度为M,阶数为M-1,计 ...
- 使用MATLAB设计FIR滤波器
1. 采用fir1函数设计,fir1函数可以设计低通.带通.高通.带阻等多种类型的具有严格线性相位特性的FIR滤波器.语法形式: b = fir1(n, wn) b = fir1(n, wn ...
- matlab进行FIR滤波器设计(一)
来源:https://blog.csdn.net/leokingszx/article/details/80041910 在实际的应用中,有时需要使用FIR根据完成一些特定功能,比如近似一阶RC低通电 ...
- FIR滤波器(1)- 基础知识
FIR滤波器广泛应用于数字信号处理中,主要功能就是将不感兴趣的信号滤除,留下有用信号.FIR滤波器是全零点结构,系统永远稳定:并且具有线性相位的特征,在有效频率范围内所有信号相位上不失真.在无线通信收 ...
- CIC and Fir 滤波器的级联
在FDATool中 CIC 和 Fir 级联滤波器的设计 1 设计CIC滤波器的幅频特性曲线如下 2.设计FIR 滤波器的幅频特性曲线如下 3.总的特性曲线如下 4.把通带部分放大后的图,比较平坦
- FIR滤波器的FPGA实现方法
FIR滤波器的FPGA实现方法 2011-02-21 23:34:15 来源:互联网 非常重要的基本单元.近年来,由于FPGA具有高速度.高集成度和高可靠性的特点而得到快速发展.随着现代数字 ...
- FIR滤波器和IIR滤波器的区别
数字滤波器广泛应用于硬件电路设计,在离散系统中尤为常见,一般可以分为FIR滤波器和IIR滤波器,那么他们有什么区别和联系呢. FIR滤波器 定义: FIR滤波器是有限长单位冲激响应滤波器,又称为非递归 ...
随机推荐
- C#和.NET Framework 简介
C#是一种通用的类型安全且面向对象编程的语言.这种语言的目标是提高程序员的生产力,为此需要在简单性.可表达性和性能之间实现平衡.C#语言的首席架构师从第一个版本开始就是Anders Hejlsberg ...
- Spring-XML文件与注解
(一)基于XML的使用 (二)基于注解和XML的混合使用
- 区分CommonJs/ES6 Module/AMD/CMD
模块加载方式 CommonJs ES6 Module AMD CMD UMD Commonjs和ES6 Module的区别 总结 1.CommonJS CommonJS 是一个项目,其目标是为 Jav ...
- leetcode 27. 移除元素 【时间击败100.00%】【内存击败84.67%】
1 public int removeElement(int[] nums, int val) { 2 int last = nums.length - 1; 3 for (int i = 0; i ...
- WPF中向下拉框中绑定枚举体
1.枚举绑定combox的ItemsSourceItemsSource绑定的是个集合值,要想枚举绑定ItemsSource,首先应该想到的是把枚举值变成集合. 方法一:使用资源里的ObjectData ...
- golang 解决 socket: too many open files, 以及 too many open files
同事写的一段代,码业务场景:需要多次GET请求一个三方服务的http 接口,获取数据后写入文件.发现有部分文件没有写入.查看日志出现了报错"socket: too many open fil ...
- flutter-linux(未完成)
运行命令 flutter run -d linux --no-sound-null-safety 打包(build/linux/x64/release/bundle/) flutter build l ...
- Leetcode习题集-链表
这里记录一些我刷题的思路方便之后进行复习重温,同时也方便进行添加 P141-环形链表 class Solution { public: bool hasCycle(ListNode *head) { ...
- Windows日常快捷键
Windows: 环境变量: Win+R,--> sysdm.cpl 计算器: Win+R,-->calc 服务:Win+R,-->services.msc 远程:Win+R,--& ...
- HTML复习(17.表格样式)
重点 掌握caption-side(表格标题位置) 掌握border-collapse(表格边框合并) 掌握border-spacing(表格边框间距) 表格标题位置在CSS中,我们可以使用capti ...