У мене є мікрофони, які вимірюють звук у часі у багатьох місцях у просторі. Усі звуки, що записуються, походять з одного місця в просторі, але через різні шляхи від точки джерела до кожного мікрофона; сигнал буде (час) зміщеним і спотвореним. Апріорні знання використовувались для того, щоб компенсувати тимчасові зрушення як можна краще, але все ж є певний часовий зсув у даних. Чим ближче положення вимірювань, тим сильніше схожі сигнали.
Мені цікаво автоматично класифікувати вершини. Під цим я маю на увазі, що я шукаю алгоритм, який "дивиться" на два сигнали мікрофона на графіку нижче і "розпізнає" з положення та форми хвилі, що є два основних звуки та повідомляє про свої часові позиції:
sound 1: sample 17 upper plot, sample 19 lower plot,
sound 2: sample 40 upper plot, sample 38 lower plot
Для цього я планував зробити розширення Чебишева навколо кожного піку і використовувати вектор коефіцієнтів Чебишева як вхід до алгоритму кластера (k-означає?).
Як приклад, наводяться частини часових сигналів, виміряні в двох сусідніх положеннях (синій), апроксимованих 5-ти серійним Чебишевим рядом на 9 зразків (червоний) навколо двох піків (сині кола):
Наближення досить непогані :-).
Однак; коефіцієнти Чебишева для верхньої ділянки:
Clu = -1.1834 85.4318 -39.1155 -33.6420 31.0028
Cru =-43.0547 -22.7024 -143.3113 11.1709 0.5416
А коефіцієнти Чебишева для нижньої ділянки такі:
Cll = 13.0926 16.6208 -75.6980 -28.9003 0.0337
Crl =-12.7664 59.0644 -73.2201 -50.2910 11.6775
Я хотів би бачити Clu ~ = Cll і Cru ~ = Crl, але, схоже, це не так :-(
Можливо, є ще одна ортогональна основа, яка більше підходить у цьому випадку?
Будь-яка порада щодо того, як продовжувати роботу (я використовую Matlab)?
Заздалегідь дякую за будь-які відповіді!