做定制网站怎么样,微信小程序开发者社区,成都本地做网站的,江苏大才建设集团网站一、什么是频谱#xff1f;
频谱的全称是频率谱密度。在对时域信号进行认识和研究的过程中非常不便#xff0c;那我们该如何更直观地认识信号#xff0c;更清楚地了解信号的特点呢#xff1f;
利用傅里叶变换将时域信号变换到频域。
我们知道#xff0c;在通信领域里傅…一、什么是频谱
频谱的全称是频率谱密度。在对时域信号进行认识和研究的过程中非常不便那我们该如何更直观地认识信号更清楚地了解信号的特点呢
利用傅里叶变换将时域信号变换到频域。
我们知道在通信领域里傅里叶变换是非常非常非常重要的。傅里叶级数很清楚地说明了不同频率分量的累加可以合成任何信号也就是说一个时域信号在频域是由不同频率的分量组合而成的。
二、那在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));结果如下
三、需要注意的事项
1、fft
其中第一行是对发送信号进行fft并除以信号总数为什么除以总数这是因为在matlab里的fft函数并没有除以傅里叶变换中的1/N,具体可以找傅里叶变换的原公式思考一下。
2、单边带
在matlab中利用fft得到的频域信号如果直接绘制频谱的话会得到双边谱而且前半段是正频率谱而后半段是负频率谱因此如果想画正确的双边谱则需要加一个fftshift函数将直流分量调整到频谱中间例如
% 对发送信号进行fft
F_TxSignal fftshift(fft(TxSignal./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。