import funkcje_do_lab4 as f4
f4.hide()
CEL:
Wykreślanie sygnałów w środowisku Python.
ZADANIA:
1. Wykreślanie próbkowanych sygnałów sinusoidalnych w odpowiedniej skali czasowej:
a. Napisz skrypt definiujący N=2000 próbek sygnału harmonicznego x(t)=Asin(2pifx*t), gdzie A=10, fx=10Hz, o częstotliwości próbkowania fs=1000Hz. Wykreśl ten sygnał za pomocą polecenia plot (patrz: plot?).
b. Na jednym wykresie, wyświetl sumę trzech sinusoid o amplitudzie równej A=10 i następujących częstotliwościach: fx1=10Hz, fx2=20Hz, fx3=25Hz oraz o częstotliwości próbkowania fs=1000Hz. Wyświetl pierwszych N=2000 próbek sumy zdefiniowanych sinusoid.
OCZEKIWANE WYNIKI:
%pylab inline
pylab.rcParams['figure.figsize'] = (14.0, 7.0)
print 'Zadanie a.'
f4.task_1a()
print 'Zadanie b.'
f4.task_1b()
2. Wczytaj ecg_mit.mat sygnał dostępny w paczce Pliki sygnałów ze strony przedmiotu Przetwarzanie sygnałów.
Wykreśl pierwszych N=2000 próbek sygnału EKG w odpowiedniej skali czasu (w sekundach) i amplitudy (w mV), biorąc pod uwagę, że częstotliwość próbkowania wynosi fs=360 Hz oraz fakt, że do próbkowania i kodowania sygnalu ECG zarejestrowanego w zakresie napięcia -5mV i +5mV zastosowano 11-bitowy przetwornik analogowo-cyfrowy (ang. Analog to Digital Converter - A/D).
OCZEKIWANE WYNIKI:
f4.task_2()
3. Napisz funkcję quantize_ecg(vec,b), która symuluje przetwornik A/D konwertujący sygnał wejściowy do mniejszej liczby bitów. Parametr vec jest wektorem zawierającycm źródłowy 11-bitowy sygnał EKG, natomiast b jest parametrem wskazującym o ile bitów zmniejsza się liczba bitów kodujących próbkę sygnału ECG, np. jeśli b=2 funkcja powinna utworzyć sygnał cyfrowy EKG, którego próbki są kodowane 9 bitami (np. 11 - b = 9).
OCZEKIWANE WYNIKI:
from scipy.io import loadmat
x = loadmat('ecg_mit.mat')['ecg_mit']
ecg = reshape(x, len(x))
ecg1 = ecg[:2000]
print 'Wykres dla b = 1:'
b = 1
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla b = 2:'
b = 2
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla b = 3:'
b = 3
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla b = 4:'
b = 4
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla b = 5:'
b = 5
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla b = 6:'
b = 6
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()
print 'Wykres dla = 7:'
b = 7
new_ecg = f4.quantize_ecg(ecg1,b)
figure()
plot(new_ecg)
title('Liczba bitow kodowania jednej probki %d'%(11-b))
show()