Matlab tiesos

A

Aya2002

Guest
Sveiki ekspertai, I have a quistion čia, prašome perskaityti šį paragragh nes pdf dokumentą internete:

Furjė transformacija gali būti apskaičiuota naudojant Matlab kodas
Fk = FFT (Fn) / N;% The FFT ir signalo FN
FN = ifft (FK) * N;% atvirkštinę FFT
ifft (FFT (FN));% Šis rezultatas = Fn (per mašinos tikslumo)

Mes turime atskirtį skaičius tinklelio taškų Š jei norime naudoti rezultatus, FFT, nes Matlab kelia normalizavimas tik atvirkštinę transformaciją.Todėl mes turime tada padauginkite IFFT N kovoti Matlab's dalijant N.

Mano abejonės, yra: tai yra teisinga?

Thank you in advance.Po 3 valandas:jokio atsakymo, prašome

 
Max Aya2002,
Aš wrtie kodą
ir tada aš sudaryti.

Testuota nenaudojant normalizavimo veiksnys (1 / N):

time_signal = [1 2 3 4 3 2];
FFT_time_signal = FFT (time_signal);
INVERSE_FFT_time_signal = ifft (FFT_time_signal);

o / Pi gavo:
FFT_time_signal = 15 -4 0 -1 0 -4
INVERSE_FFT_time_signal = 1 2 3 4 3 2Testuota naudojant normalizavimo veiksnys (1 / N):

time_signal = [1 2 3 4 3 2];
FFT_time_signal = FFT (time_signal). / Ilgis (time_signal);
INVERSE_FFT_time_signal = ifft (FFT_time_signal) .* ilgis (time_signal);

FFT_time_signal = 2,5000 -0,6667 0
-0,1667 0
-0,6667INVERSE_FFT_time_signal = 1,0000 2,0000 3,0000 4,0000 3,0000
2,0000

išvada:
Pagal formulę DfT nenaudoja normalizavimą.
Vietoj IDFT naudoja normalizavimo veiksnys (1 / N) į formulę.
Todėl MATLAB funkcija "FFT" taip pat veikia kaip vienam formulė nėra n't naudoti normalizavimo veiksnys (1 / N) & "ifft" taip pat veikia kaip už formulę naudoja normalizavimo veiksnys (1 / N).net be mastelio mes galime gauti tą patį o / p.
kas yra ADV naudoti mastelio veiksnys FFT ir ifft?
Manau, galima galvoti ir gauti atsakymą, kad.

Tikiuosi, kad rasite tai greičiau ......

malonu mokytis.

 
Mano draugui,

mano experement žemiau:

x = iš jų (1,5)

x =

1 1 1 1 1

>> S = FFT (x)

s =

5 0 0 0 0

> Ifft (ai)

ans =

1 1 1 1 1

kaip nurodyta pirmiau, Matlab padarė pilną perskaičiavimo ir atgalinės konversijos be reikia padaryti bet normalizavimas, aš turiu galvoje, kad man nereikia bet normalizavimas, o Pdf byla pasakė, kad mes turime naudoti normalizavimas., Iš kurių i išvadą, kad šis dokumentas, yra neteisingas.

Dabar jūsų quiation "kas yra ADV naudoti mastelio veiksnys FFT ir ifft ???", rasite mano answere žemiau;

kai yra signalas per MATLAB, mes paprastai naudojamas dviejų vektorių vieną x-duomenų ir vienas y duomenis.Į FFT komanda veikia tik ant y duomenis (konvertuojant y duomenis iš laiko domeno dažnių srityje).Taigi iki naudotojui nustatyti, kas x duomenų dažnių srityje bus!

Dabar mums imtis pavyzdys:

y (t) = 2cos (2 Π t)
-------------------------

už = 4;
Fs = 100;
Ts = 1/Fs;
t = 0: Tr :1-T;
n = trukmė (t);
y = 2 * sin (2 * pi * ir * t);
plot (t, y);<img src="http://images.elektroda.net/9_1236975577_thumb.jpg" border="0" alt=""/> kai mes imtis FFT šios kreivės, būtų idealu tikėtis gauti šią spektro dažnių sričiai, mes tikimės, kad viena viršūnių amplitudės 1 -4 Hz, ir kitos viršūnių amplitudės 1
4 Hz.Taigi, leiskite mums naudoti MATLAB integruoto funkcijos FFT, kad pamatyti rezultatus.

yfr = FFT (y);
foršteveniu (abs (yfr));
<img src="http://images.elektroda.net/18_1236975954_thumb.jpg" border="0" alt=""/> iš paveikslėlyje, jis ne visai atrodo ką numatė aukščiau.Jei mes pranešimas yra acouple daiktų, kurie nėra:
1.X ašis suteikia mums jokios informacijos apie dažnumu.Kaip mes galime pasakyti, kad vynai, reikiamoje vietoje?

2.Amplitudė yra visas kelias iki 100.

3.Spektras nėra wyśrodkowany maždaug lygi nuliui.

Norint išspręsti šias problemas, mes turime normalizuoti duomenis ir naudoti MATLAB funkcija FFTshift po funkcija FFT taip;

funkcija [X freq] = centeredFFT (x, Fs)

N = trukmė (x);
jei mod (N, 2) == 0
k =- N / 2: N/2-1;
kitas
k =- (N / 2) / 2: (N-1) / 2;
pabaiga
T = N / Fs;
freq = k / T;% dažnumas ašį.
X = FFT (x) / N;% Normalize duomenis.
X = fftshift (X);% perkelti FFT duomenis taip, kad ji yra wyśrodkowana.o / p pirmiau minėtų funkcija bus teisingas dažnių diapazone ir transformuoti signalą.

Galime naudoti šią funkciją, pavyzdžiui:

[yfDom, frange] = centeredFFt (y, Fs);
foršteveniu (frange, abs (yfDom));<img src="http://images.elektroda.net/100_1236977177_thumb.jpg" border="0" alt=""/> kaip matome iš sklypo aukščiau, informacijos, kaip dažnių spektras yra visiškai simetriškos.

Hope this aišku.

Montadar

 
apsilankykite šioje svetainėje.

Paprastai, kai mes FFT (x),
gausime milžinišką ampitude.mes Padalos padalijus N ir apskaičiuojant atvirkštinė FFT mes darys Padalos.jei mes, tai mums negali atitikti parsevals teoriją, kuri teigia, vieningumo tarp FFT & IFFT.
Be to, priežastis, kodėl mes masto FFT esmės?

visa tai atsakymas buvo aptariami žemiau paminėtų svetainę

lt
žr. diskusijų (tarp Matt ir ramya)
http://www.mathworks.fr/matlabcentral/newsreader/view_thread/174066

taip pat daugiausia šią svetainę:
http://www.mathworks.fr/matlabcentral/newsreader/view_thread/246628

Žr galiausiai mes gavome atsakymą.Happy mokymosi

 
Didelis ačiū draugui ir tikiuosi matyti tave vėl gera sveikata po operacijos

Sėkmės ir G * D Jums sutaupyti

 

Welcome to EDABoard.com

Sponsor

Back
Top