Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako používať FFT v MATLAB

rýchla Fourierova transformácia ( FFT ) je technika často používa pri spracovaní signálov . Fourierova transformácia sa blíži každé nepretržité funkciu ako súčet periodických funkcií ( Sines a Košina ) . FFT robí to isté pre diskrétne signály - séria dátových bodov , skôr než neustále definované funkcie . FFT umožňuje identifikovať pravidelné súčasti v diskrétnom signálu . Možno budete musieť určiť periodický signál pochovaný v šumu , alebo analyzovať signál s niekoľkými pravidelných základných zdrojov . MATLAB obsahuje vstavaný vykonávanie FFT , ktoré vám pomôžu urobiť . Veci , ktoré budete potrebovať
MATLAB vektora , ktorý obsahuje diskrétne dátový signál
Zobraziť ďalšie inštrukcie
vykonajte FFT
1

Vypočítajte dĺžku ( počet prvkov ) vektora obsahujúce dáta . Napríklad , ak vaše dáta sú uložené vo vektore s názvom " d , " typ " L = dĺžka ( d ) " v MATLAB príkazového riadku bez úvodzoviek . L bude teraz obsahovať množstvo prvkov d
2

Vypočítajte silu 2 , ktorá je väčšia ako alebo rovná L, zadaním . " P = nextpow2 ( L ) , " na príkaz MATLAB linka bez úvodzoviek . . Ak L = 1000 , napríklad , s bude 10 , pretože 2 ^ 10 = 1024
3

vykonajte FFT zadaním " Y = FFT ( d , 2 ^ p ) ; " v MATLAB príkazového riadku bez úvodzoviek . Tento príkaz pripojí nuly až d získať vektor o dĺžke 2 ^ p a potom vykoná FFT na 2 ^ p - prvkov vektora . Priložené nuly nemajú vplyv na výsledok FFT , ale FFT beží rýchlejšie s vektorom , ktorého je sila 2

Výsledný vektor Y udáva koeficienty sínusu a kosínusu funkcií na frekvenciách v rozmedzí od dĺžky - . ( 2 ^ p /2 ) ) na 1 + ( 2 ^ p /2 ) ( za predpokladu , že d bola odobratá vzorka na 1 vzorku za sekundu , alebo 1 Hz ) . Jedná sa o sínus a kosínus funkcie , ktoré pridávajú do pôvodného signálu d Y je zložitá , jej reálne časti sú koeficienty sine funkcie , a jeho imaginárne časti sú koeficienty funkcie cosine
4

Uchovávajte iba jedinečné časti Y zadaním " Y = Y. ( 1 : ( ( 2 ^ p +1 ) /2 ) ) ; " bez úvodzoviek na MATLAB príkazového riadku . To je nutné , pretože výstup FFT je symetrická - to znamená , že druhá polovica Y je proste komplex konjugát z prvej polovice . Teraz , Y dáva koeficienty sínusu a kosínusu funkcií pri frekvenciách 0-1 + ( 2 ^ p /2 ) ) .
5

Rozdeľte Y L /2 zadaním " Y = Y. /( L /2 ) , " v MATLAB príkazového riadku bez úvodzoviek . To je nutné preto , že východiskové FFT výstup MATLAB je násobená koeficientom L /2 , tak , že bude väčšia , ak je d , je dlhšia . Rozdelenie L /2 normalizuje výstup FFT tak , že nezávisí na dĺžke d .
Výsledky Plot FFT
6

ak d nebol odobratá vzorka na 1 Hz ale v určitom kmitočte f " , " skutočné frekvencie zastúpené v Y bude od 0 do f * ( 1 + ( 2 ^ p /2 ) ) ) . Vypočítať MATLAB vektor obsahujúci tieto frekvencie . Po prvé , definovať aktuálne vzorkovacej frekvencii v premennej f Ak je vaša skutočná vzorkovacia frekvencia je 0,5 Hz ( 1 vzorku každé 2 sekundy ) , zadajte " f = 0,5 ; " v MATLAB príkazového riadku bez úvodzoviek . Ďalší typ " FREQ = f * ( 0 : ( 1 + ( 2 ^ p /2 ) ) ) ) . " V MATLAB príkazového riadku bez úvodzoviek . Teraz frekvencia obsahuje aktuálne frekvencie zastúpené v Y.
7

Získajte amplitúdu zložky signálu na každej frekvencii zadaním " Ya = abs ( Y ) " . v MATLAB príkazového riadku bez úvodzoviek .
8

Plot amplitúdy spektra signálu zadaním " plot ( frekvencia , Ya ) " v MATLAB príkazového riadku bez úvodzoviek .

9

Získajte silu zložky signálu na každej frekvencii zadaním " yp = Y. ^ 2 " v MATLAB príkazového riadku bez úvodzoviek .
10

Plot napájací spektrum signál zadaním " plot ( frekvencia , YP ) , " v MATLAB príkazového riadku bez úvodzoviek .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené