Chyba odbiegliście nieco od tematu postawionego na początku... Koledze chodzi po prostu o to jak zrobic FFT z pewnego wektora złożonego z danej ilości próbek. Mnie się wydaje,że Matlab bedzie do tego najprostszy w użyciu. Ma wbudowaną funkcję FFT więc nie trzeba za bardzo wnikac w to jak ona działa.
Zamieszczam przykładowy kod analizy sygnalu złożonego z dwóch sinusoid,który kiedyś pisałem:
clear; %wyczyśc pamięc zmiennych
%analiza fouriera (DFT) sygnalu zlozonego z dwoch sinusoid
%sprobkowanego z czest.8 kHz
n=0:19; %numery probek sygnalu wejsciowego
N=size(n); %ilosc probek sygnalu wejsciowego
Nn=N(1,2); %wymiar macierzy n
fs=20000; %czestotliwosc probkowania
%wartosci przykladowego sygnalu w punktach n (suma dwoch sinusoid)
x=1+sin(2*pi*1000*n/fs)+0.5*sin(2*pi*2000*n/fs+(3*pi/4));
X=zeros(N); %stworz macierz zerową
for m=0:(Nn-1),
for k=0:(Nn-1),
X(m+1)=X(m+1)+(x(k+1)*(cos(2*pi*k*m/Nn)-i*sin(2*pi*k*m/Nn)));
end;
end;
w=abs(X);
%I=n(1):n( 8 ) ;
%J=w(1):w( 8 ) ;
subplot(2,1,1 ) ;
stem(n,w/20,'m.') ;
title('metoda krokowa') ;
subplot(2,1,2) ;
stem(n,abs(fft(x))/20,'k.') ;
title('za pomoca funkcji FFT Matlaba');
Funkcja "stem" służy do rysowania na wykresie wartości dyskretnych,"Abs" to wartośc bezwzględna,"fft" to FFT,"subplot" to rysowanie na podwykresie okna złożonego z kilku wykresów. Poczytaj trochę o Matlabie,to bardzo prosty kod. Po prostu musisz go sobie przerobic. Jakbyś bardzo chciał zrozumiec FFT to jest cały post na ten temat:
https://www.elektroda.pl/rtvforum/topic14925.html
w tym na tej stronie m.in. mój,w którym też sporo opisałem:
https://www.elektroda.pl/rtvforum/topic14925-150.html
