
STATLAB/Zadanie zaliczeniowe3: Różnice pomiędzy wersjami
m  | 
				|||
| (Nie pokazano 12 wersji utworzonych przez 2 użytkowników) | |||
| Linia 1: | Linia 1: | ||
| + | [[ZasadyZaliczenia]]/Projekt_1  | ||
| + | |||
| + | <br>  | ||
| + | <hr>  | ||
| + | Projekt proszę przygotować w postaci '''notebooka''' z opisem poszczególnych kroków i własnych przemyśleń. Gotowy projekt prosimy przesyłać do Jarosława Żygierewicza (jarekz@fuw.edu.pl). W razie wątpliwości będziemy prosili o obronę projektu.  | ||
| + | <hr>  | ||
===1. Dane ===  | ===1. Dane ===  | ||
| − | Poniżej   | + | Poniżej znajdują się linki do dwóch fragmentów utworów audio. Zapisane są w formacie wav. Pliki takie można wczytać do programu pythonowego za pomocą funkcji <tt>scipy.io.wavfile.read</tt>( [https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.io.wavfile.read.html dokumentacja] tej funkcji.)  | 
| − | [https://drive.google.com/  | + | [https://drive.google.com/file/d/1bcving2rqJxtFwB6l40DqGKcxKYzg3Jr/view?usp=sharing Candy_Dulfer_-_Lily_Was_Here.wav]  | 
| − | [https://drive.google.com/  | + | [https://drive.google.com/file/d/1CgOpkldAZnvd_zj1tGD572XLD3fDSIsJ/view?usp=sharing Rupert_Blaise_-_06_-_What_A_Wonderful_World.wav]  | 
| − | ===2. Analiza czasowa widma===  | + | ===2. Analiza czasowa widma: spektrogram===  | 
| − | Programistyczna część projektu polega na samodzielnej  implementacji spektrogramu: reprezentacji rozkładu energii sygnału w   | + | Programistyczna część projektu polega na samodzielnej  implementacji spektrogramu: reprezentacji rozkładu energii sygnału w dziedzinie czas-częstość. Idea tworzenia tej reprezentacji przedstawiona jest na poniższym rysunku.    | 
[[Plik:spectrogram.png|600px|thumb|center|Idea tworzenia spektrogramu]]  | [[Plik:spectrogram.png|600px|thumb|center|Idea tworzenia spektrogramu]]  | ||
| Linia 20: | Linia 26: | ||
Kod należy przygotować tak, aby łatwo było modyfikować:  | Kod należy przygotować tak, aby łatwo było modyfikować:  | ||
| − | * typ okna, jego długość i stopień nachodzenia okien.  | + | * '''okno''', '''N_okna''', '''N_wsp''',   czyli: typ okna, jego długość i stopień nachodzenia okien.  | 
| − | * zakres czasu i częstości wyświetlanej reprezentacji  | + | * zakres czasu i częstości wyświetlanej reprezentacji: <math> t_{min}, t_{max}, f_{min}, f_{max}</math>  | 
* ważne jest też wyświetlenie właściwych skal czasu i częstości  | * ważne jest też wyświetlenie właściwych skal czasu i częstości  | ||
* wersja bardziej rozwinięta powinna także wyświetlać rozkłady brzegowe mocy tj.:  | * wersja bardziej rozwinięta powinna także wyświetlać rozkłady brzegowe mocy tj.:  | ||
** wzdłuż osi poziomej moc sygnału w czasie  | ** wzdłuż osi poziomej moc sygnału w czasie  | ||
** wzdłuż osi pionowej widmo mocy z całego prezentowanego odcinka czasu  | ** wzdłuż osi pionowej widmo mocy z całego prezentowanego odcinka czasu  | ||
| + | wskazówka: można skorzystać z instrukcji w https://matplotlib.org/stable/tutorials/intermediate/arranging_axes.html; warto też zpoznać się z koncepcjami pracy z osiami i ich własnościami: https://matplotlib.org/stable/users/explain/axes/axes_intro.html  | ||
===3. Interpretacja wyniku===  | ===3. Interpretacja wyniku===  | ||
| − | * Analizę   | + | * Analizę spektrogramem wykonaj dla obu sygnałów i dla kilku różnych długości okien '''N_okna'''.  Zinterpretuj widoczne różnice.  | 
* Czy na podstawie takich spektrogramów jesteśmy w stanie odróżnić kiedy grał który instrument, lub kiedy był to głos ludzki?  | * Czy na podstawie takich spektrogramów jesteśmy w stanie odróżnić kiedy grał który instrument, lub kiedy był to głos ludzki?  | ||
* Czy dałoby się w ten sposób określić tony podstawowe?  | * Czy dałoby się w ten sposób określić tony podstawowe?  | ||
| + | |||
| + | ===4. Cochleogram: na bonus ===  | ||
| + | Zapoznać się z koncepcją cochleagramów (https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7251910&tag=1) i porównać mapy czas częstość uzyskane tą techniką z mapami uzyskanymi za pomocą spektrogramów dla Rupert_Blaise_-_06_-_What_A_Wonderful_World.wav.  | ||
| + | |||
| + | [[ZasadyZaliczenia]]/Projekt_1  | ||
Aktualna wersja na dzień 09:06, 13 gru 2023
ZasadyZaliczenia/Projekt_1
Projekt proszę przygotować w postaci notebooka z opisem poszczególnych kroków i własnych przemyśleń. Gotowy projekt prosimy przesyłać do Jarosława Żygierewicza (jarekz@fuw.edu.pl). W razie wątpliwości będziemy prosili o obronę projektu.
Spis treści
1. Dane
Poniżej znajdują się linki do dwóch fragmentów utworów audio. Zapisane są w formacie wav. Pliki takie można wczytać do programu pythonowego za pomocą funkcji scipy.io.wavfile.read( dokumentacja tej funkcji.)
Candy_Dulfer_-_Lily_Was_Here.wav
Rupert_Blaise_-_06_-_What_A_Wonderful_World.wav
2. Analiza czasowa widma: spektrogram
Programistyczna część projektu polega na samodzielnej implementacji spektrogramu: reprezentacji rozkładu energii sygnału w dziedzinie czas-częstość. Idea tworzenia tej reprezentacji przedstawiona jest na poniższym rysunku.
Spektrogram otrzymujemy w następujący sposób:
- Sygnał dzielimy na fragmenty o długości N_okna
 - Fragmenty mogą ale nie muszą na siebie nachodzić. Liczba próbek nachodzących niech będzie oznaczona N_wsp
 - Dla każdego fragmentu estymujemy widmo gęstości energii za pomocą periodogramu z okienkiem okno
 - Widma kolejnych fragmentów zapisujemy w macierzy numpy, tak, że i-ta kolumna zawiera widmo i-tego fragmentu
 - Macierz wykreśl przy pomocy funkcji pylab.imshow, podając zakresy poszczególnych osi przy użyciu parametru extent
 
Kod należy przygotować tak, aby łatwo było modyfikować:
- okno, N_okna, N_wsp, czyli: typ okna, jego długość i stopień nachodzenia okien.
 - zakres czasu i częstości wyświetlanej reprezentacji: [math] t_{min}, t_{max}, f_{min}, f_{max}[/math]
 - ważne jest też wyświetlenie właściwych skal czasu i częstości
 - wersja bardziej rozwinięta powinna także wyświetlać rozkłady brzegowe mocy tj.:
- wzdłuż osi poziomej moc sygnału w czasie
 - wzdłuż osi pionowej widmo mocy z całego prezentowanego odcinka czasu
 
 
wskazówka: można skorzystać z instrukcji w https://matplotlib.org/stable/tutorials/intermediate/arranging_axes.html; warto też zpoznać się z koncepcjami pracy z osiami i ich własnościami: https://matplotlib.org/stable/users/explain/axes/axes_intro.html
3. Interpretacja wyniku
- Analizę spektrogramem wykonaj dla obu sygnałów i dla kilku różnych długości okien N_okna. Zinterpretuj widoczne różnice.
 - Czy na podstawie takich spektrogramów jesteśmy w stanie odróżnić kiedy grał który instrument, lub kiedy był to głos ludzki?
 - Czy dałoby się w ten sposób określić tony podstawowe?
 
4. Cochleogram: na bonus
Zapoznać się z koncepcją cochleagramów (https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=7251910&tag=1) i porównać mapy czas częstość uzyskane tą techniką z mapami uzyskanymi za pomocą spektrogramów dla Rupert_Blaise_-_06_-_What_A_Wonderful_World.wav.
ZasadyZaliczenia/Projekt_1