Ćwiczenia 1.1: Różnice pomiędzy wersjami

Z Brain-wiki
 
(Nie pokazano 10 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
 +
[[Analiza_sygnałów_-_ćwiczenia]]/Sygnały
 +
 
=Sygnał jako wekotr=
 
=Sygnał jako wekotr=
  
Linia 33: Linia 35:
 
Widać, że taka reprezentacja świetnie nadaje się do przedstawiania sygnałów dyskretnych (Sygnały ciągłe można rozumieć jako wektory w nieskończenie wymiarowej przestrzeni).  
 
Widać, że taka reprezentacja świetnie nadaje się do przedstawiania sygnałów dyskretnych (Sygnały ciągłe można rozumieć jako wektory w nieskończenie wymiarowej przestrzeni).  
  
===Polecenie===
+
===Zadanie 1===
 
Przedstaw wektor <tt>[0,0,1,1,1,0,0,0,1,1,1,0,0)</tt>
 
Przedstaw wektor <tt>[0,0,1,1,1,0,0,0,1,1,1,0,0)</tt>
  
Linia 43: Linia 45:
 
Tak samododajemy sygnały: punkt po punkcie.
 
Tak samododajemy sygnały: punkt po punkcie.
  
 +
===Zadanie 2===
 
Proszę:
 
Proszę:
 
* dodać sygnały:   
 
* dodać sygnały:   
Linia 53: Linia 56:
  
 
==Mnożenie przez liczbę==
 
==Mnożenie przez liczbę==
Mnożenie wektora przez liczbę (skalar) robimy mnożąc kazdą ze współrzędnych przez tą liczbę, np.: 5*(1, 2)  = (5, 10).
+
Mnożenie wektora przez liczbę (skalar) robimy mnożąc kazdą ze współrzędnych przez tą liczbę, np.:
 +
: 5*(1, 2)  = (5, 10).
 
Analogicznie mnożenie sygnału przez liczbę polega na pomnożeniu wartości każdej próbki przez tę liczbę.  
 
Analogicznie mnożenie sygnału przez liczbę polega na pomnożeniu wartości każdej próbki przez tę liczbę.  
 
+
===Zadanie3===
 
* przedstaw przemnożenie sygnału <math>\sin(2 \pi 10 t)</math> przez 5.
 
* przedstaw przemnożenie sygnału <math>\sin(2 \pi 10 t)</math> przez 5.
  
 
==Iloczyn skalarny==
 
==Iloczyn skalarny==
 +
Iloczyn skalarny liczymy mnożąc przez sibie odpowiadające sobie współrzędne i dodając powstałe iloczyny:
 +
 +
{| class="wikitable"
 +
|-
 +
| x1
 +
| -2
 +
| -2
 +
| 2
 +
| -1
 +
| -2
 +
|
 +
|-
 +
| x2
 +
| -1
 +
| -1
 +
| 1
 +
| 1
 +
| 0
 +
|
 +
|-
 +
| *
 +
| 2
 +
| 2
 +
| 2
 +
| -1
 +
| 0
 +
| x*y = 5
 +
|}
 +
===Zadanie 4===
 +
* Proszę zaimplementować to obliczenie za pomocą mnożenia i sumowania w pętli, a następnie za pomocą <tt>np.dot</tt>
 +
 
==Iloczyn skalarny jako miara podobieństwa==
 
==Iloczyn skalarny jako miara podobieństwa==
 +
Przypomnijmy, że iloczyn skalarny można obliczyć tak:
 +
: <math>x \cdot y  = |x| |y| \cos( \phi) </math>
 +
czyli:
 +
: <math>\frac{x}{|x|} \cdot \frac{y}{|y|}  =  \cos( \phi) </math>
 +
Widać, że po znormalizowaniu wektorów iloczyn skalarny jest równy <math>\cos</math> kąta pomiędzy wektorami. Gdy wektory są ortogonalne to jest 0, jeśli są równoległe to jest 1, w pozostałych przypadkach ma wartości pomiędzy -1, a 1 . Jest to miara podobieństwa między wektorami.
 +
===Zadanie 5===
 +
* Znormalizuj, oblicz iloczyny skalarne i zilustruj wektory:
 +
** x1 = (-2 0 2 2 0 -2 -2 0 2 2)
 +
** x2 = (-2 0 1 2 0 -1 -2 0 1 2)
 +
 +
* Znormalizuj, oblicz iloczyny skalarne i zilustruj wektory:
 +
** x1 = (-2 0 2  2  0 -2 -2 0 2 2)
 +
** x2 = ( 1 2 0 -1 -2  0  1  2 0 -1)
 +
 +
[[Analiza_sygnałów_-_ćwiczenia]]/Sygnały

Aktualna wersja na dzień 15:16, 10 lis 2016

Analiza_sygnałów_-_ćwiczenia/Sygnały

Sygnał jako wekotr

Jak to rozumieć?

W najprostszej wersji znanej ze szkoły wektory rozumiane są tak jak na tym rysunku:

Ilustracja wektora

Koncepcje wektora można uogólnić i rozumieć go jako uporządkowany ciąg liczb, czyli współrzędnych wektora:

Wektor na płaszczyźnie kartezjańskiej przedstawiający położenie punktu A o współrzędnych (2, 3).

Łatwo sobie wyobrazić, że tą koncepcję można uogólnić na dowolną liczbę współrzędnych (wymiarów). Wtedy trudniej jest przedstawić go w postaci strzałki, ale możemy przedstawić go np. tak, że kolejne współrzędne rysyjemy jako punkty na dwuwymiarowej płaszczyźnie (nr współrzędnej, wartość współrzędnej):

import pylab as py
import numpy as np

A = np.array([2,3])
py.subplot(2,1,1)
py.plot(A,'o')
py.xlim([-0.1, 1.1])
py.ylim([0,3.1])
py.ylabel('Wartość')

py.subplot(2,1,2)
py.stem(A)
py.xlim([-0.1, 1.1])
py.ylim([0,3.1])
py.ylabel('Wartość')
py.xlabel('Nr. próbki')
py.show()

Widać, że taka reprezentacja świetnie nadaje się do przedstawiania sygnałów dyskretnych (Sygnały ciągłe można rozumieć jako wektory w nieskończenie wymiarowej przestrzeni).

Zadanie 1

Przedstaw wektor [0,0,1,1,1,0,0,0,1,1,1,0,0)

Dodawanie sygnałów

Wektory dodajemy sumując wartości odpowiadających sobie współrzędnych np.:

(0,1) + (1,0) = (1,1)

Tak samododajemy sygnały: punkt po punkcie.

Zadanie 2

Proszę:

  • dodać sygnały:
    • x1 = (1,2,2,1,3,2,1)
    • x2 = (2,1,2,1,2,1,2)
  • wypisać wynik i zilustrować za pomocą subplotów i funkcji stem
  • wygenerowa dwa sygnały sin próbkowane 1000Hz, o czasie trwania 1s, i częstościach odpowiednio 10 i 20 Hz
  • zilustruj oba sygnały i wynik ich dodawania

Mnożenie przez liczbę

Mnożenie wektora przez liczbę (skalar) robimy mnożąc kazdą ze współrzędnych przez tą liczbę, np.:

5*(1, 2) = (5, 10).

Analogicznie mnożenie sygnału przez liczbę polega na pomnożeniu wartości każdej próbki przez tę liczbę.

Zadanie3

  • przedstaw przemnożenie sygnału [math]\sin(2 \pi 10 t)[/math] przez 5.

Iloczyn skalarny

Iloczyn skalarny liczymy mnożąc przez sibie odpowiadające sobie współrzędne i dodając powstałe iloczyny:

x1 -2 -2 2 -1 -2
x2 -1 -1 1 1 0
* 2 2 2 -1 0 x*y = 5

Zadanie 4

  • Proszę zaimplementować to obliczenie za pomocą mnożenia i sumowania w pętli, a następnie za pomocą np.dot

Iloczyn skalarny jako miara podobieństwa

Przypomnijmy, że iloczyn skalarny można obliczyć tak:

[math]x \cdot y = |x| |y| \cos( \phi) [/math]

czyli:

[math]\frac{x}{|x|} \cdot \frac{y}{|y|} = \cos( \phi) [/math]

Widać, że po znormalizowaniu wektorów iloczyn skalarny jest równy [math]\cos[/math] kąta pomiędzy wektorami. Gdy wektory są ortogonalne to jest 0, jeśli są równoległe to jest 1, w pozostałych przypadkach ma wartości pomiędzy -1, a 1 . Jest to miara podobieństwa między wektorami.

Zadanie 5

  • Znormalizuj, oblicz iloczyny skalarne i zilustruj wektory:
    • x1 = (-2 0 2 2 0 -2 -2 0 2 2)
    • x2 = (-2 0 1 2 0 -1 -2 0 1 2)
  • Znormalizuj, oblicz iloczyny skalarne i zilustruj wektory:
    • x1 = (-2 0 2 2 0 -2 -2 0 2 2)
    • x2 = ( 1 2 0 -1 -2 0 1 2 0 -1)

Analiza_sygnałów_-_ćwiczenia/Sygnały