零相位响应(Zero-Phase Response)是指滤波器的幅度函数,但相位为零。滤波器的相位响应为零,意味着不同频率的信号通过滤波器后,其相位不发生任何变化,即信号的波形在时间轴上没有偏移。

零相位响应指的是当一个系统或滤波器对输入信号进行处理时,输出信号与输入信号之间没有相位差的情况。信号的各个频率成分在通过系统后,虽然可能经历了幅度的变化(即增益的变化),但它们的相位没有被改变。

奇数偶对称序列的滤波器直接是零相位响应。

zerophase函数

zerophase函数计算滤波器的零相位响应(Zero-phase Response)。它通过调整滤波器的相位,使得相位为零,但幅度保持不变。零相位响应可以为负值,这与幅度响应(总是非负)不同。用于滤波器设计和分析阶段中分析滤波器的零相位响应。

数学原理

• 零相位响应 Hr(ω)H_r(\omega)Hr(ω) 与频率响应 H(ω)H(\omega)H(ω) 的关系为:
H(ω)=Hr(ω)ejΦz(ω)H(\omega) = H_r(\omega) e^{j\Phi_z(\omega)}H(ω)=Hr(ω)ejΦz(ω)
其中, Φz(ω)\Phi_z(\omega)Φz(ω) 是连续相位。

在 zerophase 函数中,核心函数是freqz 函数。freqz 是 MATLAB 中的一个标准函数,用于计算数字滤波器的频率响应。在 zerophase 的代码中,freqz 被调用以获取滤波器的频率响应数据,这些数据随后被用来计算零相位响应。

在 zerophase 中,freqz 的主要作用是计算滤波器的频率响应H(ejω)H(e^{j\omega})H(e)。频率响应是一个复数,包含幅度和相位信息。zerophase 函数利用 freqz 的输出来进一步计算零相位响应Hr(ω)H_r(\omega)Hr(ω)
• 幅度:取频率响应的绝对值∣H(ejω)∣|H(e^{j\omega})|H(e)
• 相位:计算频率响应的相位∠H(ejω)\angle H(e^{j\omega})H(e) ,并调整相位以得到零相位响应。

zerophase 的核心计算是:

  1. 使用 freqz 计算频率响应H(ejω)H(e^{j\omega})H(e)
  2. 从频率响应中提取幅度∣H(ejω)∣|H(e^{j\omega})|H(e)
  3. 估计滤波器的符号(正或负),并根据符号调整幅度响应。
  4. 计算零相位响应Hr(ω)H_r(\omega)Hr(ω)

Hr(ω)=sign(H(ejω))×∣H(ejω)∣H_r(\omega) = \text{sign}(H(e^{j\omega})) \times |H(e^{j\omega})|Hr(ω)=sign(H(e))×H(e)
5. 计算连续相位Φz(ω)\Phi_z(\omega)Φz(ω)

在这里插入图片描述
在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐