matlab 傅里叶变换
时间: 2023-09-01 21:10:55 浏览: 74
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(:))))
```
上述示例代码中,第一个示例演示了如何对一维信号进行傅里叶变换,并绘制频谱图。第二个示例演示了如何对二维信号进行傅里叶变换,并绘制频谱图。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)