Ten artykuł nauczy nas o działaniu FFT w MATLABIE.
Zrozumienie FFT
The Szybka transformata Fouriera (FFT) reprezentuje specjalną technikę, która pomaga nam inaczej rozumieć sygnały. Zwykle sygnały są przedstawiane jako sekwencje liczb, które zmieniają się w czasie, ale z FFT, możemy zobaczyć, jakie różne częstotliwości są obecne w sygnale i jak silne są. To tak, jakby podzielić sygnał na nuty i zobaczyć, jak głośna jest każda nuta.
The FFT Algorytm wykonuje wiele skomplikowanych obliczeń matematycznych na danych sygnału. Bierze sygnał i dzieli go na mniejsze części, a następnie oblicza częstotliwości i ich moce dla każdej części. Na koniec łączy wszystkie wyniki, aby dać nam obraz zawartości częstotliwości sygnału, zależności fazowych i innych ważnych cech.
Ta technika jest używana w wielu dziedzinach, ponieważ pomaga nam lepiej analizować i rozumieć sygnały. Na przykład w przetwarzanie sygnałów , możemy użyć FFT odfiltrować niechciany szum lub wykryć określone wzorce. W analiza dźwięku , możemy zidentyfikować różne dźwięki lub przeanalizować jakość nagrania audio. W przetwarzanie obrazu , FFT może pomóc nam w analizie częstotliwości przestrzennych obrazu. A w telekomunikacji FFT służy do efektywnego nadawania i odbierania sygnałów.
Jak korzystać z FFT w MATLABie
MATLAB udostępnia wbudowaną funkcję o nazwie fft który pozwala nam działać Szybka transformata Fouriera (FFT) obliczenia na sygnałach. Ta funkcja jest łatwa w użyciu i oferuje różne opcje analizy i manipulowania sygnałami w dziedzinie częstotliwości:
Składnia używania FFT funkcje w MATLAB podano poniżej:
fa = fft ( X )fa = fft ( x, rz )
fa = fft ( x,n,ciemny )
Tutaj:
F= fft(x) daje obliczenie Dyskretna transformata Fouriera (DFT) z x za pomocą Szybka transformata Fouriera (FFT) algorytm.
- Jeśli x reprezentuje wektor, fft(x) daje transformatę Fouriera wektora.
- Jeśli x reprezentuje macierz, fft(x) zapewnia transformatę Fouriera każdej kolumny, traktując każdą kolumnę jako wektor.
F = fft(x,n) daje n-punktową DFT. F ma identyczny rozmiar jak x, gdy nie podano żadnej wartości.
- Jeśli x jest wektorem i jego długość jest mniejsza niż n, x jest uzupełniane końcowymi zerami, aż osiągnie n.
- Jeśli x jest wektorem, a jego długość przekracza n, jest on obcinany do tej długości n.
- Jeśli x jest macierzą, każda kolumna jest traktowana jako przypadek wektorowy.
F = fft(x,n,wymiar) daje transformatę Fouriera wzdłuż podanego wymiaru dim. Powiedzmy, fft(x, n, 2) daje n-punktową transformatę Fouriera dla każdego wiersza, jeśli x reprezentuje macierz.
Poniższe przykłady ilustrują działanie FFT funkcja w MATLABIE.
Przykład 1
Możemy użyć FFT w MATLAB, aby zademonstrować generowanie i analizę sygnału z określonymi składowymi częstotliwościowymi i losowym szumem.
Na przykład:
ls = 2000 ;fs = 1500 ;
ts = 1 /fs;
telewizja = ( 0 :ls- 1 ) *ts;
fa = 0,6 * bez ( 2 * Liczba Pi * pięćdziesiąt *telewizja ) + 3 * Randn ( rozmiar ( telewizja ) ) + bez ( 2 * Liczba Pi * 120 *telewizja ) ;
działka ( 1000 *telewizja ( 1 : pięćdziesiąt ) ,F ( 1 : pięćdziesiąt ) )
xlabel ( „telewizja (ms)” )
yetykieta ( „f (telewizja)” )
tytuł ( „Uszkodzony sygnał o zerowym średnim losowym szumie” )
fa = fft ( F ) ;
PS2 = abs ( F/ ls ) ;
PS1 = PS2 ( 1 : ls / 2 + 1 ) ;
PS1 ( 2 :koniec- 1 ) = 2 *PS1 ( 2 :koniec- 1 ) ;
fa = fs* ( 0 : ( ls / 2 ) ) / ls ;
działka ( f, PS1 )
tytuł ( „Widmo amplitudowe (jednostronne) PS1 dla f(t)” )
xlabel ( 'f(Hz)' )
yetykieta ( '|PS1(f)|' )
Podany kod generuje sygnał o długości ok 2000 próbek (ls) , częstotliwość próbkowania 1500 Hz (fps) i a okres próbkowania (ts) . The wektor czasu (telewizja) jest tworzony na podstawie tych parametrów. Sygnał F składa się z kombinacji składowych sinusoidalnych przy 50 Hz i 120 Hz, wraz z przypadkowym szumem o zerowej średniej. Następnie jest wykreślany z segmentem pierwszych 50 próbek. Kod dodatkowo oblicza FFT sygnału i oblicza widmo amplitudowe (PS1) . Na koniec widmo amplitudy jest wykreślane w funkcji odpowiednich częstotliwości (f) w Hz.
Przykład 2
Oto kolejny przykład, w którym użyto FFT funkcja w MATLAB do transformacji impulsu Gaussa przez dziedzinę czasu do dziedziny częstotliwości.
fs = 500 ;ts = - 0,5 : 1 /fs: 0,5 ;
ls = długość ( ts ) ;
fa = 1 / ( 4 * kwadrat ( 2 * Liczba Pi * 0,02 ) ) * ( do potęgi ( -ts.^ 2 / ( 2 * 0,02 ) ) ) ;
działka ( ts, f )
xlabel ( „Czas (t)” )
yetykieta ( 'f(t)' )
tytuł ( „Dziedzina czasu” )
np = 2 ^następnapow2 ( ls ) ;
fa = fs* ( 0 : ( np/ 2 ) ) /np;
fa = fft ( f, np ) ;
PF = abs ( F/np ) ;
działka ( f,PF ( 1 :np/ 2 + 1 ) )
xlabel ( '(F)' )
yetykieta ( '|PF(f)|' )
tytuł ( „Dziedzina częstotliwości” )
Dostarczony kod generuje impulsowy sygnał gaussowski w dziedzinie czasu i analizuje jego zawartość częstotliwościową za pomocą Szybka transformata Fouriera (FFT) w MATLABIE. Wykreślany jest sygnał w dziedzinie czasu, a następnie FFT przeprowadza się w celu uzyskania reprezentacji w dziedzinie częstotliwości. Wynikowy widmo amplitudy jest wykreślany w funkcji odpowiednich częstotliwości.
Przykład 3
Poniższy przykład generuje trzy sygnały sinusoidalne o różnych częstotliwościach i wykreśla je w dziedzinie czasu za pomocą FFT funkcja w MATLABIE.
fs = 2500 ;ts = 1 /fs;
ls = 3000 ;
t = ( 0 :ls- 1 ) *ts;
r1 = bez ( 3 * Liczba Pi * 60 *T ) ;
r2 = bez ( 3 * Liczba Pi * 140 *T ) ;
r3 = bez ( 3 * Liczba Pi * 350 *T ) ;
fa = [ r1; r2; r3 ] ;
Do k = 1 : 3
wątek poboczny ( 3 , 1 , k )
działka ( T ( 1 : 250 ) ,F ( k, 1 : 250 ) )
tytuł ( [ „Rząd nr” , num2str ( k ) , „(Dziedzina czasu)” ] )
koniec
np = 2 ^następnapow2 ( ls ) ;
re = 2 ;
fa = fft ( f,np,d ) ;
PS2 = abs ( F/ ls ) ;
PS1 = PS2 ( :, 1 :np/ 2 + 1 ) ;
PS1 ( :, 2 :koniec- 1 ) = 2 *PS1 ( :, 2 :koniec- 1 ) ;
Do k= 1 : 3
wątek poboczny ( 3 , 1 , k )
działka ( 0 : ( fs/np ) : ( fs/ 2 -fs/np ) ,PS1 ( k, 1 :np/ 2 ) )
tytuł ( [ „Rząd nr” , num2str ( k ) , „(Dziedzina częstotliwości)” ] )
koniec
W powyższym kodzie trzy fale sinusoidalne r1, r2 i r3 są wyświetlane w oknie wyjściowym w dziedzinie czasu. Sygnał w dziedzinie częstotliwości „PS1” jest tworzony za pomocą funkcji FFT dla fal w celu obliczenia każdego z ich indywidualnych widm amplitudy jednostronnej.
Wniosek
The FFT jest cennym narzędziem, które pomaga nam inaczej rozumieć sygnały, analizując ich zawartość częstotliwościową. Z wbudowaną funkcją MATLAB-a, fft, performing FFT obliczenia na sygnałach stają się wygodne. Ta funkcja pozwala nam poznać kluczowe szczegóły dotyczące różnych częstotliwości i względnych natężeń tych częstotliwości poprzez konwersję danych z dziedziny czasu na dziedzinę częstotliwości. Powyższy przewodnik jest kluczowy dla lepszego zrozumienia charakterystyki sygnału i podejmowania świadomych decyzji w różnych zastosowaniach.