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:
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.
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)
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)
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.
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:
BARTLETT
HAMMING
HANNING
KAISER
RECTWIN
ŹRÓDŁA Z KTÓRYCH KORZYSTAŁEM:
pytania na obronę EAE 2010
Richard G. Lyons - Wprowadzenie do cyfrowego przetwarzania sygnalow
Skrypt udostępniony przez prowadzącego - alliasing.m