STATLAB/Zadanie zaliczeniowe3: Różnice pomiędzy wersjami
m |
m (→1. Dane) |
||
Linia 1: | Linia 1: | ||
[[ZasadyZaliczenia]]/Projekt_1 | [[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ć od Jana Mąki (jmaka@fuw.edu.pl). W razie wątpliwości będziemy prosili o obronę projektu. | ||
+ | |||
===1. Dane === | ===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 <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.) | 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.) |
Wersja z 12:28, 10 lis 2017
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ć od Jana Mąki (jmaka@fuw.edu.pl). W razie wątpliwości będziemy prosili o obronę projektu.
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
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?
ZasadyZaliczenia/Projekt_1