首页/新闻资讯/正文详情

[数字信号处理]相位特性解卷绕

发布时间:2026/11/4 22:06:07 来源:云帆数科 栏目:资讯中心
[数字信号处理]相位特性解卷绕
【修订版】本文已整理到我的个人博客订正了原文的几处错误原文推测「阻带内延迟趋于无穷」这个结论不成立已改为零点附近相位翻转 π 的解释另补充了 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博客

相关推荐

CodexBar中文本地化实战:从零搭建多语言界面
CodexBar中文本地化实战:从零搭建多语言界面

1. 项目概述:为什么 CodexBar 的多语言界面不是“点一下就切换”的事CodexBar 这个名字听起来像是一款面向开发者的代码辅助工具,但实际使用中你会发现,它默认的英文界面在中文工作流里处处别扭——菜单项缩写看不懂、报错提示全是生硬直译、… · 2026/11/4 22:05:04

动漫游戏启动器:轻量级运行时环境封装方案
动漫游戏启动器:轻量级运行时环境封装方案

1. 项目概述:这不是一个普通的游戏启动器,而是一套面向动漫游戏生态的轻量级运行时环境封装方案“YuukiPS Launcher游戏启动器终极使用指南:一键畅玩动漫游戏”——这个标题里藏着三个关键信号:YuukiPS(一个在二次元技… · 2026/11/4 22:05:04

8G显存本地AI数字人实战:从ASR到TTS的完整搭建与调优指南
8G显存本地AI数字人实战:从ASR到TTS的完整搭建与调优指南

8G显存在AI本地化圈子里处境挺尴尬的:你说它能跑模型吧,7B量化之后勉强能聊;你说它跑不好吧,又确实比集显强太多。大多数教程讲的都是怎么用Ollama跑一个聊天模型,但很少有人说可以更进一步——把它变成一只能听懂人话… · 2026/11/5 0:00:39

大模型系统性入门:从原理、部署到微调应用的完整路线
大模型系统性入门:从原理、部署到微调应用的完整路线

1. 为什么你收藏了300个教程,依然觉得大模型没入门我先讲一个前几天在交流群里看到的真实场景:有人问"大模型怎么入门",群里立马有人甩出几个网盘链接,里面躺着几百个PDF和视频,说是"全网最全的大模型学… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

Mac软件下载站分类指南:四类渠道与安全判断标准
Mac软件下载站分类指南:四类渠道与安全判断标准

Mac用户找软件这件事,说大不大,说小也真不小。我用了十来年Mac,从最早在论坛里翻帖子找注册码,到后来自己维护一份资源清单,踩过的坑能写满一页纸:下到过套壳安装包、遇到过捆绑浏览器主页的“绿色版”、也… · 2026/11/4 23:59:37

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码