Od numeru X rozpoczynam cykl wykładów poświęconych syntezie i przetwarzaniu dźwieku. Kilka pierwszych służy przypomnieniu podstawowych pojęć z fizyki (akustyki) potrzebnych w dalszych wykładach.
Rezonator Helmholtza.
DŁUGOŚĆ TRANSFORMACJI I NAKŁADKOWANIE.
Transformację Fouriera przeprowadzamy na grupach liczb określonej długości. Długość ta (ang.: FFT size) wybierana jest przez użytkownika arbitralnie, jako efekt kompromisu pomiędzy dokładnością, a szybkością działania (imwięcej liczb – tym wolniej). Mówimy więc, że transformacja jest na przykład 512-punktowa, 65536-punktowa etc. W praktyce dla ogólnego zorientowania się w strukturze dźwieku wystarcza przeważnie transformacja 1024-punktowa, zaś dla dokładniejszej analizy (zwłaszcza, jeśli nie musimy jej dokonywać na bieżąco) – 65536-punktowa. Im większa długość, tym większa rozdzielczość częstotliwościowa widma, za to transformacja jest rzadziej obliczana. Mówimy więc, że zyskując na rozdzielczości częstotliwościowej, tracimy na rozdzielczości czasowej. Konflikt tych dwóch wymagań może zostać złagodzony przez zastosowanie tzw. nakładkowania.
Kiedy analizujemy przebieg w czasie rzeczywistym, do analizy pobierane są próbki o stałej długości (na przykład 1024), w stałych odstępach czasu. Jeżeli te odstępy są mniejsze niż czas trwania próbek, mamy do czynienia z tzw. nakładkowaniem. Nakładkowanie zwiększa rozdzielczość czasową, za to wymaga większej mocy obliczeniowej, toteż wybór jego wielkości jest także efektem kompromisu pomiędzy dokładnością a dostępną mocą obliczeniową. Jeśli jednak dokonując analizy godzimy się poczekać na rezultat – możemy zastosować zarówno długie odcinki jak i wysoki współczynnik nakładkowania otrzymując zarówno dużą dokładnośc czasową jak i częstotliwościową. Stopień nakładkowania wyrażony jest przeważnie w procentach.
TRANSFORMACJA RZECZYWISTA I ZESPOLONA.
Transformacja Fouriera (a także jej warianty DFT oraz FFT) w swojej ogólnej postaci operuje na liczbach zespolonych. Zarówno więc oryginał (czarne słupki) jak i transformata (białe) mogą być liczbami zespolonymi. Jeżeli interesują nas tylko wartości rzeczywiste, część urojoną po prostu można pominąć (może to nieco uprościć obliczenia). Wersję zespoloną transformaty Fouriera przedstawia poniższy rysunek. Jako przykład wybrałem Szybką Transformację Fouriera (FFT) ze względu na jej powszechne zastosowanie.
UWAGA: Ze względu na przejrzystość rysunku zarówno ilość słupków jak i ich wysokość są całkiem dowolne i nie reprezentują żadnych sensownych wartości.
INTERPRETACJA FIZYCZNA – DŹWIĘK.
Dla ludzi zajmujących się dźwiękiem szczególnie interesująca jest fizyczna interpretacja transformacji Fouriera. Ilustracją takiej interpretacji jest także powyższy rysunek. Część rzeczywista oryginału to po prostu amplitudy kolejnych próbek dźwięku. Część urojoną można w praktyce pominąć, to znaczy przyjąć, że jej wszystkie jej wartości równe są zeru (można tak uczynić, ponieważ próbki pobierane są równomiernie; gdyby nie były popierane w równych odstępach czasu (na przykład występowałby tzw. „jitter” – cześć zespolona wyrażałaby wówczas odchylenia fazy kolejnych próbek). Po stronie transformaty część rzeczywista wyraża amplitudy kolejnych harmonicznych, zaś część urojona ich fazy. Ponieważ ucho ludzkie w procesie rozpoznawania barwy nie reaguje na fazę dźwięku, a jedynie na jego skład widmowy, przeważnie więc interesuje nas tylko część rzeczywista transformaty – widmo dźwieku.
ANALIZA PRZEBIEGÓW NIEOKRESOWYCH - WYBÓR OKNA..
W praktyce muzycznej mamy do czynienia z dźwiekami zarówno o charakterze okresowym jak i nieokresowym. Dźwięki instrumentów o określonej wysokości także zresztą nie są dokładnie okresowe (można powiedzieć, że są quasi-okresowe). Faza narastania dźwięku, dźwięki instrumentów perkusyjnych, a także dźwięki analizowane przez dłuższy okres czasu są praktycznie zupełnie nieokresowe. Z takimi przebiegami mamy także do czynienia, kiedy dokonujemy analizy w czasie rzeczywistym dzieląc mechanicznie dźwięk na odcinki równej długości. Analiza harmoniczna tego rodzaju dźwięków nieokresowych jest również możliwa; aby jednak wykonać ją prawidłowo trzeba podjąć pewne środki ostrożności.
W pewnym uproszczeniu można powiedzieć, że transformacja Fouriera zastosowana do przebiegu nieokresowego „traktuje go” tak, jakby był on jednym okresem nieskończonego przebiegu okresowego. Może to być źródłem poważnych błędów, których powstawanie wyjaśnia poniższy rysunek.
Ilustruje to prosty przykład. Jeżeli z sinusoidy (a) wytniemy do analizy fragment tak, jak to pokazuje rysunek (b), to jego widmo zostanie obliczone prawidłowo, jeśli zaś tak, jak na rysunku (c), to widmo obliczone zostanie błędnie, jak to widać na prawej części rysunku. Błędy powstają dlatego, że nieciągłości („skoki”) w miejscu cięcia traktowane są jako element analizowanego przebiegu (Jak to widać na rysunkach widm energia, która dla fali sinusoidalnej powinna być skoncentrowana tylko na jednej częstości „ucieka” do innych częstotliwości; stąd też angielska nazwa zjawiska ucieków – leakage). Można powiedzieć obrazowo, że operacja transformacji „widzi” przebieg pokazany na rysunku (c), zamiast oryginalnego (a). Błędy takie można jednak zminimalizować przez użycie tzw. „funkcji okienkujących” omówionych w następnym rozdziale.
ANALIZA PRZEBIEGÓW NIEOKRESOWYCH - ŹRÓDŁA BŁĘDÓW.
FUNKCJE OKIENKUJĄCE.
Funkcje okienkujące (zwane popularnie „oknami” - okno Hamminga, okno Bartletta etc.) są to funkcje, przyjmujące wartości 0..1 w przedziale odpowiadającym badanemu przebiegowi. Dodatkowo są one skonstruowane tak, że ich wartość w środku tego przedziału wynosi 1, zaś na jego końcach równa jest zeru. Pomnożenie kolejnych wartości badanego przebiegu przez taką funkcję (zwane też „ważeniem” lub „przypisywaniem wag” poszczególnym próbkom) powoduje więc, że jego środek pozostaje niezmieniony zaś w kierunku brzegów jego wartości zmniejszają się aż do zera. Obrazowo mówiąc jest to „spłaszczenie” przebiegu na końcach, a więc w miejscach krytycznych dla powstawania omówionych w poprzednim rozdziale błędów. Oczywiście powstają w ten sposób pewne dodatkowe błędy, niemniej jednak wybierając właściwą funkcję, lub oglądając widmo z użyciem kilku funkcji pod rząd możemy przeważnie uzyskać lepsze efekty. Jakkolwiek z założenia wartości równe są jedności po środku przedziału i zerom na jego krańcach, to przebiech zmian pomiędzy nimi można różnie ukształtować – stąd wielość funkcji okienkujących. Każda z tych funkcji ma swoje zalety i wady, a tym samym obszary zastosowań. Poniższa tabelka podaje zestawienie najczęściej używanych funkcji okienkujących wraz z ich podstawowymi własnościami.
Oznaczenia: ! – bardzo dobre, + – dobre, 0 – średnie, – – złe.
NAZWA OKNA
Rozdzielczość
czestotl.Rozdzielczość
amplitudowaTłumienie
ucieków
Prostokątne
("boxcar")najgorsza
najlepsza
najgorsze
Hamminga
0
!
!
Hanninga
(van Hanna)0
0
0
Bartletta
0
0
0
Blackmanna
(Harrisa)0
+
!
Kaisera
0
0
-
UWAGI:
I na zakończenie – zabawna ciekawostka. Nazwa okna Hanninga wcale nie pochodzi od nazwiska „Hanning”, lecz od „van Hann” i została błędnie utworzona przez analogię do wczesniej znanego okna Hamminga.
[cdn]
[mc]