|
楼主 |
发表于 2008-5-4 23:28
|
显示全部楼层
回复 4楼 的帖子
你好,我的工作是,建立一个信道模型(已经建立),再给一个输入信号,将这个信号和这个模型(即传输函数)进行卷积,最后得到一个输出信号。
我在编程时,发现仿真输出结果不太对。所以在想是不是输入信号不对,是不是应该要连续的正弦信号。
我的输入信号程序如下:
echo on
t0=.2;
ts=0.001;
fs=1/ts;
df=0.3;
t=[-t0/2:ts:t0/2];
m=sinc(100*t);
[M,m,df1]=fftseq(m,ts,df);
M=M/fs;
f=[0:df1:df1*(length(m)-1)]-fs/2;
subplot(2,1,1)
plot(t,m(1:length(t)))
xlabel('Time')
title('The message signal')
pause
subplot(2,1,2)
plot(f,abs(fftshift(M)))
xlabel('Frequency')
title('Spectrum of the message signal')
我的信道模型程序:
echo on
t0=2.*10.^7;
ts=4.*10.^6;
f=[0:ts:t0];
m=0.64.*exp(-1.56.*(10.^(-7)).*f).*exp(-2.66.*j.*pi.*f)+0.38.*exp(-1.73.*(10.^(-7)).*f).*exp(-2.97.*j.*pi.*f)-0.15.*exp(-1.9.*(10.^(-7)).*f).*exp(-3.26.*j.*pi.*f)+0.05.*exp(-2.09.*(10.^(-7)).*f).*exp(-3.57.*j.*pi.*f);
absm=abs(m);
s=20.*log(absm);
plot(f,s)
grid;
xlabel('Frequency')
title('The Discrete Magnitude Spectrum')
我的卷积程序:
echo on
t0=.2;
ts=0.001;
f=[0:5000:2.*10.^7];
fs=1/ts;
df=0.3;
t=[-t0/2:ts:t0/2];
m=sinc(100*t);
[M,m,df1]=fftseq(m,ts,df);
f=[0:df1:df1*(length(m)-1)]-fs/2;
H=0.64.*exp(-1.56.*(10.^(-7)).*f).*exp(-2.66.*j.*pi.*f)+0.38.*exp(-1.73.*(10.^(-7)).*f).*exp(-2.97.*j.*pi.*f)-0.15.*exp(-1.9.*(10.^(-7)).*f).*exp(-3.26.*j.*pi.*f)+0.05.*exp(-2.09.*(10.^(-7)).*f).*exp(-3.57.*j.*pi.*f);
S=20.*log(H);
Y=M.*S;
y=ifft(Y);
plot(f,Y)
grid;
xlabel('Frequency')
title('输出信号的频谱图')
pause
plot(t,abs(y(1:length(t))));
grid;
xlabel('signal')
title('输出信号时域图') |
|