fft/ifft作用示例
本文以802.11中的L-STF序列为例,说明fft/ifft运算产生的实际作用。
Matlab代码:
clear all; lstf= 1/sqrt(2)* [ 0,0,0,0,0,0, 0,0,1+1i,0, 0,0,-1-1i,0, 0,0,1+1i,0, 0,0,-1-1i,0, 0,0,-1-1i,0, 0,0,1+1i,0, 0,0,0,0, 0,0,-1-1i,0, 0,0,-1-1i,0, 0,0,1+1i,0, 0,0,1+1i,0, 0,0,1+1i,0, 0,0,1+1i,0, 0,0,0,0,0,0]; figure; plot(-10+0.3125:0.3125:10,abs(lstf)); xlable('Frequency-Mhz'); ylabel('Amplitude'); lstf_td=ifft(lstf); figure; plot(abs(lstf_td)); xlable('Samples'); ylabel('Amplitude'); lstf_td_repeat=cat(1,lstf_td,lstf_td,lstf_td,lstf_td); figure; plot(abs(lstf_td_repeat)); xlable('Samples'); ylabel('Amplitude'); lstf_fd_repeat=fft(lstf_td_repeat); figure; plot(-10+0.3125/4:0.3125/4:10,abs(lstf_fd_repeat)); xlable('Frequency-Mhz'); ylabel('Amplitude');
L-STF(短训练序列)和L-LTF(长训练序列)是IEEE 802.11协议中用于进行同步的序列。
首先根据协议定义这样一个长64的序列lstf,该序列与协议19-8中定义的序列相比,只是在头部补了6个0,在尾部补了5个0,总共64个点。
画出其频谱图后,对其进行IFFT运算转换到时域:
lstf_td=ifft(lstf);
得到lstf_td,lstf_td为16个元素一重复的长64的序列,即在实部和虚部上包含4个重复序列。
接下来我们把lstf_td重复四次,得到lstf_td_repeat,并画出时域波形;
最后我们对lstf_td_repeat进行fft运算转换到频域并画出频谱图;
从频谱图可以看出,时域数据的重复不会对频域分布产生任何影响。