matlab频域y轴怎么从负的开始到0
时间: 2024-04-24 11:26:18 浏览: 88
要在Matlab中将频域的y轴从负值开始到0,你可以使用`fftshift`函数。
`fftshift`函数可以将频率信号的零频分量移动到频谱的中心,从而使负频率部分位于左侧,正频率部分位于右侧。
以下是一个示例代码:
```matlab
N = 1024; % 采样点数
fs = 1000; % 采样率
% 生成时间序列
t = linspace(0, (N-1)/fs, N);
% 生成信号
x = sin(2*pi*50*t) + sin(2*pi*120*t);
% 进行傅里叶变换
X = fft(x);
% 计算频率坐标
frequencies = linspace(-fs/2, fs/2, N);
% 对频域信号进行fftshift
X_shifted = fftshift(X);
frequencies_shifted = fftshift(frequencies);
% 绘制频谱
plot(frequencies_shifted, abs(X_shifted));
title('Frequency Domain');
xlabel('Frequency (Hz)');
ylabel('Amplitude');
% 在图中显示0 Hz的位置
hold on;
line([0 0], [0 max(abs(X_shifted))]);
% 显示网格线
grid on;
```
在这段代码中,我们将原始频谱信号使用`fftshift`函数进行移动,然后使用移动后的频率坐标进行绘制。这样,频域的y轴将从负值开始到0。
希望这个解答对你有所帮助!如果还有其他问题,请随时提问。
阅读全文