当前位置:文档之家› 恒参信道对信号传输的影响

恒参信道对信号传输的影响

恒参信道对信号传输的影响
信道响应函数为H (f )=|H (f )|e −j∅(f ),输入信号为x (t )=∑a n g (t −nT s ),其中T s =1,g (t )={1,0≤T s
0,else ,用Matlab 画出如下情况时的信道输出信号,H(f)可自定义。

(1) 无失真信道,如H (f )=e −jπf (2) 幅度失真信道,如H (f )=
sinπf πf
e −jπf
(3) 相位失真信道,如H (f )={e −π(f−1),f ≥0
e −π(f+1),
f <0
一. 实验原理
本次仿真主要通过Matlab 仿真图形直观的观察不同信道对信号的影响,并且总结分
析归纳其中的原因。

通过已有的知识,我们知道输入信号过无失真信道,对其幅频、相频均无影响,也就是说在接收端可以直接获得原发送信号。

输入信号过幅度失真信号会产生幅度失真,信道可想象成其幅度产生变化而相位性质不变。

相位失真信道则在相位上对信号产生影响,幅度性质无改变。

二. Matlab 仿真图像及分析
(1) 输入信号过无失真信道:
(a ) 无失真信道幅频、相频图像:
(b ) 信号过无失真信道后的输入、输出比较:
信道幅频
(c)小结:由图可知,无失真信道对信号不产生大的影响,但仔细观察会发现输出信号相对于输入信号有略微延迟,这是由于信号过系统
产生时延造成的,满足无失真条件。

(2)输入信号过幅度失真信道:
(a)幅度失真信道的幅频、相频图像:
信道幅频
信道相频
(b)信号过幅度失真信道后的输入、输出比较:
输出信号
(c)小结:输出波形相对于输入信号失真了,产生原因是信道幅频响应不是常数,故信号经信道传输会产生明显的幅度失真。

(3)输入信号过相位失真信道:
(a)相位失真信道的幅频、相频图像:
信道相频
(b)信号过幅度失真信道后的输入、输出比较:
输入信号
输出信号
小结:由图可知信号过系统后其幅度大小不变,但相位发生变化,输出
信号相对于输入信号将产生反向。

三.附录:代码
%½¨Á¢ÊäÈëÐźÅx(t),²ÉÑùƵÂÊΪ100Hz,È¡1000¸öµã
N=10;
Fs=100;
Ts=1;
dt=Ts/Fs;
a=randint(1,N,[1 10]);
x=zeros(1,N*Ts/dt);
for i=1:length(x)
x(i)=a(ceil(i/Ts*dt));
end
ft=1024;
xw=fft(x,ft);f=0:1/ft:1-1/ft;
%ÎÞÊ§ÕæÐŵÀ
hw1=exp(-j*f*2*pi);
yw1=hw1.*xw;
yt1=ifft(yw1,ft);
figure(1);
subplot(2,1,1);
plot(abs(hw1));title('ÐŵÀ·ùƵ');
subplot(2,1,2);
plot(angle(hw1));title('ÐŵÀÏàÆµ');
figure(2);
subplot(2,1,1);plot(x);title('ÊäÈëÐźÅ');
axis([1 1200 0 20]);
subplot(2,1,2);plot(real(yt1));title('Êä³öÐźÅ'); axis([1 1200 0 20]);
%·ù¶ÈÊ§ÕæÐŵÀ
hw2=zeros(1,ft);
hw2=sin(f*pi)./(f*pi);
hw2=hw2+sin((1-f)*2*pi)./((1-f)*2*pi);
yw2=hw2.*hw1.*xw;
yw2(1)=0;
figure(3);
subplot(2,1,1);
plot(abs(hw2));title('ÐŵÀ·ùƵ');
subplot(2,1,2);
plot(angle(hw2));title('ÐŵÀÏàÆµ');
yt2=ifft(yw2,ft);
figure(4);
subplot(2,1,1);plot(x);title('ÊäÈëÐźÅ');
axis([1 1200 0 20]);
subplot(2,1,2);plot(real(yt2));title('Êä³öÐźÅ'); %ÏàÎ»Ê§ÕæÐŵÀ
hw3=zeros(1,ft);
hw3(1:ft/2)=exp(-j*(2*pi*f(1:ft/2)-pi));
hw3(ft/2+1:ft)=exp(-j*(2*pi*f(ft/2+1:ft)+pi));
yw3=hw3.*xw;
yt3=ifft(yw3,ft);
figure(5);
subplot(2,1,1);
plot(abs(hw3));title('ÐŵÀ·ùƵ');
subplot(2,1,2);
plot(angle(hw3));title('ÐŵÀÏàÆµ');
figure(6);
subplot(2,1,1);plot(x);title('ÊäÈëÐźÅ');
axis([1 1200 -20 20]);
subplot(2,1,2);plot(real(yt3));title('Êä³öÐźÅ'); axis([1 1200 -20 20]);。

相关主题