Algoritmus I-DFT pre delphi
Marek Peca
marek@tynska.cuni.cz
Pondělí Květen 30 12:21:29 CEST 2005
> myslim ze to bolo napisane dost jasne, inverzna diskretna fourierova
> transformacia. Keby som chcel 2^n tak napisem FFT a keby som chcel
> konkretny pocet bodov tak to tiez napisem :-) V tomto pripade je to
> uplne vseobecne :-)
FFT taky existuje pro libovolny pocet bodu (ovsem pro prvociselny se
uz nerozpada na rekurze, pokud si to dobre pamatuju).
> Ono to zase nie je az tak jednoduche (2 for cykly)
Proc by nebylo? Je:
(v matlabu i s overenim, napsano za 7 minut)
N=length(x);
s=[];
for k=1:N,
s(k)=0;
for t=1:N,
s(k)=s(k)+exp(j*(k-1)*2*pi*(t-1)/N)*x(t);
end
s(k)=s(k)/N;
end
Takze v Delfach, jak by to mohlo bejt...? Pozuivas nejakou komplexni
tridu? Kdyby ne, tak asi
{ vstup x_re,x_im[0..N-1] }
for k := 0 to N-1 do
begin
y_re[k] := 0.0; y_im[k] := 0.0;
for t := 0 to N-1 do
begin
u := k*2*pi*t/N;
y_re[k] := y_re[k] + cos(u)*x_re[t] - sin(u)*x_im[t];
x_re[k] := y_re[k] + cos(u)*x_im[t] + sin(u)*y_re[t];
end
end
{ vystup v y_re,y_im[k], k=0..N-1, priemz zaporne frekvence lezi
v horni pulce pole (zkratka vraci to stejne jako matlabovska ifft }
ZdraviM.P.
> >libovolnou DFT? 2 for-cykly s nasobenim sinem a cosinem snad
> >zvladnes, ne?? :-DDD
Další informace o konferenci Hw-list