Co dělá FFT v MATLABu?

Co Dela Fft V Matlabu



The Rychlá Fourierova transformace (FFT) odkazuje na vysoce optimalizovanou verzi Diskrétní Fourierova transformace (DFT) který transformuje diskrétní signály přes časovou doménu do frekvenční oblasti. Frekvenční obsah, fázi a další aspekty signálu lze sledovat prostřednictvím FFT výpočty.

Tento článek nás naučí o fungování FFT v MATLABu.

Porozumění FFT

The Rychlá Fourierova transformace (FFT) představuje speciální techniku, která nám pomáhá porozumět signálům jinak. Normálně jsou signály zobrazeny jako sekvence čísel, která se v čase mění, ale s FFT, můžeme vidět, jaké různé frekvence jsou v signálu přítomny a jak jsou silné. Je to jako rozložit signál do jeho not a vidět, jak hlasitá je každá nota.







The FFT Algoritmus dělá s daty signálu spoustu složitých výpočtů. Vezme signál a rozdělí ho na menší části, poté vypočítá frekvence a jejich sílu pro každou část. Nakonec kombinuje všechny výsledky, aby nám poskytl obrázek o frekvenčním obsahu signálu, fázových vztazích a dalších důležitých charakteristikách.



Tato technika se používá v mnoha oblastech, protože nám pomáhá lépe analyzovat a porozumět signálům. Například v zpracování signálu , můžeme použít FFT k odfiltrování nežádoucího šumu nebo detekci specifických vzorů. v audio analýza , můžeme identifikovat různé zvuky nebo analyzovat kvalitu zvukové nahrávky. v zpracování obrazu , FFT nám může pomoci analyzovat prostorové frekvence v obraze. A v telekomunikacích, FFT se používá pro efektivní vysílání a příjem signálů.



Jak používat FFT v MATLABu

MATLAB poskytuje vestavěnou funkci tzv fft což nám umožňuje vystupovat Rychlá Fourierova transformace (FFT) výpočty na signálech. Tato funkce se snadno používá a nabízí různé možnosti pro analýzu a manipulaci se signály ve frekvenční oblasti:





Syntaxe pro použití FFT funkce v MATLABu jsou uvedeny níže:

F = fft ( X )

F = fft ( x, n )

F = fft ( x, n, rozm )

Tady:



F= fft(x) dává výpočet Diskrétní Fourierova transformace (DFT) z x pomocí Rychlá Fourierova transformace (FFT) algoritmus.

  • Pokud x představuje vektor, fft(x) získá Fourierovu transformaci vektoru.
  • Pokud x představuje matici, fft(x) poskytuje Fourierovu transformaci každého sloupce tím, že každý sloupec považuje za vektor.

F = fft(x,n) dává n-bod DFT. F má stejnou velikost jako x, pokud není zadána žádná hodnota.

  • Je-li x vektor a jeho délka je menší než n, bude x doplněno koncovými nulami, dokud nedosáhne n.
  • Je-li x vektor a jeho délka přesahuje n, je zkrácen na délku n.
  • Je-li x matice, každý sloupec je považován za vektorový případ.

F = fft(x,n,dim) dá Fourierova transformace podél daného rozměru dim. Řekněme, fft(x, n, 2) dává n-bodovou Fourierovu transformaci pro každý řádek, pokud x představuje matici.

Následující příklady ilustrují fungování FFT funkce v MATLABu.

Příklad 1

Můžeme použít FFT v MATLABu demonstrovat generování a analýzu signálu se specifickými frekvenčními složkami a náhodným šumem.

Například:

ls = 2000 ;

fs = 1500 ;

ts = 1 /fs;

tv = ( 0 :ls- 1 ) *ts;

f = 0,6 * bez ( 2 * * padesáti *televize ) + 3 * randn ( velikost ( televize ) ) + bez ( 2 * * 120 *televize ) ;

spiknutí ( 1000 *televize ( 1 : padesáti ) ,F ( 1 : padesáti ) )

xlabel ( 'tv (ms)' )

ylabel ( 'f(tv)' )

titul ( 'Poškozený signál s nulovým středním náhodným šumem' )

F = fft ( F ) ;

PS2 = břišní svaly ( F/ ls ) ;

PS1 = PS2 ( 1 : ls / 2 + 1 ) ;

PS1 ( 2 :konec- 1 ) = 2 *PS1 ( 2 :konec- 1 ) ;

f = fs* ( 0 : ( ls / 2 ) ) / ls ;

spiknutí ( f, PS1 )

titul ( „Amplitudové spektrum (jednostranné) PS1 pro f(t)“ )

xlabel ( 'f(Hz)' )

ylabel ( '|PS1(f)|' )

Poskytnutý kód generuje signál o délce 2000 vzorků (ls) , vzorkovací frekvence 1500 Hz (fs) a a vzorkovací období (ts) . The časový vektor (tv) je vytvořen na základě těchto parametrů. Signál F je složen z kombinace sinusových složek při 50 Hz a 120 Hz spolu s nulovým středním náhodným šumem. Poté se vynese do grafu se segmentem prvních 50 vzorků. Kód dále vypočítává FFT signálu a vypočítává amplitudové spektrum (PS1) . Nakonec se vynese amplitudové spektrum proti odpovídajícím frekvencím (f) v Hz.

Příklad 2

Zde je další příklad, který používá FFT funkce v MATLABu pro transformaci gaussovského pulsu přes časovou doménu do frekvenční oblasti.

fs = 500 ;

ts = - 0,5 : 1 /fs: 0,5 ;

ls = délka ( ts ) ;

f = 1 / ( 4 * sqrt ( 2 * * 0,02 ) ) * ( zk ( -ts.^ 2 / ( 2 * 0,02 ) ) ) ;

spiknutí ( ts,f )

xlabel ( 'Čas (t)' )

ylabel ( 'f(t)' )

titul ( 'Časová doména' )

např. = 2 ^nextpow2 ( ls ) ;

f = fs* ( 0 : ( např/ 2 ) ) /např;

F = fft ( f,np ) ;

PF = břišní svaly ( F/np ) ;

spiknutí ( f,PF ( 1 :např/ 2 + 1 ) )

xlabel ( '(F)' )

ylabel ( '|PF(f)|' )

titul ( 'frekvenční doména' )

Poskytnutý kód generuje Gaussův pulzní signál v časové doméně a analyzuje jeho frekvenční obsah pomocí Rychlá Fourierova transformace (FFT) v MATLABu. Vynese se signál v časové oblasti a poté FFT se provádí pro získání reprezentace ve frekvenční oblasti. Výsledná amplitudové spektrum je vynesena proti odpovídajícím frekvencím.

Příklad 3

Následující příklad generuje tři sinusové signály s různými frekvencemi a vykresluje je v časové oblasti pomocí FFT funkce v MATLABu.

fs = 2500 ;

ts = 1 /fs;

ls = 3000 ;

t = ( 0 :ls- 1 ) *ts;

r1 = bez ( 3 * * 60 *t ) ;

r2 = bez ( 3 * * 140 *t ) ;

r3 = bez ( 3 * * 350 *t ) ;

f = [ rl; r2; r3 ] ;

pro k = 1 : 3

podzápletka ( 3 , 1 ,k )

spiknutí ( t ( 1 : 250 ) ,F ( k, 1 : 250 ) )

titul ( [ 'Řádek č.' , č.2str ( k ) , ' (Časová doména)' ] )

konec

např. = 2 ^nextpow2 ( ls ) ;

d = 2 ;

F = fft ( f,np,d ) ;

PS2 = břišní svaly ( F/ ls ) ;

PS1 = PS2 ( :, 1 :např/ 2 + 1 ) ;

PS1 ( :, 2 :konec- 1 ) = 2 *PS1 ( :, 2 :konec- 1 ) ;

pro k= 1 : 3

podzápletka ( 3 , 1 ,k )

spiknutí ( 0 : ( fs/np ) : ( fs/ 2 -fs/np ) , PS1 ( k, 1 :např/ 2 ) )

titul ( [ 'Řádek č.' , č.2str ( k ) , '(frekvenční doména)' ] )

konec

Ve výše uvedeném kódu jsou ve výstupním okně v časové oblasti zobrazeny tři sinusové vlny, r1, r2 a r3. Signál ve frekvenční doméně „PS1“ je vytvořen pomocí funkce FFT k vlnám pro výpočet každého z jejich jednotlivých jednostranných amplitudových spekter.

Závěr


The FFT je cenný nástroj, který nám pomáhá porozumět signálům odlišně tím, že analyzuje jejich frekvenční obsah. S vestavěnou funkcí MATLABu, fft, výkon FFT výpočty na signálech se stávají pohodlnými. Tato funkce nám umožňuje zjistit zásadní podrobnosti o různých frekvencích a relativních intenzitách těchto frekvencí převodem dat z časové oblasti do frekvenční oblasti. Výše uvedený průvodce je zásadní pro hlubší porozumění charakteristikám signálu a přijímání informovaných rozhodnutí v různých aplikacích.