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 @   DF11G  阅读(100)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
点击右上角即可分享
微信分享提示