Matlab-funkce FFT decimace ve frekvenci 2 RADIX

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

 
Pan snaží vyhnout smyčkám a zkuste pomocí vektorových operací, jako. /, .*,. ^ Atd.

 

Welcome to EDABoard.com

Sponsor

Back
Top