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运算转换到频域并画出频谱图;
从频谱图可以看出,时域数据的重复不会对频域分布产生任何影响。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!