当前位置: 首页 > article >正文

转载【FIR 线性相位系统 最小相位系统 滤波器延迟】

2.1 线性相位
2.1.1 FIR滤波器和线性相位之间有什么关系?

大多数的FIR滤波器是线性相位滤波器. 当需要设计线性相位滤波器时, 通常使用FIR滤波器.

2.1.2 什么是线性相位滤波器?

线性相位是指滤波器的相位响应是频率的线性函数(在+/-180度)。因此滤波器的延时后,所有的频率相位相同。因而滤波器不会产生相位和延迟扭曲。在某些领域,比如数字解调器,没有相位或者延迟扭曲是FIR滤波器相对于其他IIR和模拟滤波器的一个关键优点

2.1.3 线性滤波器的条件是什么?

FIR滤波器经常被设计成为线性相位的,当然不是必须要这么做。如果滤波器的系数是关于中心系数对称的,也就是说第一个系数和最后一个系数相同,第二个系数和倒数第二个相同,那么FIR滤波器就是线性的。有奇数个系数的FIR滤波器,中心单独的系数没有对应的。

2.1.4 什么是线性相位FIR滤波器的延时?

非常简单的公式: 给定FIR滤波器有N个抽头,那么延时是(N - 1) / (2 * Fs), 这里Fs是采样频率. 比如, 21抽头的线性相位滤波器运行在1kHz, 那么延时就是 ( 21 − 1 ) / ( 2 ∗ 1 k H z ) = 10 (21 - 1) / (2 * 1 kHz)=10 (211)/(21kHz)=10微秒.

2.1.4 除了线性相位,还可以选择什么?

当然是非线性的了。实际上,最流行的选择是最小相位滤波器。最小相位滤波器,也叫最小延时滤波器,比线性相位滤波器具有更少的延时,当两者的幅度响应相同时以非线性相位特性。

低通滤波器在它的冲击响应中心有最大的系数。而最小相位滤波器的最大系数在开始部分。

2.2 频率响应
2.2.1 什么是FIR滤波器的Z变换r?

对于N抽头的滤波器, 系数为h(k), 那么输出由:

y ( n ) = h ( 0 ) x ( n ) + h ( 1 ) x ( n − 1 ) + h ( 2 ) x ( n − 2 ) + . . . h ( N − 1 ) x ( n − N − 1 ) y(n)=h(0)x(n) + h(1)x(n-1) + h(2)x(n-2) + ... h(N-1)x(n-N-1) y(n)=h(0)x(n)+h(1)x(n1)+h(2)x(n2)+...h(N1)x(nN1)

滤波器的z变换就是:

H ( z ) = h ( 0 ) z − 0 + h ( 1 ) z − 1 + h ( 2 ) z − 2 + . . . h ( N − 1 ) z − ( N − 1 ) H(z)=h(0)z^{-0} + h(1)z^{-1} + h(2)z^{-2} + ... h(N-1)z^{-(N-1)} H(z)=h(0)z0+h(1)z1+h(2)z2+...h(N1)z(N1),

2.2.2 FIR滤波器的频率响应公式是什么r?

H(z)中的变量z为连续的复数变量,可以描述为 z = r ⋅ e j w z=r·e^{jw} z=rejw,这里r是幅度,w是z的角度。如果令 r = 1 r=1 r=1 H ( z ) H(z) H(z)就变成了滤波器频率响应 H ( j w ) H(jw) H(jw)。这也就意味着替代z为 e j w e^{jw} ejw,得到了滤波器频率响应 H ( w ) H(w) H(w)

H ( j w ) = h ( 0 ) e j w + h ( 1 ) e j 1 w + h ( 2 ) e j 2 w + . . . + h ( N − 1 ) e j ( N − 1 ) w H(jw)=h(0)e^{jw}+h(1)e^{j1w}+h(2)e^{j2w}+...+h(N-1)e^{j(N-1)w} H(jw)=h(0)ejw+h(1)ej1w+h(2)ej2w+...+h(N1)ej(N1)w
或者使用欧拉公式, e − a = cos ⁡ ( a ) − j sin ⁡ ( a ) e^{-a} = \cos(a)-j\sin(a) ea=cos(a)jsin(a), 我们可以把H(jw)写成矩形表示:

H ( j w ) = h ( 0 ) [ c o s ( 0 w ) − j s i n ( 0 w ) ] + h ( 1 ) [ c o s ( 1 w ) − j s i n ( 1 w ) ] + . . . h ( N − 1 ) [ c o s ( ( N − 1 ) w ) − j s i n ( ( N − 1 ) w ) ] H(jw)=h(0)[cos(0w) - jsin(0w)] + h(1)[cos(1w) - jsin(1w)] + ... h(N-1)[cos((N-1)w) - jsin((N-1)w)] H(jw)=h(0)[cos(0w)jsin(0w)]+h(1)[cos(1w)jsin(1w)]+...h(N1)[cos((N1)w)jsin((N1)w)]

2.2.3 能用离散傅立叶变换(DFT)来计算FIR的频率响应么?

可以。对于N抽头的FIR,可以得到N evenly-spaced points of the frequency response by doing a DFT on the filter coefficients.但是,为了得到任意频率的频率响应,需要使用上边的公式。

2.2.4 FIR滤波器的DC增益指的是什么?

DC(0 Hz)输入信号包含每个采样都为1.0。通过延时线后,输出是所有系数的和。因而,在DC处滤波器的增益就是所有系数之和。

2.2.5 如何调整FIR滤波器的增益?

简单地在系数上乘上因子.

2.3 数字性质
2.3.1 FIR滤波器是固有稳定的?

是的,因为没有反馈,任何有限的输入产生有限的输出。

2.3.2 什么使FIR滤波器的数字性质变好?

缺少反馈是关键。在计算机中实现FIR滤波器时,每个计算都产生数字错误。由于FIR滤波器没有反馈,因此不能够记住以前的错误。相反,IIR滤波器的反馈可能导致错误的积累。 .

这个实际的影响就是,可以用更少的bit去实现与IIR滤波器相同精度的滤波器。比如,FIR滤波器通常用16位来实现的话,IIR滤波器就通常需要32位,或者更多。

2.4 为什么通常在多采样率系统中采用FIR滤波器而不采用IIR滤波器?

因为只有一小部分的计算需要用减采样或者插值滤波器来实现。
由于FIR滤波器不使用反馈,因而只有那些实际需要使用的输出才需要计算。比如,在减采样的时候(N个输出中只有一个有效),那么其他的N-1输出就不会进行计算。类似的,对于插值滤波器(在采样点中插入0来提高采样率),你不必实际地用FIR滤波器乘以系数,求和得到,你只需要忽略和这些值有关的乘加(因为它们不会改变结果)。
相反,因为IIR滤波器使用反馈,每个输入都必须使用,每个输入必须计算,因为所有的输入和输出对滤波器的反馈都有影响。

2.5 有哪些特殊的FIR滤波器?

Aside from “regular” and “extra crispy” there are:

  • 矩形 -矩形 FIR 滤波器是每个系数都是1.0的简单的滤波器。因而对于N个抽头的矩形滤波器,它的输出仅仅是过去N个采样之和。由于矩形FIR只能实现加法,因此当乘法器实现比较昂贵时,在硬件实现中会考虑。 * 希尔伯特变换(Hilbert Transformer) - 希尔伯特变换是把信号相移90度。它们经常被用在,给定实数部分,产生虚数部分。
  • 差分(Differentiator) -差分器的幅度响应是频率的线性函数。现在已经不流行了,但是以前曾经在FM解调器上使用过。
  • Lth-Band - 也叫做“Nyquist"滤波器,这些滤波器是在多速率应用中特殊的一类滤波器。主要的卖点是,每L个系数有一个为0,那么就将减少乘累加操作的实现(著名的半带滤波器就是这一种)。
  • Raised-Cosine - 这是一种特殊类型的滤波器,有时会用在数字数据应用方面。(通带上的频率响应是被上移一个常数的cos形状)。

参考

https://www.cnblogs.com/keepthinking-go/p/13864429.html

http://blog.sina.com.cn/s/blog_a78208d301019nnx.html


http://www.kler.cn/news/290686.html

相关文章:

  • 使用Dbeaver 操作 mongodb
  • 「小明赠书活动」第五期“网安三剑客”套系图书《内网渗透技术》《渗透测试技术》《Web应用安全》
  • Luminar Neo for Mac智能图像处理软件【操作简单,轻松上手】
  • LeetCode 热题100-11 滑动窗口的最大值
  • 前端防抖和节流函数的实现原理
  • MFC的控件无法触发事件函数(ON_COMMAND_RANGE的映射范围冲突)
  • 百度翻译API翻译Qt LinguistTools的ts文件
  • 百度飞浆目标检测PPYOLOE模型在PC端、Jetson上的部署(python)
  • React 创建和嵌套组件
  • 策略规划:在MySQL中实现数据恢复的全面指南
  • [Python图论]在用图nx.shortest_path求解最短路径时,节点之间有多条边edge,会如何处理?
  • 【MySQL】索引使用规则——(覆盖索引,单列索引,联合索引,前缀索引,SQL提示,数据分布影响,查询失效情况)
  • Proteus 仿真设计:开启电子工程创新之门
  • Unity3D中控制3D场景中游戏对象显示层级的详解
  • 构建数据恢复的硬件基础:MySQL中的硬件要求详解
  • draw.io图片保存路径如何设置
  • linux(ubuntu)安装QT-ros插件
  • Ferrari求解四次方程
  • VTK随笔十三:QT与VTK的交互
  • jupyter 笔记本中如何判定bash块是否执行完毕
  • CentOS7 yum 报错解决方案
  • FFmpeg源码:get_audio_frame_duration、av_get_audio_frame_duration2函数分析
  • Splasthop 安全远程访问帮助企业对抗 Cobalt Strike 载荷网络攻击
  • 鸿蒙(API 12 Beta6版)图形【NativeImage开发指导 (C/C++)】方舟2D图形服务
  • git---gitignore--忽略文件
  • 【C++】对比讲解构造函数和析构函数
  • 智能优化特征选择|基于鲸鱼WOA优化算法实现的特征选择研究Matlab程序(KNN分类器)
  • idea对项目中的文件操作没有权限
  • 海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust
  • SpringBoot+Redis极简整合