用MATLAB写利用矩阵乘法计算傅里叶变换的函数,并画出频谱图
时间: 2024-09-26 17:04:59 浏览: 28
二维离散傅立叶变换性质验证等.rar
在MATLAB中,可以编写一个自定义函数来利用快速傅里叶变换(FFT)来计算信号的频域表示。以下是一个简单的示例,展示如何创建一个名为`fftSignal`的函数,接受一维实数数组作为输入,然后返回其对应的复数频谱:
```matlab
function [freqSpectrum, spectrum] = fftSignal(inputSignal)
% inputSignal: 输入的一维实数数组
n = length(inputSignal);
% 计算 FFT 并取绝对值得到幅谱
spectrum = abs(fft(inputSignal));
% 对结果进行归一化并转换到频率轴 (从0到Fs/2)
freqSpectrum = linspace(0, n/2, n/2+1)'; % Fs通常代表采样率
% 将负频率部分对称地填充到正频率部分
spectrum = [spectrum(1:end/2), spectrum(end:-1:2)];
end
% 示例使用:
signal = randn(1024); % 创建一个随机信号
[~, freqSpectrum] = fftSignal(signal);
plot(freqSpectrum, 'b') % 绘制频谱图
xlabel('Frequency')
ylabel('Magnitude')
title('Discrete Fourier Transform of the Signal')
grid on
阅读全文