0
收藏
微博
微信
复制链接

MATLAB高级技巧:如何绘制信号的频谱图?

2022-04-09 15:41
9301

MATLAB是电子工程师的基础技能之一,学习MATLAB也有利于为就业转职增加筹码。今天将分享关于MATLAB的高级机器啊,如何在MATLAB中绘制信号的频谱图?横坐标如何标注出频率值?绘制过程中需要注意什么?

学习Cadence Sigrity,一步到位!

Cadence Sigrity高速仿真入门套餐

Cadence Sigrity高速仿真进阶套餐

Cadence Sigrity高速仿真高阶套餐

1、什么是频谱?绘制的思路是什么?

频谱是指频率谱密度,思路是傅里叶变换。傅里叶级数明确地说明了,不同频率分量的累加可以合成任何信号,也就是说一个时域信号,在频域是由不同频率的分量组合而成的。

2、如何在MATLAB中绘制信号的频谱图?

代码如下:(注:针对无载波幅度和相位调制信号CAP 4绘制)

//对发送信号进行fft

F_TxSignal = fft(TxSignal./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)');

结果如下:

cd49795a9901b85ec964c25b46da58.png

3、绘制过程中需要注意什么?

①fft

在以上的代码中,第一行是对发送信号进行fft,并除以信号总数,原因是在matlab里的fft函数没有除以傅里叶变换中的1/N。

②单边带

在MATLAB中,利用FFT函数得到的频域信号,若是直接绘制频谱,将得到双边谱(前半段是正频率谱,后半段是负频率谱)。若是想得到正确的双边谱,需加fftshift函数,将直流分量调整到频谱中间。

第一行代码更换成F_TxSignal = fftshift(fft(TxSignal./length(TxSignal)));

③采样率

在MATLAB仿真中,特定情况下会设定信号的波特率(这种属于特定情况)

④绘制频谱

绘制频谱时采用“20*log10(abs(F_TxSignal ))”,原因是要用对数坐标表示dB。

以上是MATLAB仿真的高级技巧。

欲了解更多的通信知识,可关注凡亿课堂

登录后查看更多
0
评论 0
收藏
侵权举报
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。

热门评论0

相关文章

开班信息