MATLAB中,信号的频谱图该怎么绘制?横坐标如何标注出频率值? 一、什么是频谱? 频谱的全称是频率谱密度。在对时域信号进行认识和研究的过程中非常不便,那我们该如何更直观地认识信号,更清楚地了解信号的特点呢? 利用傅里叶变换将时域信号变换到频域。 我们知道,在通信领域里傅里叶变换是非常非常非常重要的。傅里叶级数很清楚地说明了,不同频率分量的累加可以合成任何信号,也就是说一个时域信号,在频域是由不同频率的分量组合而成的。 二、那在matlab中如何绘制频谱呢? 如下代码所示(针对无载波幅度和相位调制信号(CAP 4)绘制的)。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 对发送信号进行fft F_TxSignal = fft(TxSignalhttps://zhuanlan.zhihu.com/p/length(TxSignal)); % 取单边带 FSingle_TxSignal = F_TxSignal(1:length(F_TxSignal)/2); % 符号持续时间 Tsamping = 1/(SamplingFrequency); % 总共的点数 SamplingNum = length(F_TxSignal); % 计算单边带的频率分辨率 for i = 1:length(FSingle_TxSignal) F_xlabel_1(i) = (i-1)/(SamplingNum_1*Tsamping ); end % 绘制单边带频谱 figure(2) plot(F_xlabel/1e6, 20*log10(abs(FSingle_TxSignal)),’r’);grid on; % xlim([0 500]);ylim([-140 -40]); xlabel(‘Frequency(MHz)’);ylabel(‘Power(dBm)’); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 结果如下:
三、需要注意的事项 1、fft 其中,第一行是对发送信号进行fft,并除以信号总数,为什么除以总数,这是因为在matlab里的fft函数并没有除以傅里叶变换中的1/N,具体可以找傅里叶变换的原公式思考一下。 2、单边带 在matlab中,利用fft得到的频域信号,如果直接绘制频谱的话,会得到双边谱,而且前半段是正频率谱而后半段是负频率谱,因此,如果想画正确的双边谱则需要加一个fftshift函数,将直流分量调整到频谱中间,例如: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 对发送信号进行fft F_TxSignal = fftshift(fft(TxSignalhttps://zhuanlan.zhihu.com/p/length(TxSignal))); % 符号持续时间 Tsamping = 1/(SamplingFrequency); % 总共的点数 SamplingNum = length(F_TxSignal); % 计算单边带的频率分辨率 for i = 1:length(F_TxSignal ) F_xlabel_1(i) = (i-1)/(SamplingNum_1*Tsamping ); end % 绘制单边带频谱 figure(2) plot(F_xlabel/1e6, 20*log10(abs(F_TxSignal )),’r’);grid on; % xlim([0 500]);ylim([-140 -40]); xlabel(‘Frequency(MHz)’);ylabel(‘Power(dBm)’); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 结果如下:
3、采样率 实际上matlab仿真中,会设定信号的波特率,因此,这个采样率在有些情况下用波特率(这里属于特定情况)。 4、绘制频谱 为什么在最后绘制频谱的时候用了20*log10(abs(F_TxSignal ))呢?因为要用对数坐标才能表示dB。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/40429.html