手把手实战 MATLAB 通信系统仿真 04 📅 2026/8/17 17:27:22 第 4 章 FFT 与频谱从时域看到频域本章目标掌握 FFT 频率轴的标准写法彻底解决横轴坐标写错、频谱左右颠倒、正负频率不匹配等经典问题理解实信号与复基带信号的频谱差异区分零填充平滑效果与真实频率分辨率建立标准频谱绘图检查思维。4.1 三个必须同步出现的量Fs、Nfft、频率轴在 MATLAB 通信仿真中FFT 几乎不会写错但 80% 的人频率横轴写错。频率分辨率频率间隔由采样率和 FFT 点数唯一决定这是 FFT 最核心公式横轴所有刻度都必须基于该步长生成。对偶数 Nfft使用fftshift居中频谱后标准双边频率轴写法为该公式完美匹配 fftshift 后的频谱顺序范围为。关键细节高频易错负频率包含正频率不包含该写法仅适配偶数 Nfft奇数 FFT 长度需要更换区间频率轴必须转为列向量避免维度不匹配报错代码标准双边幅度谱模板【基础 MATLAB】Fs 48000; T 0.05; t (0:1/Fs:T-1/Fs).; % 双频叠加信号3kHz 7kHz x cos(2*pi*3000*t) 0.5*cos(2*pi*7000*t); N length(x); Nfft 2^nextpow2(N); % 取2的幂次提升FFT效率 X fftshift(fft(x,Nfft)); % 频谱居中 f (-Nfft/2:Nfft/2-1).*(Fs/Nfft); % 标准双边频率轴 A abs(X)/N; % 归一化幅度 figure; plot(f/1e3,A); grid on; xlabel(Frequency / kHz); ylabel(Relative magnitude); xlim([-12 12]); title(双边频谱fftshift 居中);运行后应观察应在 ±3 kHz 与 ±7 kHz 附近看到谱线。4.2 为什么复基带频谱可以不对称很多新手会有误区认为频谱必须左右对称。实际上实信号正弦、余弦、实数波形频谱严格共轭对称正负频率幅度一致复基带信号IQ 信号、频谱完全可以不对称软件无线电、通信调制解调全部基于复基带建模。例如单频复指数信号只会在正频率出现谱线负频率几乎无分量。看到复基带频谱不对称不是代码 Bug是正常物理特性。4.3 零填充与真实分辨率很多人混淆两个概念视觉平滑和真实分辨能力。1.真实频率分辨率由观测时长决定想要分辨两个靠得很近的频率只能加长信号时间 T。2.增大 Nfft零填充的作用仅增加频谱的采样点数、让曲线更光滑不会提升真实分辨率、不会增加信息。通俗总结加长 T真的看得更细加大 Nfft只是图片变高清频谱绘图标准检查清单写代码必看每次画频谱依次自查 5 条采样率 Fs 是否与信号严格对应FFT 长度 Nfft 是多少是否做了零填充是否使用 fftshift频率轴是否与之匹配横轴是真实 Hz 还是归一化频率必须带物理单位绘制的是幅度谱、功率谱还是功率谱密度归一化是否正确本章小结FFT 频谱出错 90% 是横轴不匹配必须保证Fs、Nfft、频率轴、fftshift四者同步。实信号频谱对称复基带 IQ 频谱可不对称属于正常现象。零填充只能平滑图像不能提升频率分辨率提升分辨率唯一方法是加长观测时间。所有频谱图必须使用物理频率轴禁止使用样本索引作为横轴。动手练习1. 将 7 kHz 分量改为 3.2 kHz缩短信号时长观察两个近频点是否难以分辨体会真实分辨率限制。2. 将信号时长 T 从 0.05 s 改为 0.5 s对比频谱主瓣宽度观察分辨率提升效果。3. 生成复指数信号exp(1j*2*pi*5e3*t)观察频谱为何只存在 5kHz 单侧边带理解复基带频谱不对称原理。