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运算转换到频域并画出频谱图;

从频谱图可以看出,时域数据的重复不会对频域分布产生任何影响。

 

posted @ 2024-01-22 19:14  DF11G  阅读(84)  评论(0编辑  收藏  举报