matlab单边频谱
时间: 2023-07-03 18:06:39 浏览: 237
MATLAB频谱图
单边频谱是指只显示频率为正的频谱,因为对于实数信号而言,频谱是对称的,所以只需要显示一半即可。
在 MATLAB 中,可以使用 fft 函数计算双边频谱,然后使用 abs 函数取绝对值,再将结果平方得到功率谱。接下来,使用 fftshift 函数将零频分量移到频谱中心,并将频谱沿中心对称。最后,使用一半的数据来绘制单边频谱。
以下是一个简单的示例代码:
```matlab
% 生成测试信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
x = cos(2*pi*50*t) + sin(2*pi*150*t);
% 计算双边频谱
N = length(x); % 信号长度
X = fft(x)/N; % FFT
f = (0:N-1)*(fs/N); % 频率向量
% 取绝对值,平方得到功率谱
psd = abs(X).^2;
% 移动零频到频谱中心
psd_shifted = fftshift(psd);
% 绘制单边频谱
f_single = f(1:N/2+1); % 取一半频率
psd_single = 2*psd_shifted(1:N/2+1)/fs; % 取一半功率谱并除以采样率
plot(f_single, psd_single);
xlabel('Frequency (Hz)');
ylabel('Power/Frequency (dB/Hz)');
```
其中,最后一行代码绘制出单边频谱,单位为 dB/Hz。
阅读全文