MATLAB语言,h=0.6.^[0:3]; x=ones(1.4); yFFT=ifft(X.*H,L) ;le=0:

问题描述:

MATLAB语言,h=0.6.^[0:3]; x=ones(1.4); yFFT=ifft(X.*H,L) ;le=0:1:length(x)-1; stem(le,x) ;
h=0.6.^[0:3]; x=ones(1.4); yFFT=ifft(X.*H,L) ;le=0:1:length(x)-1; stem(le,x) ;这些语句是什么意思,
1个回答 分类:数学 2014-12-15

问题解答:

我来补答
你的程序有多处错误.
(1)MATLAB区分大小写,所以前面用了小写的x和h,后面也要用小写的x和h
(2)“L”这个变量根本没定义,就直接用了,这样程序是不能运行的
(3)如果我没猜错的话,x=ones(1,4)中间应该是逗号,不是1.4
所以比较合理的程序应该是这样:
h=0.6.^[0:3];
x=ones(1,4);
yFFT=ifft(x.*h);
le=0:1:length(x)-1;
stem(le,x)
它的意思是:
第一句:
信道的频域响应有4点,分别是1,0.6,0.6^2,0.6^3
第二句:
输入信号x的频域特性是4点的序列,每个点都是1,就是x=[1 1 1 1]
第三句:信号通过信道,就是频域对应相乘,也就是x.*h,
然后做IFFT变换到时域,如果你原来有个参数L,就是要做L点的IFFT,如果没有,就默认跟点数不变,此处就是4点IFFT.所以yFFT这个变量就是信号通过信道之后的时域形状.
最后两句:
划入命令,画出x的图像 .(此处不是很理解,为什么求出了yFFT,不去画yFFT的图,反而画x的图?)
再问: le=0:1:length(x)-1这句具体是什么意思?我没太看明白。 我给出的不是完整的程序,而是其中几句我不太明白的,程序如下: L=7; x=ones(1,4); h=0.6.^[0:3]; X=fft(x,L); H=fft(h,L); yFFT=ifft(X.*H,L); subplot(2,2,1) le=0:1:length(x)-1; stem(le,x) title('x sequence') xlabel('n') ylabel('x(n)') 后面还有两个图的,我就不写了哈。
再答: 还是以完整的程序为例来说: L=7; L是FFT和IFFT的点数,这个应该是通信的基本知识,L越大,变换之后的精度就越细致,一句话:L是用来设定分辨率的 x=ones(1,4); x是输入信号的时域特性 h=0.6.^[0:3]; h是信道的时域特性 X=fft(x,L); X是对x做FFT,也就是输入信号的频域特性 H=fft(h,L); H是对h做FFT,也就是信道的频域特性 yFFT=ifft(X.*H,L); 信号通过信道,就是频域相乘,然后再做了L点的IFFT,又变回到时域。因此yFFT就是输出信号的时域特性 subplot(2,2,1) 画图,把figure的界面分成2*2的四小块,画在左上的第一小块 le=0:1:length(x)-1; le就是从0开始,间隔为1,取到“x的长度-1” 现在x的长度是4,所以length(x)就是4,所以le就是从0开始,间隔为1,向上取数,一直取到4-1=3。 最后le就是[0 1 2 3]。le在这里的作用只是一个图像的横轴,是一个标度而已。 stem(le,x) 以le为横轴,x为纵轴画图。 title('x sequence') 写上图形的标题“x sequence” xlabel('n') 标注横轴"n" ylabel('x(n)') 标注纵轴"x(n)"
再问: 实在是太感谢了!!呵呵,这回明白了。我们平时没怎么用过MATLAB,可是论文答辩其中一部分偏偏要用,不弄明白不行啊,谢谢啦。
 
 
展开全文阅读
剩余:2000