Matlab-Function FFT a decimazione in frequenza RADIX 2

C

claudiocamera

Guest
Salve,

Sto cercando di sviluppare una funzione in Matlab per calcolare FFT con DIF RADIX 2.Al fine di testarlo, da un lato sto lavorando con un segnale di lunghezza = 8 x = [0 1 2 3 4 5 6 7].Unfortunatelly non restituisce il risultato corretto, I cant trovare ciò che è sbagliato con l'algoritmo.

Se qualcuno realizzare ciò che è sbagliato il codice qui sotto, fatemelo sapere.

Thxs
X% = dati Imput

x = [0 1 2 3 4 5 6 7];

Lunghezza% dei dati di imput
N = length (x);x; buffer% x

Fattore Twidle%

WN = exp (-j * 2 * pi / N);

Routine% FFTPasso = N / 2;

per Ni = 1: est

h = 2 ^ (NI-1);
v = N / h;

per m = 0: V: N-1

per z = 1: Passo
xnew (z m) = x (z m) x (z Passo m);
xnew (z Passo m) = x (z m)-x (z Passo m) * WN ^ ((z-1) * h);
fine

finePasso Passo = / 2;

x = xnew;fineBit% inversa routine

zeri = xbr (1, N);

Dicembre = [0: N-1];

bin = DEC2BIN (dicembre);

DEC1 = BIN2DEC (fliplr (bin)) ';
DEC1 = DEC1 ones (1, N);

per i = 1: N;
XBR (i) = x (DEC1 (i));
fine

 
Mr. cercare di evitare i loop e provare a utilizzare le operazioni vettoriali come. /, .*,. ^ Etc

 

Welcome to EDABoard.com

Sponsor

Back
Top