实验四 无失真传输系统仿真
一、实验目的
在掌握相关基础知识的基础上,学会自己设计实验,学会运用MATLAB语言编程,并具有进行信号分析的能力。在本实验中学会利用所学方法,加深了角和掌握无失真的概念和条件。
二、实验内容
(1)一般情况下,系统的响应波形和激励波形不相同,信号在传输过程中将产生失真。
线性系统引起的信号失真有两方面因素造成,一是系统对信号中各频率分量幅度产生不同程度的衰减,使响应各频率分量的相对幅度产生变化,引起幅度失真。另一是系统对各频率分量产生的相移不与频率成正比,使响应的各频率分量在时间轴上的相对位置产生变化,引起相位失真。
线性系统的幅度失真与相位失真都不产生新的频率分量。而对于非线性系统则由于其非线性特性对于所传输信号产生非线性失真,非线性失真可能产生新的频率分量。
所谓无失真是指响应信号与激励信号相比,只是大小与出现的时间不同,而无波形上的变化。设激励信号为e(t),响应信号为r(t),无失真传输的条件是 r(t)Ke(tt0) (4-1) 式中K是一常数,t0为滞后时间。满足此条件时,r(t)波形是e(t)波形经t0时间的滞后,虽然,幅度方面有系数K倍的变化,但波形形状不变。
(2)要实现无失真传输,对系统函数H(j)应提出怎样的要求
设r(t)与e(t)的傅立叶变换式分别为R(j)与E(j)。借助傅立叶变换的延时定理,从式(4-1)可以写出
R(j)KE(j)ejt0 (4-2) 此外还有 (4-3)
所以,为满足无失真传输应有
H(j)Kejt0 (4-4) (4-4)式就是对于系统的频率响应特性提出的无失真传输条件。欲使信号在通过线性系统时不产生任何失真,必须在信号的全部频带内,要求系统频率响应的幅度特性是一常数,相位特性是一通过原点的直线。
R(j)H(j)E(j)
三、实验任务
对于图所示系统,利用理论分析和实验仿真的方法,确定其无失真传输条件。
图4-1 衰减电路
R2jC21R2jC2R1R2jC1jC211R1R2jC1jC2R21jR2C2R1R21jR1C11jR2C2计算如右:
H()U0()Ui()
= (4-5)
如果 R1C1R2C2 则 H()R2是常数,()0 (4-6) R2R1 式(4-6)满足无失真传输条件。
四、实验要求
(1)绘制各种输入信号失真条件下的输入输出信号(至少三种)。 (2)绘制各种输入信号无失真条件下的输入输出信号(至少三种)。 (3)编制出完整的实验程序,进行验证,绘制滤波器的频率响应曲线,形成实验报告。 解: (1)
R1=input('电阻R1=') R2=input('电阻R2=') C1=input('电容C1=') C2=input('电容C2=') syms t W;
x1=cos(2*pi*t); x2=exp(-2*abs(t));
x3=2*cos(2*pi*t)+3*sin(2*pi**t); F1=fourier(x1);
F2=fourier(x2); F3=fourier(x3);
H1=R2/(1+i*W*R2*C2); H2=R1/(1+i*W*R1*C1); H=H1/(H2+H1); R1=H*F1; R2=H*F2; R3=H*F3;
f1=ifourier(R1) f2=ifourier(R2) f3=ifourier(R3)
subplot(321);ezplot(x1); subplot(322);ezplot(f1); subplot(323);ezplot(x2); subplot(324);ezplot(f2); subplot(325);ezplot(x3); subplot(326);ezplot(f3);
执行后输入参数
电阻R1=2000 R1 =
2000 电阻R2=1000 R2 =
1000 电容C1= C1 = 电容C2= C2 =
得到如图所示的三种信号在失真的情况下的输入输出信号和输出信号的表达式
f1 =
cos(2*pi*x)*(1+20*i*W)/(3+40*i*W) f2 =
(1+20*i*W)*(exp(2*x)*heaviside(-x)+exp(-2*x)*heaviside(x))/(3+40*i*W)
f3 =
(3*sin(3*pi*x)+2*cos(2*pi*x))*(1+20*i*W)/(3+40*i*W)
图4-2 三种信号在失真的情况下的输入输出信号
(2)
R1=input('电阻R1=') R2=input('电阻R2=') C1=input('电容C1=') C2=input('电容C2=') syms t W;
x1=cos(2*pi*t); x2=exp(-2*abs(t));
x3=2*cos(2*pi*t)+3*sin(2*pi**t); F1=fourier(x1); F2=fourier(x2); F3=fourier(x3);
H1=R2/(1+i*W*R2*C2); H2=R1/(1+i*W*R1*C1); H=H1/(H2+H1); R1=H*F1; R2=H*F2; R3=H*F3;
f1=ifourier(R1) f2=ifourier(R2) f3=ifourier(R3)
subplot(321);ezplot(x1); subplot(322);ezplot(f1); subplot(323);ezplot(x2); subplot(324);ezplot(f2); subplot(325);ezplot(x3); subplot(326);ezplot(f3);
执行后输入参数
电阻R1=2000 R1 =
2000 电阻R2=1000 R2 =
1000 电容C1= C1 = 电容C2= C2 =
得到如图所示的三种信号在失真的情况下的输入输出信号和输出信号的表达式
f1 =
1/3*cos(2*pi*x) f2 =
1/3*exp(2*x)*heaviside(-x)+1/3*exp(-2*x)*heaviside(x) f3 =
sin(3*pi*x)+2/3*cos(2*pi*x)
图4-3 三种信号在无失真的情况下的输入输出信号
(3)
clf;
R1=input('电阻R1=') R2=input('电阻R2=') C1=input('电容C1=') C2=input('电容C2=') t=-1::1;
xa=sin(2*pi*t);
a = [R1*R2*(C1+C2) R1+R2]; b = [R1*R2*C1 R2]; w = logspace(-1,1); h = freqs(b,a,w); mag = abs(h); phase = angle(h);
subplot(2,1,1), loglog(w,mag) subplot(2,1,2), semilogx(w,phase)
执行后输入无失真传输参数:
电阻R1=2000 R1 =
2000 电阻R2=1000 R2 =
1000 电容C1= C1 =
电容C2= C2 =
得到如图的滤波器的频率响应:
图4-4 无失真滤波器的频率响应
执行后输入失真传输参数:
电阻R1=2000 R1 =
2000 电阻R2=1000 R2 =
1000 电容C1= C1 =
电容C2= C2 =
得到如图的滤波器的频率响应:
图4-5 失真滤波器的频率响应
五、MATLAB函数
熟悉下列函数的应用 h = freqs(b,a,w); w = logspace(-1,1); f1=ifourier(R1) ezplot(f3); F1=fourier(x1); syms t W;