Mam mikrofony mierzące dźwięk w czasie w wielu różnych pozycjach w przestrzeni. Wszystkie nagrywane dźwięki pochodzą z tej samej pozycji w przestrzeni, ale z powodu różnych ścieżek od punktu źródłowego do każdego mikrofonu; sygnał zostanie (czas) przesunięty i zniekształcony. Wiedza a priori została wykorzystana do skompensowania przesunięć czasowych tak dobrze, jak to możliwe, ale nadal istnieje pewne przesunięcie czasowe w danych. Im bliżej pozycji pomiarowych, tym bardziej podobne są sygnały.
Jestem zainteresowany automatyczną klasyfikacją szczytów. Rozumiem przez to, że szukam algorytmu, który „patrzy” na dwa sygnały mikrofonowe na poniższym wykresie i „rozpoznaje” z pozycji i przebiegu, że są dwa główne dźwięki i podaje ich pozycje czasowe:
sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot
W tym celu planowałem zrobić ekspansję Czebyszewa wokół każdego szczytu i użyć wektora współczynników Czebyszewa jako danych wejściowych do algorytmu klastra (k-średnich?).
Jako przykład podajemy części sygnałów czasowych zmierzonych w dwóch pobliskich pozycjach (niebieskich) aproksymowanych pięciokrotnie serią Czebyszewa na 9 próbkach (czerwonych) wokół dwóch pików (niebieskie kółka):
Przybliżenia są całkiem dobre :-).
Jednak; współczynniki Czebyszewa dla górnej powierzchni wynoszą:
Clu = -1.1834 85.4318 -39.1155 -33.6420 31.0028
Cru =-43.0547 -22.7024 -143.3113 11.1709 0.5416
A współczynniki Czebyszewa dla dolnego wykresu wynoszą:
Cll = 13.0926 16.6208 -75.6980 -28.9003 0.0337
Crl =-12.7664 59.0644 -73.2201 -50.2910 11.6775
Chciałbym widzieć Clu ~ = Cll i Cru ~ = Crl, ale wydaje się, że tak nie jest :-(.
Może istnieje inna ortogonalna podstawa, która jest bardziej odpowiednia w tym przypadku?
Wszelkie porady dotyczące dalszego postępowania (korzystam z Matlaba)?
Z góry dziękuję za wszelkie odpowiedzi!