Matlab-funkcija za FFT desetkovanje u Frekvencija RADIX 2

C

claudiocamera

Guest
Bok,

Ja sam težak to razviti u Matlab funkciju za izračunavanje pomoću FFT DIF RADIX 2.Da bi se test, prvo sam raditi sa signalom sa dužina = 8 x = [0 1 2 3 4 5 6 7].Nažalost, to se ne vraća točan rezultat, ja licemjerje nađi ono što nije u redu sa algoritmom.

Ako netko realizirati ono što je loše u kod ispod, molimo vas javite mi.

Thxs
% X = Imput podataka

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

% Dužina imput podataka
N = length (x);x;% Buffer x

% Twidle faktor

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

% FFT potprogramPasso = N / 2;

Ni za = 1: est

h = 2 ^ (Ni-1);
V = N / h;

za m = 0: v: N-1

za 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);
kraj

krajPasso = Passo / 2;

x = xnew;kraj% Bit reverse potprogram

XBR = zeros (1, N);

prosinac = [0: N-1];

bin = dec2bin (DEC);

dec1 = BIN2OCT (fliplr (kanta)) ';
dec1 = dec1 one (1, N);

za i = 1: N;
XBR (i) = x (dec1 (i));
kraj

 
G., nastojte izbjegavati petlje i probati pomoću vektorske operacije kao što su. /, .*,. ^ Itd.

 

Welcome to EDABoard.com

Sponsor

Back
Top