〰️ Вейвлет-Перетворення — Хаара та Добеші
Розкладіть сигнал за допомогою Дискретного Вейвлет-Перетворення (ДВП). Фільтри Хаара та Добеші-4 розбивають сигнал на коефіцієнти апроксимації і деталей.
Про цю симуляцію
Ця симуляція виконує пірамідальний алгоритм Малла на синтетичному сигналі з 256 відліків, багаторазово згортаючи його з парою фільтрів низьких/високих частот і проріджуючи вдвічі, щоб пошарово відокремити коефіцієнти апроксимації та деталей. Перемикання між банками фільтрів Хаара та Добеші-4, а також між синусоїдним, чирп-, ступінчастим і зашумленим сигналами, наочно показує, як гладкість фільтра та структура сигналу формують результуючу скалограму.
🔬 Що показано
Початкова хвильова форма (синім) з накладеною на неї реконструкцією за оберненим ДВП (бурштиновим), над кольоровою скалограмою, рядки якої показують величини коефіцієнтів деталей на кожному рівні розкладання — або, після перемикання виду, окремі накладені графіки апроксимації та кожної смуги деталей.
🎮 Як користуватись
Оберіть вейвлет Хаара чи Добеші-4 та тип сигналу у спадних меню, перетягуйте повзунки рівнів розкладання й частоти сигналу, підвищуйте поріг деталей, щоб відкинути малі коефіцієнти й спостерігати зростання похибки реконструкції, натисніть Перебудувати для перерахунку та Перемкнути вигляд (або клавішу I), щоб перемкнутись між скалограмою та рядковим відображенням коефіцієнтів.
💡 Чи знали ви?
На відміну від перетворення Фур'є, яке використовує те саме фіксоване вікно на кожній частоті, неявне вікно вейвлет-перетворення автоматично звужується на високих частотах і розширюється на низьких — саме тому чирп-сигнал (частота якого зростає з часом) підсвічує різні рівні скалограми в різні моменти замість того, щоб розмазуватись по всій осі часу.
Часті питання
Чому перемикання на ступінчастий сигнал одразу підсвічує стільки рівнів деталей?
Різкий розрив містить енергію в дуже широкому діапазоні частот, тож фільтр високих частот g отримує помітні коефіцієнти деталей саме навколо точки стрибка на кожному рівні розкладання — саме тому скалограма показує яскраву вертикальну смугу в місці стрибка, що перетинає всі рядки.
У чому насправді різниця між вибором Хаара та Добеші-4?
Двовідводовий фільтр Хаара — це просто пара усереднення/різниці, тож він миттєво реагує на різкі зміни, але дає коефіцієнти деталей із «блочним» виглядом; чотиривідводовий фільтр Добеші-4 має більше нульових моментів, даючи гладші, більш розподілені коефіцієнти для того самого сигналу — порівняйте обидва на синусоїдному сигналі, щоб побачити візуальну різницю в гладкості коефіцієнтів.
Чому «Energy (recon)» збігається з «Energy (orig)» на панелі статистики?
«Energy (recon)» — це енергія сигналу, який справді виходить з оберненого перетворення: симулятор виконує синтезувальну банку фільтрів (спряжену до кроку аналізу, що є точним, оскільки Хаар і Добеші — ортогональні банки фільтрів) і вимірює відновлені відліки. При порозі деталей 0 ця реконструкція точна, тож енергія збігається, а показник «Recon error (rel. L2)» перебуває на рівні машинної точності — порядку 1e-16. Теорема Парсеваля — причина того, чому коефіцієнти взагалі несуть ту саму енергію, що й сигнал; показник — це доказ, а не припущення.
Що повзунок «Detail threshold» робить із реконструкцією?
Він жорстко порогує коефіцієнти деталей: кожен коефіцієнт, менший за цей відсоток від найбільшого, обнуляється перед виконанням оберненого перетворення. При 0% нічого не відкидається, і перетворення туди-назад без втрат (похибка ≈ 1e-16). Підвищуючи поріг, ви відкидаєте інформацію — показник «Detail coeffs zeroed» зростає, похибка реконструкції зростає від 1e-16 до кількох відсотків і більше, а бурштинова крива реконструкції помітно відходить від синього оригіналу. Цей компроміс — зберегти кілька великих коефіцієнтів, відкинути безліч дрібних — це саме те, як працюють вейвлет-стиснення й вейвлет-шумозаглушення.
Чому збільшення рівнів розкладання перестає впливати після певної межі?
Кожен рівень удвічі скорочує довжину апроксимації через проріджування, і цикл у коді зупиняється, коли залишок апроксимації стає закоротким для фільтрації — тож після приблизно log₂(256)=8 рівнів розкладати вже нічого, тому повзунок рівнів обмежений значно нижче цього значення.
Чому зашумлений синусоїдний сигнал усе одно показує чіткий візерунок у нижніх рядках скалограми?
Випадковий шум розподілений приблизно рівномірно по всіх частотах і проявляється переважно на найдрібнішому рівні деталей (найвищий рядок, найкоротший масштаб), тоді як справжня періодична структура синусоїди концентрує енергію на грубіших рівнях, що відповідають її частоті — це розділення за масштабом і є тим самим принципом, який використовує вейвлет-шумозаглушення.