Ćwiczenia 1.1: Różnice pomiędzy wersjami
(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). | ||
− | === | + | ===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
Spis treści
Sygnał jako wekotr
Jak to rozumieć?
W najprostszej wersji znanej ze szkoły wektory rozumiane są tak jak na tym rysunku:
Koncepcje wektora można uogólnić i rozumieć go jako uporządkowany ciąg liczb, czyli współrzędnych wektora:
Ł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