matlab 傅里叶变换
时间: 2023-09-01 09:10:55 浏览: 92
matlab 实现图像傅里叶变换 程序源码.zip
5星 · 资源好评率100%
MATLAB 中的傅里叶变换函数是 `fft()`,它可以对一维或多维数组进行傅里叶变换。
一维傅里叶变换示例代码:
```matlab
% 定义信号
t = linspace(0, 2*pi, 1000);
x = 5*sin(2*pi*50*t) + 2*sin(2*pi*120*t);
% 计算傅里叶变换
y = fft(x);
% 取一半的幅值(因为对称性)
P2 = abs(y/length(x));
P1 = P2(1:length(x)/2+1);
P1(2:end-1) = 2*P1(2:end-1);
% 创建频率向量
f = linspace(0, 1, length(x)/2+1)*1000;
% 绘制频谱图
plot(f, P1)
xlabel('频率 (Hz)')
ylabel('幅值')
```
多维傅里叶变换示例代码:
```matlab
% 定义信号
[x, y] = meshgrid(-2:.2:2);
r = sqrt(x.^2 + y.^2) + eps;
z = sin(r)./r;
% 计算傅里叶变换
Z = fft2(z);
% 中心化
Z = fftshift(Z);
% 创建频率向量
Lx = length(x);
Ly = length(y);
kx = (-Lx/2:(Lx/2-1))*(2*pi/Lx);
ky = (-Ly/2:(Ly/2-1))*(2*pi/Ly);
[KX, KY] = meshgrid(kx, ky);
% 绘制频谱图
mesh(KX, KY, abs(Z)/max(abs(Z(:))))
```
上述示例代码中,第一个示例演示了如何对一维信号进行傅里叶变换,并绘制频谱图。第二个示例演示了如何对二维信号进行傅里叶变换,并绘制频谱图。
阅读全文