Преобразуване с вълнички на Хаар

Определението на преобразуването с вълнички на Хаар е по-долу. Има много начини, по които преобразуването може да се изпише. Определението тук е изведено от следния пример за разлагането на един кратък аудио сигнал.

Пример на преобразуване с вълнички на Хаар от осмо ниво на един сигнал

Вземи следния примерен сигнал.

Един примерен сигнал

Този примерен сигнал е сумата на две прости синусоиди, една от които е с честота 5 Hz и фаза равна на нула (т.e., вълната започва със стойност нула при проба нула) и другата от които е с честота 9 Hz и е изместена надясно с 10 проби. Пробната честота е 256 Hz и графиката по-горе показва 256 проби (1 секунда) от сигнала.

Нека стойността на този сигнал при проба k е x(k). Нека K = 256 и, за 1 секунда, k = 0, 1, …, K – 1. Изчисли

Изчисляване на преобразуването с вълнички на Хаар от ниво 1

за j = 0, 1, …, K/2 и k = 2j + 1. Изчисленият сигнал a1(j) е едно средно аритметично на x(k). Изглажда сигнала x(k) и премахва част от променливостта между всеки две съседни проби. Също така и компресира сигнала x(k) във времето. Сигнала b1(j) съдържа колебанията, които сигнала a1(j) премахва. Следното е графиката на a1(j).

Тенденцията на преобразуването с вълнички на Хаар от ниво 1 на примерния сигнал

Забележи следното:

  • x(k) може да бъде възстановен от сигналите a1(j) и b1(j)

Възстановяване на сигнала от преобразуването с вълнички на Хаар от ниво 1

  • a1(j) и b1(j) запазват енергията на сигнала x(k) (с изключение на потенциални проблеми свързани с квантуването; виж Дитеринг), в смисъл, че

Преобразуването с вълнички на Хаар запазва енергията на сигнала

  • Често, много от стойностите на b1(j) са сравнително малки. Този факт се използва по-долу. По принцип, според теоремата за дискретизацията, един сигнал дискретизиран с пробната честота fs може да представи честотите между 0 и fs/2. Колебанията ще са големи само ако сигнала съдържа високи честоти. Само честотите над fs/4 с амплитуда на върха равна на 1, например, ще съдържат колебания, които са по-големи от 1.

Преобразуването x(k) → (a1(j) | b1(j)) е преобразуването с вълнички на Хаар от ниво 1. За да изчислим преобразуването с вълнички на Хаар от ниво 2, ще вземем преобразуването с вълнички на Хаар от ниво 1 от сигнала a1(j).

  • Ако сигнала x(k) е с дължина K, тогава сигнала a1 е с дължина K/2 и сигнала a2 е с дължина K/4.
  • Енергията на a1 е запазена в a2 и b2.
  • a1 може да бъде възстановен от сигнала a2 и b2 както по-горе. Тогава x(k) може да бъде възстановен от a2, b2 и b1. Преобразуването с вълнички на Хаар от ниво 2 може да бъде обозначено с x → (a2 | b2 | b1).

Следното е графиката на примерния сигнал a2, който компресира оригиналния сигнал още повече.

Тенденция на преобразуването с вълнички на Хаар от ниво 2 на примерния сигнал

Тъй като нашият примерен сигнал е от 256 точки, този процес може да продължи до ниво 8. При ниво 8, a8 и b8 ще се състоят от по една единствена точка. Сигналът ще бъде компресиран до една точка.

Определение на преобразуването с вълнички на Хаар

Ако сигналът x(k) е с дължина K = 2N за едно естествено число N, преобразуването с вълнички на Хаар от ниво на x(k) е (aN | bN | bN-1 | … | b1), където

Определение на преобразуването с вълнички на Хаар от ниво 1

за j = 0, 1, …, K/2 и k = 2j + 1, and

Определение на преобразуването с вълнички на Хаар от ниво n

за n = 2, 3, …, N; i = 0, 1, …, K / 2n; и j = 2i + 1.

Отбелязваме, както преди, че

Възстановяване на сигнала от преобразуването с вълнички на Хаар от ниво n

Вълнички на Хаар

Един друг начин, по който можем да получим един подобен резултат, е да изчислим произведението на сигнала x(k) с множеството от функции описани по-долу. За да изчислим aN в определението по-горе, която се състои от едно единствено число, изчисли сумата на произведението на x(k) с

Последното ниво на вълничките на Хаар за тенденцията

Използваме индекса "a" за да покажем, че тази функция се използва за да се изчисли частта "a" на преобразуването с вълнички на Хаар. Използвай следните две функции за да изчислиш aN-1, която се състои от две числа.

Едно примерно определение на предпоследното ниво на тенденциите с вълничките на Хаар

По общо, aN-n за нивото N – n на преобразуването може да се изчисли с 2n на брой функции (n=0, 1, …, N)

Общо определение на тенденцията във вълничките на Хаар

За да разбереш това, обърни внимание на следните графики на ψa8, ψa7 и ψa6 от примера по-горе

Графики на тенденциите във вълничките на Хаар от ниво N

Графики на тенденциите във вълничките на Хаар

Графики на тенденциите във вълничките на Хаар

Само малко по-трудно е да се определят функциите, които могат да се използват за да се изчислят стойностите на b. Например

Определение на колебанията при вълничките на Хаар

n = 1, 2, …, N. Смени n и N-n в последната формула за да получиш един резултат, който прилича на определението на ψa. Графиките на ψb са доста подобни на графиките на ψa.

Тези видове функции често се определят (по-общо и в недискретизираното време) с

Недискретизирано определение на вълничките на Хаар

за целите числа n = 0,1, … и m=0, 1, …, 2n-1. Това са вълничките на Хаар. ψ(x) се нарича вълничката майка. Избирането на стойността ψ(0.5) = 0 има недостатъци, но това е извън обхвата на тази тема.

Тези функции са ортогонални, защото

Ортогоналност на вълничките на Хаар

Тези функции ще станат и ортонормални, ако вместо горното определение използваме

Ортонормалност на вълничките на Хаар

Това определение се среща често, но с него не става веднага ясно как вълничките на Хаар могат да се използват в преобразуването с вълничките на Хаар.

Използване на преобразуването с вълничките на Хаар: компресиране на данните и намаляване на шума

Фактът, че много от стойностите, изчисление с преобразуването с вълничките на Хаар, са малки, означава, че преобразуването може да се използва за да се намали размерът на данните, които се използват.

По-точно, в примера по-горе 256 стойности съдържат преобразуването с вълнички на Хаар на сигнала: 128 стойности на b1, 64 стойности на b2, …, 2 стойности на b7, една стойност на b8 и една стойност на a8. За да получим 2:1 компресиране, можем просто да махнем 128-те най-малки стойности и да приемем, че са нула (т.e., ще ги приравним на нула и ще пуснем сигнал само с останалите стойности – тези, които не са нула). Ако използваме тези данни, ще имаме сигнал само от 128 стойности вместо 256, плюс няколко байта, които показват какви са позициите на ненулевите стойности в оригиналния сигнал (можем например да използваме 32 байта или 8 четири байтови цели числа за да покажем дали всяка от 256-те стойности е нула или не).

Ако възстановим самият сигнал от компресираното преобразуване с вълнички на Хаар, ще получим следното.

2:1 компресиране на данните с вълничките на Хаар

Разбира се, едно компресиране само от 2:1 не е толкова интересно и можем да получим подобно отношение с методи на компресиране, които не губят информация. Можем обаче да получим и по-добри отношения на компресиране, ако приемем малко по-голяма загуба на информация. Можем също така да получим и по-високи отношения на компресиране с вълнички, които са по-мощни от вълничките на Хаар. Същият метод може да се използва и за да се премахне случаен шум с ниско ниво от сигнала.

Добави нов коментар

Filtered HTML

  • Freelinking helps you easily create HTML links. Links take the form of [[indicator:target|Title]]. By default (no indicator): Click to view a local node.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.