用 MATLAB 演示何谓相时延-何谓群时延
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
何谓相时延?何谓群时延?
(数字系统的相延迟和群延迟特性对系统输出的影响)
(作者:王大伦) (本文选自王大伦著《数字信号处理—理论与实践》)
2.8.6 系统无失真传输条件
简单地说,有用信号通过滤波器后,允许有一定的延时,但不希望波形失真。为此,系统首先要保证没有非线性失真,即输出不会产生新的频率分量。与模拟系统不同,LTI 系统在进行数字处理时,并未使用诸如晶体管之类的有源器件,因而不会产生非线性失真,即不会产生新的频率分量。但它应保证没有频率失真。频率失真取决于系统的模频特性和相频特性。如前所述,LTI 系统的频率响应为
θωω=j j j e e H e H |)(|)( (2.8.29)
为了保证无失真传输,在通带内,应使滤波器的模频特性)(|)e (|j 常数K H =ω。
现在,我们来看看对相频特性的要求。假设输入信号包含两个频率各为1ω和2ω的正弦分量:
)sin()sin()(2211n n A n A n S i ωω+=
它们通过系统后,每个分量的幅度都变为原值的K 倍,此外,各自引入相位移1ϕ和2ϕ。故输出为 )sin()sin()(222111out ϕωϕω-+-=n KA n KA n S
)](sin[)](sin[2
2221111ωϕωωϕω-+-=n KA n KA )](sin[)](sin[222111d d n n KA n n KA -+-=ωω 式中,111d ωϕ=n 和2
22d ωϕ=n 分别是频率为1ω和2ω的正弦波到达输出端的延迟样点数(代表时间)。显然,为了得到无失真传输,应保证21d d n n =。因为信号输出总是滞后的,故延迟时间1d n 和2d n 总
是正值。于是,从这个例子可知,为了实现无失真传输,要保证在通带内,
● 幅频特性
)(|)(|常数K e H j ω=。 (2.8.30)
● 相频特性
常数==ωϕd n (ϕ为负值) (2.8.31) d n 称为相时延(phase delay ),它代表曲线)(ωϕ上的一点与原点连线的斜率。
根据相位t f 2πϕ=,数字频率s 2f f πω=,故d s d s
s
12 2n T n T f f t f ===ππωϕ,所以ωϕ~曲线上的任意点与坐标原点的连线斜率具有时间的量纲,其值为s d T n ⨯。
图2.8.7示出低通滤波器的模频特性和相频特性。在通带内。满足了无失真传输条件,即式(2.8.30)和式(2.8.31)。
图2.8.7 低通滤波器的频率特性 图2.8.9 窄带带通滤波器的频率特性
此外,相频曲线)(ωϕ的斜率被定义为群时延(group delay ),记为:
ω
ωϕd )(d -=
g n (2.8.32) 群时延作为ωϕ~曲线上的任意点的微商显然也具有时间量纲,上式的负值代表时间延迟。 在图2.8.6的低通相频特性上,群时延即是相时延。图2.8.9示出带通滤波器的频率特性。如通带很窄,则子图B 上的a 、b 两点连线line2逼近该处的切线,这连线的斜率近似于群时延。但直线
line1是曲线上一点与原点的连线,它代表相时延。可见,对于该带通滤波器来说,通带内的群时延为常数,但相时延是变化的。
既然定义了相时延,为什么还要定义群时延呢?问题是我们不可能设计滤波器,使它的相时延在极宽频带内保持常数,而且也没有必要。高频载波被调幅后,得到调幅波。调幅波通过带通滤波器时,希望滤波器输出端的调幅波包络线形状不变,即能量不散开,而高频载波波形是否改变,是无关重要的。因此,要求带通滤波器通带内的群时延为常数,而无需关注相时延【解说020803】。
MATLAB程序M020803.M和M020804.M分别演示相时延与群时延对滤波器输出波形的影响。请参看图2.8.10和图2.8.11。
图2.8.10 系统相时延特性对输出的影响
(A) 系统相时延为零时的输出(无延时,无波形失真);
(B) 系统相时延为常数时的输出(有延时,无波形失真)
(C) 系统相时延不是常数时的输出(有延时,有波形失真)
图2.8.11 系统群时延特性对输出的影响
(A) 系统群时延为零时的输出(无延时,包络线无波形失真);
(B) 系统群时延为常数时的输出(有延时,包络线无波形失真)
(C) 系统群相时延不是常数时的输出(有延时,包络线有波形失真)
% M020803
% 演示相时延对信号波形的影响
%
set(gcf, 'color', 'w')
n = 0:30;
fs = 1000
S11=2*sin(2*pi*50*(1/fs)*n); S12=2*sin(2*pi*100*(1/fs)*n);
S13=2*sin(2*pi*150*(1/fs)*n)
S21=2*sin(2*pi*50*(1/fs)*n - 0.3*pi); S22=2*sin(2*pi*100*(1/fs)*n - 0.6*pi);
S23=2*sin(2*pi*150*(1/fs)*n - 0.9*pi)
S31=2*sin(2*pi*50*(1/fs)*n - 0.3*pi); S32=2*sin(2*pi*100*(1/fs)*n - 0.7*pi);
S33=2*sin(2*pi*150*(1/fs)*n - 0.8*pi)
s1 = S11 + S12 + S13; s2 = S21 + S22 + S23; s3 = S31 + S32 + S33
subplot(2,2,1)
plot(n,s1); grid;
xlabel('n'); ylabel('s1(n)'); title('原来的合成信号1 ', 'fontsize', 8)
subplot(2,2,2)
plot(n,s2); grid;1
xlabel('n'); ylabel('s2(n)'); title('合成信号2 -- 相位移与频率成正比', 'fontsize', 8) subplot(2,2,3)
plot(n,s3); grid; axis([1 30 -5 5]);
xlabel('n'); ylabel('s3(n)'); title('合成信号3 -- 相位移与频率不成正比', 'fontsize', 8)