Uniwersytet Zielonogórski WEiT |
Imię i Nazwisko:
|
Grupa:
|
Numer ćwiczenia:
|
Ocena |
Techniki obliczeniowe i symulacyjne. |
||||
Temat ćwiczenia: Analiza widmowa sygnałów za pomocą programu Matlab
|
Data wykonania:
|
Data oddania:
|
Podpis: |
Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z programem Matlab 6.1.
Przebieg ćwiczenia
2.1 Badanie widmo sygnałów
Wygenerować przebieg dyskretny określony następującym wzorem:
,
tak aby był widoczny jeden okres składowej o częstotliwości f1. Przyjąć czas próbkowania równy:
.
Wartości częstotliwości fn, amplitud An oraz przesunięcia fazowego ϕn należy pobrać z Tabeli 1.
A1 |
A2 |
A3 |
A4 |
A5 |
f1 |
f2 |
f3 |
f4 |
f5 |
ϕ1 |
ϕ2 |
ϕ3 |
ϕ4 |
ϕ5 |
N |
1 |
-0.5 |
0.3 |
0.2 |
0.1 |
100 |
200 |
300 |
400 |
500 |
0 |
30 |
45 |
60 |
0 |
128 |
clc;
clear all;
close all;
A1=1;
A2=-0.5;
A3=0.3;
A4=0.2;
A5=0.1;
f1=100;
f2=2*f1;
f3=3*f1;
f4=4*f1;
f5=5*f1;
fi1=0;
fi2=(pi*30)/180;
fi3=(pi*45)/180;
fi4=(pi*60)/180;
fi5=0;
N=128;
t=0:(1/f1)/128:1/f1;
x1=A1*sin(2*pi*f1*t)+fi1;
x2=A2*sin(2*pi*f2*t)+fi2;
x3=A3*sin(2*pi*f3*t)+fi3;
x4=A4*sin(2*pi*f4*t)+fi4;
x5=A5*sin(2*pi*f5*t)+fi5;
x=x1+x2+x3+x4+x5;
figure; plot(t,x);
- wyznaczyć przebieg czasowy:
obliczyć widmo sygnału, określić rozdzielczość analizy, oraz wykonać wykres widma, skalując oś OX w dziedzinie częstotliwości:
Z=fft(x)*2/length(x);
o=(0:(length(x)-1))*100;
figure; stem(o,abs(Z)); axis([0 600 0 2]);
dokonać rekonstrukcji sygnału z wcześniej wyznaczonego widma stosując odwrotną transformatę Fouriera:
D=(ifft(Z)/2)*length(Z);
figure; plot(t,D);
- wyznaczyć błąd rekonstrukcji sygnału (w postaci przebiegu czasowego przedstawiającego różnicę dwóch przebiegów):
blad=x-D;
figure; plot(t,blad);
Powtórzyć wszystkie czynności dla pięciu okresów sygnału, i identycznej częstotliwości próbkowania.
- wyznaczyć przebieg czasowy:
clc;
clear all;
close all;
A1=1;
A2=-0.5;
A3=0.3;
A4=0.2;
A5=0.1;
f1=100;
f2=2*f1;
f3=3*f1;
f4=4*f1;
f5=5*f1;
fi1=0;
fi2=(pi*30)/180;
fi3=(pi*45)/180;
fi4=(pi*60)/180;
fi5=0;
N=128;
t=0:(1/f1)/128:(5*(1/f1));
x1=A1*sin(2*pi*f1*t)+fi1;
x2=A2*sin(2*pi*f2*t)+fi2;
x3=A3*sin(2*pi*f3*t)+fi3;
x4=A4*sin(2*pi*f4*t)+fi4;
x5=A5*sin(2*pi*f5*t)+fi5;
x=x1+x2+x3+x4+x5;
figure; plot(t,x);
obliczyć widmo sygnału, określić rozdzielczość analizy, oraz wykonać wykres widma, skalując oś OX w dziedzinie częstotliwości:
Z=fft(x)*2/length(x);
o=(0:(length(x)-1))*100;
figure; stem(o,abs(Z)); axis([0 3000 0 5]);
dokonać rekonstrukcji sygnału z wcześniej wyznaczonego widma stosując odwrotną transformatę Fouriera:
D=(ifft(Z)/2)*length(Z);
figure; plot(t,D);
- wyznaczyć błąd rekonstrukcji sygnału (w postaci przebiegu czasowego przedstawiającego różnicę dwóch przebiegów):
blad=x-D;
figure; plot(t,blad); axis([0 0.05 ((-3)*(10^(-15))) ((3)*(10^(-15)))]);
1