C
claudiocamera
Guest
Nazdar,
Snažím se rozvíjet funkce v Matlabu pro výpočet FFT pomocí DIF RADIX 2.Aby bylo možné testovat to, nejprve jsem pracovat s signál s délkou = 8 x = [0 1 2 3 4 5 6 7].Bohužel to není vrací správný výsledek, I cant najít to, co je špatného na algoritmu.
Pokud někdo uvědomit, co je špatného na níže uvedený kód, dejte mi prosím vědět.
Thxs
% X = Imput údajů
x = [0 1 2 3 4 5 6 7];
% Délka imput údajů
N = length (x);x, x% pufr
% Twidle faktor
WN = exp (-j * 2 * pi / N);
% FFT rutinníPasso = N / 2;
pro Ni = 1: est
h = 2 ^ (Ni-1);
v = N / h;
pro m = 0: v: N-1
pro 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);
konec
konecpasso passo = / 2;
x = xnew;konec% Reverzní trochu rutina
XBR = zeros (1, N);
prosinec = [0: N-1];
bin = DEC2BIN (prosinec);
dEC1 = BIN2DEC (fliplr (bin)) ';
dEC1 = dEC1 ty (1, N);
pro i = 1: N;
XBR (i) = x (dEC1 (i));
konec
Snažím se rozvíjet funkce v Matlabu pro výpočet FFT pomocí DIF RADIX 2.Aby bylo možné testovat to, nejprve jsem pracovat s signál s délkou = 8 x = [0 1 2 3 4 5 6 7].Bohužel to není vrací správný výsledek, I cant najít to, co je špatného na algoritmu.
Pokud někdo uvědomit, co je špatného na níže uvedený kód, dejte mi prosím vědět.
Thxs
% X = Imput údajů
x = [0 1 2 3 4 5 6 7];
% Délka imput údajů
N = length (x);x, x% pufr
% Twidle faktor
WN = exp (-j * 2 * pi / N);
% FFT rutinníPasso = N / 2;
pro Ni = 1: est
h = 2 ^ (Ni-1);
v = N / h;
pro m = 0: v: N-1
pro 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);
konec
konecpasso passo = / 2;
x = xnew;konec% Reverzní trochu rutina
XBR = zeros (1, N);
prosinec = [0: N-1];
bin = DEC2BIN (prosinec);
dEC1 = BIN2DEC (fliplr (bin)) ';
dEC1 = dEC1 ty (1, N);
pro i = 1: N;
XBR (i) = x (dEC1 (i));
konec