matlab傅里叶幅值谱
时间: 2023-11-08 18:05:25 浏览: 209
fft.rar_傅里叶幅值_傅里叶幅值谱_幅值谱_快速傅里叶 谱_离散 Matlab fft
Matlab中傅里叶变换可以通过fft函数实现,其中可以得到信号的幅度谱和相位谱。幅度谱表示信号在不同频率下的振幅大小,而相位谱则表示信号在不同频率下的相位差。在计算幅度谱时,需要将fft结果除以傅里叶变换点数N,并取绝对值,然后再除以2,得到的结果即为信号的幅度谱。在计算相位谱时,需要将fft结果取角度,并将结果转换为角度制。以下是一个示例代码:
```matlab
% 生成信号
fs = 1000; % 采样率
t = 0:1/fs:1-1/fs; % 时间向量
f1 = 50; % 信号频率
f2 = 120; % 信号频率
x = 0.7*sin(2*pi*f1*t) + sin(2*pi*f2*t);
% 计算傅里叶变换
N = length(x); % 信号长度
sFFT = fft(x); % 傅里叶变换结果
% 计算幅度谱和相位谱
magnitude = abs(sFFT) ./ N / 2; % 幅度谱
phase = angle(sFFT) * 180 / pi; % 相位谱(角度制)
% 绘制幅度谱和相位谱
f = (0:N-1)*(fs/N); % 频率向量
subplot(2,1,1);
plot(f,magnitude);
xlabel('Frequency (Hz)');
ylabel('Magnitude');
title('Amplitude Spectrum');
subplot(2,1,2);
plot(f,phase);
xlabel('Frequency (Hz)');
ylabel('Phase (degrees)');
title('Phase Spectrum');
```
阅读全文