【修订版】本文已整理到我的个人博客订正了原文的几处错误原文推测「阻带内延迟趋于无穷」这个结论不成立已改为零点附近相位翻转 π 的解释另补充了 atan 与 atan2 值域的区别。CSDN 这一版保留原样之后的勘误与更新只在博客进行[番外1]相位特性解卷绕 | Finns blog1.什么是解卷绕为什么要解卷绕对于FIR滤波器的系数也就是FIR滤波器的单位冲击响应做离散时间的傅里叶变换。比如像下面这样。所得到的结果是这个FIR滤波器的频率响应。然而频率响应又表示为振幅特性和相位特性就像这样所以振幅特性和相位特性就按下式可以计算出来。既然如此我们就把一个系统的相位特性作图看看得到的是什么东西。就拿我们之前已经设计并实现的FIR来做试验其相位特性如下图所示。我们都知道FIR滤波器是具有线性相位特性的说的不严格一点至少他是一条直线。而上图的拿Matlab画的相位特性并是这样的。为什么呢再次看看我们之前的算式其使用到了反正切函数。假设我们现在所设计的滤波器某一段相位特性是由-120°转动到-225°的就像下图所示一样的。但是Matlab所求得的反正切的值的范围是。所以当角度转过实轴Re轴-225°所输出的值为135°这里产生了一个2π的跳动。所以我们看到的相位特性在开始的部分跳动都是2π。为了形象点我在下图标注了。这也就解决了一个问题为什么明明是线性相位特性用Matlab画出来的相位特性却如此不规则。所以在这个时候我们需要把反正切漏算的2π给补上这个过程就叫做解卷绕有的也称为解包裹。在Matlab中使用函数unwrap()进行解卷绕操作具体的代码就像这样。当然在绘制相位特性前你需要一组FIR滤波器系数h。w 0:0.01:pi; H freqz(h,1,w); figure; plot(w,unwrap(angle(H))); axis([0 pi -35 5]);grid; xlabel(Frequency \omega [rad]); ylabel(\theta [rad]);解完卷绕后的相位特性就像下图一样很清晰的就可以看出是线性相位特性。即便是到此我们解卷绕之后还是有一个问题红色的部分还是在震荡。为什么会有这个震荡呢2.为什么要解卷绕之后相位特性还不是完美的直线要弄清楚问题我们先看看这个FIR滤波器的振幅特性和相位特性。可以看到相位特性产生震荡的部分好像就在截止频率附近。然而通过窗函数实现的滤波器通带和阻带是有纹波的。这里的振幅特性由于纵轴是对数特性所以我们可以很清晰的看到阻带纹波的存在。正是因为纹波的存在才使得相位特性有震荡为了方便理解我们把之前离散时间傅里叶变换的计算结果拿出来直接画在复平面上如下图所示。我们先看这个最外层的圆这个圆必定是单位圆。这个单位圆代表了通带在通带上振幅特性为1。我们可以这么理解外面的最外层的圆。然后从某一点开始这个圆逐渐向圆心收敛嘛不要在意不严密的言辞。这个收敛的区域代表了过渡带振幅特性在逐渐减小。最后到达阻带严格来讲理想情况下阻带就是原点。因为阻带的振幅特性为0。但是我们之前提及了纹波是存在的通带有纹波阻带也有纹波。通带由于存在纹波不会是完美的单位圆。同样的阻带由于存在纹波也不是完美的。我们放大来看看。由于纹波存在阻带不是一个点。我们仔细观察阻带的复平面的表现形状总是从第三象限穿过原点到达地一象限按照之前的说的反正切输出的的范围是所以这里产生的跳动是π而不是2π我们再将其标注在图上便于理解。到此对于相位特性的理解又深刻了2.不负责的几句话再说一点题外话这点我没考证过。在复平面内来说理想滤波器的阻带应该是原点。但是相位特性是这样计算的如下图其实这个前面说过。也就是虚部除以实部的反正切。这里就有问题了要是原点的话相位特性在原点无意义。也就是说其实截止频率之后的相位特性不用管的只要看通带的相位特性就好了。要是觉得难以理解可以换种思维。首先相位特性反应了输入与输出之间的延迟。对于低通滤波器输入的信号单成分正弦波频率越高延迟越大。当频率超过截止频率那么输入与输出之间的延迟是无限的输出永远不会到来也就是阻带。最后这几句话是我个人的理解没有什么科学的证明为了方便理解可以那么去想。博客地址zhoufan900428-CSDN博客 SEO 优化官网定制响应式建站教育培训建站