音频进阶学习十八——幅频响应相同系统、全通系统、最小相位系统

文章目录


前言

本篇文章将结合频率响应的特性,介绍三种基本的系统:幅频响应相同的系统、全通系统、最小相位系统。其中最重要的是需要了解到:

  1. 对于任何给定的系统,总会有另外一个系统的幅频响应与之相同
  2. 全通系统的系统零点和极点是关于单位圆共轭对称。
  3. 当 H ( z ) H(z) H(z)的零点和极点都在单位圆内,称为最小相位系统。同时一个稳定因果的LTI系统,同时会有一个稳定因果的逆系统。

当了解到这些后,在以后的文章中可以利用这些系统设计出一个逆系统,可以在出现回声时,通过逆系统恢复原始信号。

|版本声明:山河君,未经博主允许,禁止转载


一、幅频响应相同的系统

先给结论:对于任何给定的系统,总会有另外一个系统的幅频响应与之相同

1.共轭

在了解幅频响应相同的系统之前,需要先了解一下共轭关系。

在之前的对于DTFT公式的分析音频进阶学习九------离散时间傅里叶变换DTFT时,就提到了共轭的特性,复指数的共轭是指实部不变,虚部翻转,而实数由于不存在虚部,实数的共轭即为本身。

2.幅频响应的共轭特性

1)幅频响应的共轭

幅频响应公式
∣ H ( e j ω ) ∣ = ( R e H ( e j ω ) ) 2 + ( I m ( H ( e j ω ) ) 2 |H(e^{j\omega})| = \sqrt{(ReH(e^{j\omega}))^2+(Im(H(e^{j\omega}))^2} ∣H(ejω)∣=(ReH(ejω))2+(Im(H(ejω))2

所以对于幅频响应的共轭
∣ H ∗ ( e j ω ) ∣ = ( R e H ( e j ω ) ) 2 + ( − I m ( H ( e j ω ) ) 2 = ∣ H ( e j ω ) ∣ |H^*(e^{j\omega})| = \sqrt{(ReH(e^{j\omega}))^2+(-Im(H(e^{j\omega}))^2}=|H(e^{j\omega})| ∣H∗(ejω)∣=(ReH(ejω))2+(−Im(H(ejω))2 =∣H(ejω)∣

即幅频响应的共轭等于它本身

2)共轭反对称序列的幅频响应

对于 e j ω = cos ⁡ ω + j sin ⁡ ω e^{j\omega}=\cos\omega+j\sin\omega ejω=cosω+jsinω,很明显存在共轭反对称性质:

  • 偶函数:对于纵轴对称 f ( x ) = f ( − x ) f(x)=f(-x) f(x)=f(−x),即 cos ⁡ \cos cos函数代表的实部
  • 奇函数:对于原点对称 f ( j x ) = − f ( − j x ) f(jx)=-f(-jx) f(jx)=−f(−jx),即 sin ⁡ \sin sin函数代表的虚部
  • 共轭:影响虚部 f ∗ ( j x ) = − f ( j x ) f^*(jx)=-f(jx) f∗(jx)=−f(jx),即关于横轴对称

所以对于共轭反对称序列,实部满足 f ∗ ( − x ) = f ∗ ( x ) f^*(-x)=f^*(x) f∗(−x)=f∗(x),虚部满足 f ∗ ( − j x ) = − f ( − j x ) = f ( j x ) f^*(-jx)=-f(-jx)=f(jx) f∗(−jx)=−f(−jx)=f(jx),所以对于系统的 x [ n ] e j ω n = x ∗ [ n ] e − j ω n x[n]e^{j\omega n}=x^*[n]e^{-j\omega n} x[n]ejωn=x∗[n]e−jωn,且实部和虚部图像相同,则幅频图像相同。

值得注意的是,相频图像是相反的,这是因为对于 e j ω e^{j\omega} ejω的相位是 ω \omega ω,而对于对于 e − j ω e^{-j\omega} e−jω的相位是 − ω -\omega −ω,如下图

即验证了之前在描述DTFT和Z变换中对于共轭反对称序列
X ( e j ω ) = ∑ n = − ∞ ∞ x [ n ] e − j ω n , x ∗ [ − n ] ⟷ D T F T X ∗ ( e j ω ) X ( z ) = ∑ n = − ∞ ∞ x [ n ] z − n = ∑ n = − ∞ ∞ x [ n ] r − n e − j ω n , x ∗ [ − n ] ⟷ z X ∗ ( 1 z ∗ ) X(e^{j\omega})=\sum_{n=-\infty}^{\infty}x[n]e^{-j\omega n}, \quad x^*[-n] \stackrel{DTFT}{\longleftrightarrow} X^*(e^{j\omega})\\ X(z)=\sum^{\infty}{n=-\infty}x[n]z^{-n}=\sum^{\infty}{n=-\infty}x[n]r^{-n}e^{-j\omega n},\quad x^*[-n] \stackrel{z}{\longleftrightarrow} X^*(\frac{1}{z^*}) X(ejω)=n=−∞∑∞x[n]e−jωn,x∗[−n]⟷DTFTX∗(ejω)X(z)=n=−∞∑∞x[n]z−n=n=−∞∑∞x[n]r−ne−jωn,x∗[−n]⟷zX∗(z∗1)

3.共轭反对称的极点与零点

将上文中的冲激响应Z变换使用有理分式的累积表示:
H ( z ) = ∏ m = 1 M ( 1 − c m z − 1 ) ∏ n = 1 N ( 1 − d n z − 1 ) = > H ∗ ( z ) = ∏ m = 1 M ( 1 − c m ∗ ( z ∗ ) − 1 ) ∏ n = 1 N ( 1 − d n ∗ ( z ∗ ) − 1 ) = > H ∗ ( 1 z ∗ ) = ∏ m = 1 M ( 1 − c m ∗ z ) ∏ n = 1 N ( 1 − d n ∗ z ) H(z)=\frac{\prod_{m=1}^M(1-c_mz^{-1})}{\prod_{n=1}^N(1-d_nz^{-1})} =>\\ H^*(z)=\frac{\prod_{m=1}^M(1-c_m^*(z^*)^{-1})}{\prod_{n=1}^N(1-d_n^*(z^*)^{-1})}=>\\ H^*(\frac{1}{z^*}) = \frac{\prod_{m=1}^M(1-c_m^*z)}{\prod_{n=1}^N(1-d_n^*z)} H(z)=∏n=1N(1−dnz−1)∏m=1M(1−cmz−1)=>H∗(z)=∏n=1N(1−dn∗(z∗)−1)∏m=1M(1−cm∗(z∗)−1)=>H∗(z∗1)=∏n=1N(1−dn∗z)∏m=1M(1−cm∗z)

我们知道对于 H ( z ) H(z) H(z)的极点和零点分别是 d n , c m d_n,c_m dn,cm,而对于 H ∗ ( 1 z ∗ ) H^*(\frac{1}{z^*}) H∗(z∗1)的极点和零点分别是 1 d n ∗ , 1 c m ∗ \frac{1}{d_n^*},\frac{1}{c_m^*} dn∗1,cm∗1。如果写成极坐标的方式:
z = d n = r e j θ = > z = 1 d n ∗ = 1 r e j θ z = c m = r e j θ = > z = 1 c m ∗ = 1 r e j θ z=d_n=re^{j\theta}=>z=\frac{1}{d_n^*}=\frac{1}{r}e^{j\theta}\\ z=c_m=re^{j\theta}=>z=\frac{1}{c_m^*}=\frac{1}{r}e^{j\theta} z=dn=rejθ=>z=dn∗1=r1ejθz=cm=rejθ=>z=cm∗1=r1ejθ

结合图像来看一下极点,假如 r < 1 r<1 r<1也就是极点位置在单位圆内,那么 1 r \frac{1}{r} r1则在单位圆外,且对于单位圆对称,对于零点也是一样

也就是说,对于共轭反对称序列

  • 极点关于单位圆共轭对称
  • 零点关于单位圆共轭对称

4.幅频响应相同的系统

从上文可知:
H ( e j ω ) ⟷ D T F T h [ n ] H ∗ ( e j ω ) ⟷ D T F T h ∗ [ − n ] H ∗ ( 1 z ∗ ) ⟷ z h ∗ [ − n ] H(e^{j\omega})\stackrel{DTFT}{\longleftrightarrow} h[n]\\ H^*(e^{j\omega})\stackrel{DTFT}{\longleftrightarrow} h^*[-n] \\ H^*(\frac{1}{z^*}) \stackrel{z}{\longleftrightarrow}h^*[-n] H(ejω)⟷DTFTh[n]H∗(ejω)⟷DTFTh∗[−n]H∗(z∗1)⟷zh∗[−n]

由此我们得出结论:对于任何给定的系统,总会有另外一个系统的幅频响应与之相同。这个结论非常重要,在回声消除中对于回声路径的建模,即是依靠这一结论。

为了简化书写,可以写成如下表达:
∣ H ( e j ω ) ∣ 2 = H ( e j ω ) H ∗ ( e j ω ) = H ( e j ω ) H ∗ ( 1 z ∗ ) ∣ z = e j ω |H(e^{j\omega})|^2=H(e^{j\omega}) H^*(e^{j\omega})=H(e^{j\omega})H^*(\frac{1}{z^*})|_{z=e^{j\omega}} ∣H(ejω)∣2=H(ejω)H∗(ejω)=H(ejω)H∗(z∗1)∣z=ejω

二、全通系统

1.定义

对所有的频率分量的幅频响应都为1,也就是
∣ H ( e j ω ) ∣ = 1 |H(e^{j\omega})|=1 ∣H(ejω)∣=1

2.举例

将 z = e j ω z=e^{j\omega} z=ejω代入
H a p ( z ) = z − 1 − a ∗ 1 − a z − 1 = > ∣ H a p ( e j ω ) ∣ = ∣ e − j ω − a ∗ 1 − a e − j ω ∣ = ∣ e j ω ( e j ω − a ) ∗ e j ω − a ∣ = 1 H_{ap}(z)=\frac{z^{-1}-a^*}{1-az^{-1}}=>\\ |H_{ap}(e^{j\omega})|=|\frac{e^{-j\omega}-a^*}{1-ae^{-j\omega}}|=|e^{j\omega}\frac{(e^{j\omega}-a)^*}{e^{j\omega}-a}| = 1 Hap(z)=1−az−1z−1−a∗=>∣Hap(ejω)∣=∣1−ae−jωe−jω−a∗∣=∣ejωejω−a(ejω−a)∗∣=1

对于该式中,极点为 a a a,而零点为 1 a ∗ \frac{1}{a^*} a∗1,也能很清楚的看到对于该系统零点和极点是关于单位圆共轭对称。

3.一般形式

一般的全通系统表示为:
H a p ( z ) = ∏ k = 1 M z − 1 − d k 1 − d k z − 1 ∏ k = 1 M ( z − 1 − e k ∗ ) ( z − 1 − e k ) ( 1 − e k z − 1 ) ( 1 − e k ∗ z − 1 ) H_{ap}(z)=\prod_{k=1}^M\frac{z^{-1}-d_k}{1-d_kz^{-1}}\prod_{k=1}^M\frac{(z^{-1}-e_k^*)(z^{-1}-e_k)}{(1-e_kz^{-1})(1-e_k^*z^{-1})} Hap(z)=k=1∏M1−dkz−1z−1−dkk=1∏M(1−ekz−1)(1−ek∗z−1)(z−1−ek∗)(z−1−ek)

这种写法前部分表明了零点和极点的共轭对称性,是全通系统的一项基本特征 ,而后半部分是引入额外的零点和极点对,其中 e k e_k ek和 e k ∗ e_k^* ek∗是另外一组复共轭对。这样做的原因可能是为了构造一个更复杂的全通系统,带有多个零点和极点对,同时确保频率响应的幅度始终为常数

如下图对于不同取值下零点和极点的分布,以及他们的幅频响应图:

matlab代码

matlab 复制代码
M = 2;
d = [0.5 + 0.5i, 0.5 - 0.5i]; 
e = [0.3 + 0.4i, 0.3 - 0.4i]; 

zeros_all = [d, conj(d), e, conj(e)];
poles_all = [1./d, 1./conj(d), 1./e, 1./conj(e)];

figure;
zplane(zeros_all, poles_all);
title('极点和零点分布');
grid on;

omega = linspace(0, 2*pi, 1000);
H = ones(size(omega));

for k = 1:M
    H = H .* (exp(-1j*omega) - d(k)) ./ (1 - d(k)*exp(-1j*omega));
    H = H .* (exp(-1j*omega) - e(k)) .* (exp(-1j*omega) - conj(e(k))) ./ ...
        ((1 - e(k)*exp(-1j*omega)) .* (1 - conj(e(k))*exp(-1j*omega)));
end

figure;
plot(omega, abs(H));
title('幅频响应');
xlabel('频率 \omega');
ylabel('|H(e^{j\omega})|');
grid on;

三、最小相位系统

1.定义

当 H ( z ) H(z) H(z)的零点和极点都在单位圆内,称为最小相位系统。同时一个稳定因果的LTI系统,同时会有一个稳定因果的逆系统 。我们来理解一下这句话,在音频进阶学习十六------LTI系统的差分方程与频域分析一(频率响应)中,对于有理分式的因果稳定要求:

  • 对于ROC要包含某个圆外部分,此时系统是因果的
  • 对于所有极点在单位圆内,则系统一定是稳定的

而对于逆系统,即假设 G ( z ) H ( z ) = 1 G(z)H(z)=1 G(z)H(z)=1,关于逆系统的分析下一篇文章再进行分析,那么 G ( z ) G(z) G(z)和 H ( z ) H(z) H(z)实则为互为倒数,对于 H ( z ) H(z) H(z)的极点也就变成了 G ( z ) G(z) G(z)的零点,而对于 H ( z ) H(z) H(z)的零点点也就变成了 G ( z ) G(z) G(z)的极点。

当 H ( z ) H(z) H(z)的零点和极点都在单位圆内,对于 G ( z ) G(z) G(z)的零点和极点也都在单位圆内,那么 G ( z ) G(z) G(z)也一定是一个因果稳定的系统。

2.全通分解

全通分解主要用于将一个系统的响应分解为两个部分:最小相位部分和全通部分 。全通分解的主要目标是将一个系统的相频响应(尤其是相位)分解为两个部分,使得幅频响应保持不变,并且将相位信息进行调整。即表示为:
H ( z ) = H m i n ( z ) H a p ( z ) H(z)=H_{min}(z)H_{ap}(z) H(z)=Hmin(z)Hap(z)

其中 H a p ( z ) H_{ap}(z) Hap(z)是全通系统, H m i n ( z ) H_{min}(z) Hmin(z)是最小相位系统

值得注意的是,这个等式左右,幅频响应相同,而相频响应发生了变化

3.全通分解的证明

假设对于有理分式 H ( z ) H(z) H(z)存在一个零点在圆外: z = 1 z c ∗ z=\frac{1}{z_c^*} z=zc∗1,其余零点在圆内,那么可以表示为:
H ( z ) = H 1 ( z ) ( z − 1 − z c ∗ ) H(z)=H_1(z)(z^{-1}-z_c^*) H(z)=H1(z)(z−1−zc∗)

此时增加一个零点和极点 z c z_c zc,即 1 − z c ∗ 1 − z c ∗ \frac{1-z_c^*}{1-z_c^*} 1−zc∗1−zc∗,即如下图

上式就变成
H ( z ) = H 1 ( z ) ( z − 1 − z c ∗ ) × 1 − z c ∗ 1 − z c ∗ = > H 1 ( z ) ( 1 − z c ∗ ) × z − 1 − z c ∗ 1 − z c ∗ H(z)=H_1(z)(z^{-1}-z_c^*) \times \frac{1-z_c^*}{1-z_c^*}=>H_1(z)(1-z_c^*) \times \frac{z^{-1}-z_c^*}{1-z_c^*} H(z)=H1(z)(z−1−zc∗)×1−zc∗1−zc∗=>H1(z)(1−zc∗)×1−zc∗z−1−zc∗

对于 z − 1 − z c ∗ 1 − z c ∗ \frac{z^{-1}-z_c^*}{1-z_c^*} 1−zc∗z−1−zc∗的极点和零点关于单位圆共轭对称,且模长为1,即为全通系统。而对于 H 1 ( z ) ( 1 − z c ∗ ) H_1(z)(1-z_c^*) H1(z)(1−zc∗)为最小相位系统。

对于极点的分析也是一样,即可以写成
H ( z ) = H m i n ( z ) H a p ( z ) H(z)=H_{min}(z)H_{ap}(z) H(z)=Hmin(z)Hap(z)

系统补偿

由上文可知,对于 H a p ( z ) H_{ap}(z) Hap(z)的幅频特性为1,可以看出 H m i n ( z ) H_{min}(z) Hmin(z)就是原系统的幅频响应,并且在上一篇文章中音频进阶学习十七------LTI系统的差分方程与频域分析二(极点与零点),当于零极点在单位圆内,并且此时的相位最平缓,群延迟最小。

而对于 H a p ( z ) H_{ap}(z) Hap(z),此时幅频特性为1,但是在单位圆外的零极点实际上拆分到了 H a p ( z ) H_{ap}(z) Hap(z)中,所以可能会引起系统的相位畸变。而这种畸变就是由于原系统具有非最小相位特性。此时就可以通过系统补偿来去除这种影响:
H m i n ( z ) H a p ( z ) H c ( z ) H_{min}(z)H_{ap}(z)H_c(z) Hmin(z)Hap(z)Hc(z)

最简单的做法是
H c ( z ) = 1 H a p H_c(z)=\frac{1}{H_{ap}} Hc(z)=Hap1

这种方法理论上可行,但实际上可能也会不稳定,最合适的方法是设计一个新的全通补偿滤波器 H c ( z ) H_c(z) Hc(z)来优化相位特性。

当然需要系统补偿的情况往往在以下场景出现:

  • 语音信号通常要求相位特性尽可能线性,以避免失真(零极点在单位圆外引起的相位失真)。
  • 适用于不需要原系统相位特性,例如语音增强、信号均衡。

全通分解举例

现在有系统有理分式为
H ( z ) = 1 − 2 z − 1 1 − 1 3 z − 1 = − 2 z − 1 − 1 2 1 − 1 3 z − 1 H(z)=\frac{1-2z^{-1}}{1-\frac{1}{3z^{-1}}}=-2\frac{z^{-1}-\frac{1}{2}}{1-\frac{1}{3z^{-1}}} H(z)=1−3z−111−2z−1=−21−3z−11z−1−21

即系统的零点是2,增加一个共轭倒数的零点 1 2 \frac{1}{2} 21,则上式
H ( z ) = = − 2 z − 1 − 1 2 1 − 1 3 z − 1 × 1 − 1 2 z − 1 1 − 1 2 z − 1 = > − 2 1 − 1 2 z − 1 1 − 1 3 z − 1 × z − 1 − 1 2 1 − 1 2 z − 1 H(z)==-2\frac{z^{-1}-\frac{1}{2}}{1-\frac{1}{3z^{-1}}}\times\frac{1-\frac{1}{2}z^{-1}}{1-\frac{1}{2}z^{-1}}=>-2\frac{1-\frac{1}{2}z^{-1}}{1-\frac{1}{3z^{-1}}}\times\frac{z^{-1}-\frac{1}{2}}{1-\frac{1}{2}z^{-1}} H(z)==−21−3z−11z−1−21×1−21z−11−21z−1=>−21−3z−111−21z−1×1−21z−1z−1−21

对于 − 2 1 − 1 2 z − 1 1 − 1 3 z − 1 -2\frac{1-\frac{1}{2}z^{-1}}{1-\frac{1}{3z^{-1}}} −21−3z−111−21z−1是一个最小相位系统,而对于 z − 1 − 1 2 1 − 1 2 z − 1 \frac{z^{-1}-\frac{1}{2}}{1-\frac{1}{2}z^{-1}} 1−21z−1z−1−21是一个全通系统。


总结

本章着重介绍了幅频响应相同系统、全通系统以及最小相位系统。值得注意的是全通分解是可以将一个有理系统进行分割为最小相位系统和全通系统。如果对于失真的系统我们可以通过系统补偿来去除相位畸变,达到去除失真的效果。

那么下一篇文章将介绍本文中提到的逆系统是如何设计的。逆系统的设计是和本文中介绍的全通系统,最小相位系统紧密相关的。并且下一篇文章中将实际给出实例,来简单构造一个逆系统去除回声。

反正收藏也不会看,不如点个赞吧!

相关推荐
云上艺旅7 分钟前
K8S学习之基础十五:k8s中Deployment扩容缩容
学习·docker·云原生·kubernetes·k8s
余~~1853816280026 分钟前
碰一碰发视频系统之写卡功能开发了,支持OEM
线性代数·矩阵·音视频
亭墨36 分钟前
linux0.11内核源码修仙传第五章——内存初始化(主存与缓存)
linux·c语言·驱动开发·学习·缓存·系统架构
q5673152338 分钟前
用Go的resty库批量下载公开网站视频
开发语言·golang·音视频
凡人的AI工具箱1 小时前
PyTorch深度学习框架60天进阶学习计划第14天:循环神经网络进阶
人工智能·pytorch·python·深度学习·学习·ai编程
傍晚冰川1 小时前
【江协科技STM32】ADC数模转换器-学习笔记
笔记·科技·stm32·单片机·嵌入式硬件·学习
知识分享小能手2 小时前
Html5学习教程,从入门到精通, HTML5 新的 Input 类型:语法知识点与案例代码(16)
开发语言·前端·学习·html·html5·web·java开发
小呀小萝卜儿2 小时前
2025-03-08 学习记录--C/C++-PTA 习题10-2 递归求阶乘和
c语言·学习
JAVA叶知秋4 小时前
完美解决uni-app打开页面无法自动播放视频的问题
前端·uni-app·音视频
虾球xz4 小时前
游戏引擎学习第143天
学习·游戏引擎