Sprawozdanie z laboratorium
Podstaw Przetwarzania Sygnałów.
Próbkowanie i Kwantowanie.
Próbkowanie.
Parametry generowanego przebiegu:
f=40 częstotliwość sygnału sinus.
A=1 amplituda sinusa
Faza=0 faza sinusa
T=0.1 czas t
fp>2f, fp=1000
fp=2f
fp<f, fp=30
Algorytm:
f=40;
fp=30;
T=0.1;
t=0:1/fp:T-1/fp;
x=sin(2*pi*f*t);
y=fft(x);
m=abs(y);
figure
stem(t,x), title(['próbkowaniesygnalu, fp=',num2str(fp)]), grid on;
figure,
f=(0:length(y)-1)'*fp/length(y);
semilogy(f,m), title('widmofazowe'), grid on;
Kwantowanie.
Parametry:
Fs=3 częstotliwość sygnału sinusoidalnego
Fp=1000 częstotliwość próbkowania
T=1 czas, długość sygnału
Dla nk=3
Dla nk=45
Algorytm:
fs=3;
fp=1000
T=1;
t=0:1/fp:T-1/fp;
x=sin(2*pi*fs*t);
nk=45;
a=2^nk-1;
sq=round(x*a)/a;
figure(1)
plot(t,x,'-b'), title('kwantowanie'), hold on, grid on;
plot(t,sq,'-r'), legend('syg. oryginalny', 'syg. skwantowany')
figure(2), subplot(211)
y=fft(x), f=(0:length(y)-1'*fp/length(y)),
m=abs(y), semilogy(f,m), grid on, title('widmooryginalnego')
subplot(212),
z=fft(sq), f1=(0:length(z)-1'*fp/length(z)),
az=abs(z), semilogy(f1,az), gridon, title('widmo skwantyzowanego')
Wnioski:
Z pierwszej części sprawozdania wynika, że aby uniknąć aliasingu częstotliwość próbkowania powinna być dwa razy większa od częstotliwości sygnału. Wynika to z twierdzenia Kotielnikowa-Shannona. Gdy spełniony jest ten warunek częstotliwość próbkowanego sygnału można odczytać z wykresu widma fazowego.
Z drugiej części wynika, że kwantowanie sygnału jest związane z utratą części danych, co odbija się również na widmie fazowym tego sygnału w postaci szumu kwantyzacji. Każda wartość sygnału jest zaokrąglana do najbliższej wartości dyskretnej. Powstający wtedy błąd jest nazywany wyżej już wspomnianym szumem kwantyzacji. W celu zminimalizowania tego błędu należy zwiększyć liczbę bitów opisujących próbkę (nk w skrypcie).