给我用matlab实现fft的代码
时间: 2023-09-16 12:14:56 浏览: 103
以下是用 Matlab 实现 FFT 的代码:
```matlab
function [X] = myfft(x)
% MYFFT calculates the discrete Fourier transform using the FFT algorithm
% Input:
% x: a vector of length N
% Output:
% X: a vector of length N, which is the DFT of x
N = length(x);
if N == 1
X = x;
else
xe = myfft(x(1:2:end)); % FFT of even-indexed elements
xo = myfft(x(2:2:end)); % FFT of odd-indexed elements
W = exp(-2*pi*1i/N).^(0:N/2-1); % Twiddle factors
X = [xe + W.*xo, xe - W.*xo]; % Combine the results
end
end
```
使用方法:
1. 将上述代码保存至一个 `.m` 文件中,例如 `myfft.m`。
2. 在 Matlab 中调用该函数,例如 `x = [1, 2, 3, 4]; X = myfft(x);`,其中 `x` 为原始信号,`X` 为其 DFT。
阅读全文