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일

2 개 추천

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개)

카테고리

도움말 센터File Exchange에서 Fourier Analysis and Filtering에 대해 자세히 알아보기

태그

질문:

2022년 5월 7일

이동:

DGM
2024년 1월 8일

Community Treasure Hunt

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

Start Hunting!

Translated by