Mateusz Gąsiorek

180514

Teoria Sygnałów TP 17:15

SPRAWOZDANIE

Zagadnienia do przygotowania:
1 Wpływ dopełniania sygnału zerami na widmo amplitudowe
2 Wpływ niepełenej liczby okresów na widmo amplitudowe
3 Wpływ długości fft na wynik obliczania widma
4 Wpływ okienkowania na na widmo amplitudowe
5 Aliasing widma

Opracowanie:

Na początku przedstawiam odpowiedzi na pytania:

  1. Dopełnienie sygnału zerami wpływa na rozdzielczość częstotliwościową, w szybkiej transformacie Fouriera zwiększa rozmiar sygnału, program dopisuje 0 tak aby w finalnej wersji długość sygnału dało się przedstawić w postaci liczby potęgi liczby 2.

  1. Niepełna liczba okresów (Ograniczona długość sygnału) wpływa na rozdzielczość widma rozciągając go. W dziedzinie częstotliwości występuje przeciek widma. (Widmo się powiela i nakładają się na siebie wykresy)

  1. Długość fft wpływa na to jak długo będzie obliczane widmo ( w Matlabie w wersji niższej (nowe wersje automatycznie stosują szybką transformatę fouriera i wszelkiego rodzaju uproszczenia)). Długość fft wpływa również na jakość widma, (więcej punktów wpływa na bardziej szczegółowy wykres)

  1. Okienkowanie minimalizuje efekt przecieku widma jako nieuchronnego zjawiska związanego z brakiem synchronizacji próbkowania względem wszystkich składowych zawartych w badanym sygnale. Wyróżniamy różne typy okienkowania (przedstawione w skrypcie poniżej), które w różny sposób wpływają na minimalizację przecieku widma.

  1. Aliasing widma występuje kiedy częstotliwość próbkowania jest za mała (co najmniej 2*f), wówczas poprzesuwane „kopie” widma oryginalnego zlewają się i nie jest możliwe odzyskanie oryginału nawet przez filtrację.

SKRYPT + WYKRESY potwierdzające słuszność opracowania:

% Mateusz Gąsiorek

% 180514

% skrypt pomocny do opracowania sprawozdania

% teoria sygnałów

clear all

close all

n=256; %próbki (długość sygnału)

k=4; %parametr

fp=64; %częstotliwość próbkowania

A=[1 0.4]; %macierz A (amplitudy)

f=[8;10]; %macierz f (częstotliwośći składowe)

N=k*n; % długość transformaty (dopełnienie zerami jeżeli N>n)

t=0:(1/fp):((n-1)/fp); %czas

x=A*sin(2*pi*f*t); %sygnał

% SYGNAŁ WEJŚCIOWY (SINUS)

figure

hold on

%============================

%sygnał

subplot(5,1,1)

plot(t,x)

title('sinus')

% WPŁYW DOPEŁNIENIA ZERAMI

%============================

%widmo

subplot(5,1,2)

plot(abs(fft(x)));

title('widmo')

%============================

%widmo z dopełnieniem zerami

subplot(5,1,3)

plot(abs(fft(x,N)))

title('widmo dopełnienie zerami')

% WPŁYW LICZBY OKRESÓW

%============================

%pełna liczba okresów

Xp = abs(fft(x(1:64)));

Xnp = abs(fft(x));

subplot(5,1,4)

plot(Xp)

title 'pelna liczba okresow'

%============================

%niepełna liczba okresów

subplot(5,1,5)

plot(Xnp)

title 'niepelna liczba okresow'

%WPŁYW OKIENKOWANIA NA WIDMO AMPLITUDOWE

% przykładowe okienkowania

% hamming;

% hanning;

% kaiser;

% bartlett;

% rectwin;

hold off

figure

hold on

%============================

%widmo okienkujemy hammingiem

z1=x.*hamming(n)';

subplot(3,1,1)

plot(abs(fft(z1,N)));

title('widmo okienkujemy hammingiem')

%============================

%widmo okienkujemy hanningiem

z2=x.*hanning(n)';

subplot(3,1,2)

plot(abs(fft(z2,N)));

title('widmo okienkujemy hanningiem')

%============================

%widmo okienkujemy kaiserem

z3=x.*kaiser(n)';

subplot(3,1,3)

plot(abs(fft(z3,N)));

title('widmo okienkujemy kaiserem')

hold off

figure

hold on

%============================

%widmo okienkujemy bartlettem

z4=x.*bartlett(n)';

subplot(3,1,1)

plot(abs(fft(z4,N)));

title('widmo okienkujemy bartlettem')

%============================

%widmo okienkujemy rectwinem

z5=x.*rectwin(n)';

subplot(3,1,2)

plot(abs(fft(z5,N)));

title('widmo okienkujemy rectwinem')

%CHARAKTERYSTYKA AMPLITUDOWA OKIEN

%pokazuje nam metody okienkowe

%============================

% ch-ka amplitudowa okna hamminga

figure;

freqz(hamming(n));

%============================

% ch-ka amplitudowa okna rectwina

figure;

freqz(rectwin(n));

%============================

% ch-ka amplitudowa okna bartletta

figure;

freqz(bartlett(n));

%============================

% ch-ka amplitudowa okna kaisera

figure;

freqz(kaiser(n));

%============================

% ch-ka amplitudowa okna hanninga

figure;

freqz(hanning(n));

% ALIASING

% (I WARUNEK) Aliasing wstępuje gdy czestotliwosc sygnalu jest większa niz połowa czestotliwosci probkowania.

% Jeżeli ten warunek jest spełniony probkowanie sygnalu prowadzi do uzyskania niejednoznacznych wynikow

%============================

n = 4; %ilosc wyswietlonych okresow

k = 100; %ilosc probek wykorzystanych do interpolacji

%czestotliwosc probkowania musi byc conajmniej 2 razy wieksza od f sygnalu

%============================

if f>=fp/2

f = abs(fp-f);

end

%============================

t= 0:1/(fp*k):n/f; %czas

x = A*sin(2*pi*f*t); %podstawowy sygnal

rs = interp1(t(1:k:end),x(1:k:end),t,'linear'); %interpolacja sygnalu

figure

hold on;

plot(t,x,'r')

stem(t(1:k:end),x(1:k:end));

plot(t,rs)

title('aliasing')

xlabel time[s]

WYKRESY:

0x01 graphic

0x01 graphic

0x01 graphic

BARTLETT

0x01 graphic

HAMMING

0x01 graphic

HANNING

0x01 graphic

KAISER

0x01 graphic

RECTWIN

0x01 graphic

0x01 graphic

ŹRÓDŁA Z KTÓRYCH KORZYSTAŁEM: