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