{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kolokwium 2 \n", "11.01.2020\n", "\n", "### Proszę zmienić nazwę tego notebooka na następującą postać: kolokwiumAS_2019_2_numer_indeksu.ipynb, wpisując we właściwym miejscu własny numer indeksu.\n", "\n", "_Rozwiązania proszę odesłać na adres jarekz@fuw.edu.pl_\n", "\n", "\n", "\n", "Funkcje pomocnicze." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib notebook\n", "import matplotlib\n", "import numpy as np\n", "import matplotlib.pylab as plt\n", "import scipy.signal as ss" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [], "source": [ "def charkterystyki(a,b,f,T,Fs):\n", " t = np.arange(-T, T, 1/Fs)\n", " \n", " f, h = ss.freqz(b, a, worN= f, fs = Fs) \n", " m = np.abs(h)\n", " \n", " f, grupowe = ss.group_delay((b,a), w=f, fs = Fs)\n", " \n", " fig = plt.figure()\n", " plt.subplot(2,2,1)\n", " plt.title('moduł transmitancji')\n", " plt.plot(f,20*np.log10(m))\n", " plt.ylabel('[dB]')\n", " plt.ylim([-20, 1])\n", " plt.grid(True)\n", " \n", " plt.subplot(2,2,3)\n", " plt.title('opóźnienie grupowe')\n", " plt.plot(f,grupowe)\n", " plt.ylabel('próbki')\n", " plt.xlabel('Częstość [Hz]')\n", " plt.grid(True)\n", " plt.ylim([0, np.max(grupowe)+1])\n", " \n", " plt.subplot(2,2,2)\n", " plt.title('odpowiedź impulsowa')\n", " x = np.zeros(len(t))\n", " x[len(t)//2] = 1\n", " y = ss.lfilter(b,a,x)\n", " plt.plot(t, x)\n", " plt.plot(t, y)\n", " plt.xlim([-T/2,T])\n", " plt.grid(True)\n", " \n", " plt.subplot(2,2,4)\n", " plt.title('odpowiedź schodkowa')\n", " s = np.zeros(len(t))\n", " s[len(t)//2:] = 1\n", " ys = ss.lfilter(b,a,s) \n", " plt.plot(t, s)\n", " plt.plot(t, ys)\n", " plt.xlim([-T/2,T])\n", " plt.xlabel('Czas [s]')\n", " plt.grid(True)\n", " \n", " fig.subplots_adjust(hspace=.5)\n", " plt.show()\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Zadanie 1. Filtrowanie pików R. \n", "Proszę wczytać sygnał EKG z pliku:\n", "https://www.fuw.edu.pl/~jarekz/KOLOKWIUM_AS/EKG.bin\n", "\n", "Jest on próbkowany 128 Hz i ma dtype '