VNLab - TFZR - · PDF fileFurijeova transformacija (DFT) obavlja prebacivanje signala iz vremenskog u spektralni domen. Primena Diskretne Furijeove transformacije u digitalnoj obradi

Embed Size (px)

Citation preview

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    CommLab

    07

    Furijeove transformacije

    Cilj vebe Cilj vebe je upoznavanje sa Furijeovim transformacijama. Poznato je da se svaki periodian ili aperiodian signal moe razloiti na sumu sinusoidalnih komponenti ije se uestanosti razlikuju ili za konaan iznos kao to je to sluaj kod periodinih signala ili za beskonano mali iznos kao kod aperiodinih signala. Postupak izdvajanja harmonijskih komponenti iz sloenog signala se naziva i spektralna ili harmonijska analiza signala. Diskretna Furijeova transformacija (DFT) obavlja prebacivanje signala iz vremenskog u spektralni domen. Primena Diskretne Furijeove transformacije u digitalnoj obradi signala je velika. Pre svega, DFT se koristi kao neophodan alat u spektralnoj analizi signala. Drugo, DFT omoguava efikasno izvoenje filtriranja u frekvencijskom domenu. Znaaj Diskretne Furijeove transformacije u digitalnoj obradi signala potie od toga to postoje veoma efikasni algoritmi za izraunavanje DFT. Brza Furijeova transformacija (engl. Fast Fourier transformation; esto se oznaava kao FFT) je algoritam za "brzo" izraunavanje vrednosti diskretne Furijeove transformacije. Ubrzanje u odnosu na uobiajen postupak izraunavanja diskretne Furijeove transformacije postie se izbegavanjem ponovnog izraunavanja izraza koji se meusobno negiraju. Algoritam se pripisuje Dejmsu V. Kuliju (James W. Cooley) i Donu V. Tukiju (John W. Tukey) koji su ga objavili 1965. godine. Meutim, Karl Fridrih Gaus ga je razvio ve 1805. da bi izraunao putanju asteroida Palas i Juno. Pri tom su mnoge verzije razvijene i pre Kulijeve i Tukijeve varijante. Posle su se pojavila mnoga poboljanja i varijacije.

    Zadatak 7.1. Prikazati signale :

    )2cos(2)( 1 tftx

    )2cos(2)()( 2 tftxty

    u vremenskom i frekvencijskom domenu. Ako je 2T , T

    f1

    1 , 202 f , 4

    , a vremenski

    interval je: t=0:.001:5;

    Reenje 7.1. clc; close all; clear all;

    Generisanje signala x(t)

    t=0:.001:5; T=2; f1=1/T

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    phi=pi/4; x=2*cos(2*pi*f1*t+phi);

    Proraun FFT % diskretna furijeova trasformacija vektora x f_dom1=fft(x);

    % pomera nultu komponentu frekvencije u centar spektra f_dom1=fftshift(f_dom1);

    Generisanje signala y(t) f2=...; y=...;

    Proraun FFT za signal y(t) f_dom2=...; f_dom2=...;

    Crtanje prvog signala figure; subplot(2,1,1); plot(t,x); xlabel('vreme-->'); ylabel('amplituda-->'); title('Talasni oblik');

    subplot(2,1,2); plot(abs(f_dom1)); xlabel('frekvencija-->'); ylabel('amplituda-->'); title('Amplitudni spektar');

    Crtanje drugog signala. .... Dovriti zadatak i uporediti sa dobijenim grafikonima u rezultatu.

    Rezultat 7.1. Ako je zadatak dobro uraen potrebno je da se dobiju grafikoni kao na slici.

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    Slika 7.4. a) Vremenski i frekvencijski domen signala x(t)

    Slika 7.4. b) Vremenski i frekvencijski domen signala y(t)

    Zadatak 7.2. Matlab i FFT FFT funkcija u programskom paketu Matlab je efikasan alat za proraun diskretne Furijeove transformacije signala. Skript koji sledi e pomoi u razumevanju upotrebe FFT funkcije u Matlab-u. Primer 1. Tipina sintaksa za proraun FFT signala je FFT(x,N) gde je x signal x(n) koji se transformie a N je broj taaka u FFT transformaciji. N mora biti isti ili vei od broja uzoraka u signalu x(n). Da bi se

    0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-2

    -1

    0

    1

    2

    vreme-->

    am

    plit

    uda--

    >

    Talasni oblik signala

    0 1000 2000 3000 4000 5000 60000

    1000

    2000

    3000

    4000

    frekvencija-->

    am

    plit

    uda--

    >

    Amplitudni spektar

    0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-2

    -1

    0

    1

    2

    vreme-->

    am

    plit

    uda--

    >

    Talasni oblik signala

    0 1000 2000 3000 4000 5000 60000

    500

    1000

    1500

    2000

    frekvencija-->

    am

    plit

    uda--

    >

    Amplitudni spektar

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    demonstrirala promena vrednosti parametra N izvrie se transformacija signala sa 30 uzoraka (n = [0:29]) i sa po 10 uzoraka po periodi (/20). n = [0:29];

    x = cos(2*pi*n/10);

    Definisae se 3 razliite vrednosti za N. Zatim e se izvriti transformacija signala x(n) za svaku od 3 definisane vrednosti. Funkcija abs pronalazi magnitudu transformacije. N1 = 64;

    N2 = 128;

    N3 = 256;

    X1 = abs(fft(x,N1));

    X2 = abs(fft(x,N2));

    X3 = abs(fft(x,N3));

    Skala frekvencije poinje sa 0 i zavrava se sa N-1 za FFT sa N taaka. Normalizacija skale se vri tako da bude u rasponu od 0 do 1-1/N. F1 = [0 : N1 - 1]/N1;

    F2 = [0 : N2 - 1]/N2;

    F3 = [0 : N3 - 1]/N3;

    Sada je potrebno nacrtati grafik svake transformacije. subplot(3,1,1)

    plot(F1,X1);

    title('N = 64');

    axis([0 1 0 20])

    subplot(3,1,2)

    plot(F2,X2);

    title('N = 128');

    axis([0 1 0 20]);

    subplot(3,1,3)

    plot(F3,X3);

    title('N = 256');

    axis([0 1 0 20])

    Napomena: naredba plot u ovom obliku pored vrednosti koje se prikazuju na x i y osi i definie naslov grafikona (title) i raspon vrednosti na x i y osi naredbom axis (x ima raspon od 0 do 1, a y od 0 do 20). Posle analize grafikona moe se videti da je svaka transformacija istog oblika sa razlikom u broju uzoraka koji su koieni za aproksimaciju tog oblika. Proveriti kakav bi bio rezultat da N1 ima vrednost 30 (kao broj uzoraka n)

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    Reenje 7.2.

    Zadatak 7.3. Spektralna analiza FFT i Matlab-om FFT ne daje direktno prikaz spektra signala. U prethodnom primeru se vidi da se primena FFT-a razlikuje u zavisnosti od vrednosti N. FFT sadri informacije u opsegu izmeu 0 i fs, a frekvencija odabiranja mora biti dva puta vea od najvie frekventne komponente. Spektar signala bi tako

    trebao biti ispod

    2 Nikvistova frekvencija. Takoe je umesto prikaza signala izmeu 0 i fs

    potrebno prikazati signal u rasponu od

    2 do

    2. To se postie upotrebom Matlab funkcije fftshift.

    n = [0:149];

    x1 = cos(2*pi*n/10);

    N = 2048;

    X = abs(fft(x1,N));

    X = fftshift(X);

    F = [-N/2:N/2-1]/N;

    plot(F,X),

    xlabel('frequency / fs')

    Reenje 7.3.

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    10

    20N = 64

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    10

    20N = 128

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

    10

    20N = 256

    -0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.50

    10

    20

    30

    40

    50

    60

    70

    80

    frequency / fs

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    Zadatak 7.4. Dat je signal

    = sin(2 ) Frekvencija odabiranja je fs = 150 Hz, frekvencija signala f=5 Hz, broj taaka za FFT je 1024. FFT se vri sledeim setom naredbi: % Izvrsiti FFT X = fft(x,nfft); % FFT je simetricna, prikazati samo jednu polovinu X = X(1:nfft/2); % Magnituda FFT od signala x mx = abs(X); % Vektor frekvencije f = (0:nfft/2-1)*Fs/nfft;

    Prikazati signal i njegov spektar.

    Reenje 7.4.

    Zadatak 7.5. Dat je signal

    = cos(2 + )

    Za =1

    3 i podatke iste kao u prethodnom zadatku prikazati signal i njegov spektar.

    Reenje 7.5.

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1Sine Wave Signal

    Time (s)

    Am

    plit

    ude

    0 10 20 30 40 50 60 70 800

    10

    20

    30

    40

    50

    60

    70

    80Power Spectrum of a Sine Wave

    Frequency (Hz)

    0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-1

    -0.8

    -0.6

    -0.4

    -0.2

    0

    0.2

    0.4

    0.6

    0.8

    1Sine Wave Signal

    Time (s)

    Am

    plit

    ude

    0 10 20 30 40 50 60 70 800

    10

    20

    30

    40

    50

    60

    70

    80Power Spectrum of a Sine Wave

    Frequency (Hz)

    Pow

    er

  • CommLab 07 2012/2013 (21.10.2012)

    Tehniki fakultet Mihajlo Pupin - Zrenjanin

    Zadatak 7.6. Uobiajena upotreba furijeove transformacije je za pronalaenje frekvencijskih komponenti koje su skrivene u signalu sa umom koji je prikazan u vremenskom domenu. Signal se uzorkuje na 1000 Hz. A signal x(t) sadri sinusoidu od 50 Hz sa amplitudom 0.7 i sinusoidu od 120 Hz sa amplitudom 1. Signal x(t) je izoblien umom sluajne vrednosti i tako nastaje signal y(t):

    = 0.7 sin 250 + sin(2120) close all; clear all; clc;

    Generisanje signala se vri na sledei nain:

    Fs = 1000; % Frekvencija odabiranja - Sampling frequency T = 1/Fs; % Vreme odabiranja - Sample time L = 1000; % Duzina signala - Length of signal t = (0:L-1)*T; % Vektor vremena - Time vector

    % Signal

    x = 0.7*sin(2*pi*50*t) + sin(2*pi*120*t);

    a dodavanje uma se vri na sledei nain:

    y = x + 2*randn(size(t)); % Signal sa sumom

    Po zavretku generisanja signala i uma, signal se prikazuje na grafikonu.

    plot(Fs*t(1:50),y(1:50)); title('Signal Corrupted with Zero-Mean Random Noise'); xlabel('time (milliseconds)');-

    Posmatrajui signal izoblien umom, teko je identifikovati frekv