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滤波器是有限长单位冲激响应滤波器,又称为非递归 ...
随机推荐
- SQL Server性能优化
源代码文件 1,什么是性能问题? 现有资源没有达到最大吞吐量的前提下,系统不能满足合理的预期表现,则可以定义为有性能问题.性能指标包括:响应时间,吞吐量,可扩展性. 2,初探优化 2.1优化论 一般遇 ...
- 运行yarn报错:error C:\liuyan\tools\echarts-5.4.0\node_modules\cwebp-bin: Command failed.
完成warning和报错信息如下. 通过报错信息提示,锁定cwebp-bin,在waring中发现有提示说要更新至7或更高版本. 解决方案:在package.json中,将cwebp-bin设置版本为 ...
- ubuntu扩容
VMware虚拟机 Linux系统 Ubuntu 16.04 硬盘/磁盘扩容效果查看硬盘大小及使用情况 终端:df -h 没有扩容前: 成功扩容后: 主要流程扩展硬盘大小到100G将未分配的60G分配 ...
- vue 3 打印 print-js
1.安装 npm install print-js --save 2.引用 import print from 'print-js' 3.编写打印函数 const enterDialog = asyn ...
- [485] C2 Age Of Splendor Update 1 OpCodez
[485] C2 Age Of Splendor Update 1 Client 00 SendProtocolVersion 01 MoveBackwardToLocation 02 Say 03 ...
- 如何避免reblance
reblance是什么? 什么时候会发生rebalnce? 如何尽量避免这些情况? 若不可避免的要发生reblance?怎么尽量减少影响? reblance是什么? Reblance是Kafka协调者 ...
- 挖坑——未完成题目列表QwQ
OI一些的小计划: 日拱一卒,功不唐捐! Unfinished luogu P2814 家谱 Luogu P2076 聚会 luogu P2212 Watering the Fields 草坪上有N ...
- Leetcode本地阅读器开发--01界面设计二
返回项目声明及目录:Leetcode本地阅读器开发--总声明 继续上一节内容: 1.第一个内容是左边第一行的功能,读取默认路径和修改路径.此路径为本地阅读器的搜索题目的主目录. 为了整个程序都能读取工 ...
- 使用LitJson输出格式化json文件到本地
百度上搜了半天,竟然没有C#使用LitJson格式化输出的例子,全都是Newtonsoft.Json的,最后在litjson的官网找到了方法. 给大家分享一下: https://litjson.net ...
- 利用expect交互批量修改普通用户过期密码
利用expect交互批量修改普通用户过期密码 因为公司接了一个密码托管的活,有10000多台机器,系统有 openSUSE,SUSE,Ubuntu,centos,Oracle-Linux, 而且什么版 ...