FFT WITHOUT Built-in functions

13 ビュー (過去 30 日間)
Camille Pham
Camille Pham 2022 年 5 月 7 日
移動済み: DGM 2024 年 1 月 8 日
How do I write the matlab code for fourier transform without the built-in function (fft). NOT DFT! Decimation in time radix-2fft please!

採用された回答

Dyuman Joshi
Dyuman Joshi 2022 年 5 月 7 日
編集済み: Dyuman Joshi 2022 年 5 月 7 日
Using the definition given at the end of FFT document
%x is your input
x=[1 2 3 4];
fft(x) %using for comparison
ans =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 + 0.0000i -2.0000 - 2.0000i
Method 1
%loop approach
for j=1:numel(x)
y(j)=sum(arrayfun(@(z) x(z)*exp(-i*2*pi*(j-1)*(z-1)/numel(x)),1:numel(x)));
end
y
y =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 0.0000i -2.0000 - 2.0000i
Method 2
%vector approach
l=length(x);
z = x*exp(-2j*pi/l*(0:l-1).'*(0:l-1))
z =
10.0000 + 0.0000i -2.0000 + 2.0000i -2.0000 - 0.0000i -2.0000 - 2.0000i
  2 件のコメント
Camille Pham
Camille Pham 2022 年 5 月 7 日
移動済み: DGM 2024 年 1 月 8 日
Without the fft built in function.
Dyuman Joshi
Dyuman Joshi 2022 年 5 月 7 日
@Camille Pham, y and z are obtained without using fft(), I just used fft() to show the comparison.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeFourier Analysis and Filtering についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by