Компресори с много прагове

Качено от mic на Mon, 11/26/2018 - 12:49

Пробвам моите компресори. Започвам с една проста честота от 400 Hz върху пробната честота 8 kHz. Прилагам една амплитудна обвивка върху тази честота. Обвивката е проста.

  • Амплитудата е нула за първите 400 проби (около 50 милисекунди).
  • Повишава се плавно (по права линия) до 0.9 върху следващите 80 проби (10 ms).
  • След това се понижава плавно до 0.4 над следващите 1600 проби (200 ms).
  • Задържа се на 0.4 над следващите 3200 проби (400 ms).
  • Понижава се до нула над следващите 4800 проби (600 ms).

Полученият сигнал – честотата с амплитудната обвивка – е следният.

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

Вертикалната ос е ампитудата. Хоризонталната ос е времето. Целият сигнал е около 9600 проби или 1.2 секунди.

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

Използвам преобразуването на Хилбърт за да изчисля амплитудната обвивка на сигнала. (Знаем амплитудната обвивка на този сигнал, но не знаем амплитудните обвивки на повечето сигнали, които искаме да компресираме. Използваме този сигнал за да сме сигурни, че нашето изчисление на амплитудните обвивки работи). Преобразуването на Хилбърт с дължина 200 проби е

$$\frac{2}{200} \frac{sin^2(\frac{\pi}{2}(k-\frac{200}{2}))}{tan(\frac{\pi}{200}(k-\frac{200}{2}))}$$

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

  • Тъй като ще го използваме в една конволюция, трябва да го обърнем във времето.
  • Амплитудната обвивка ще бъде изчислена от корена на сумата на квадратите на сигнала след преобразуването на Хилбърт и на оригиналния сигнал. Тъй като преобразуването на Хилбърт е с четна дължина, оригиналният сигнал трябва да бъде забавен точно с 200/2 + 1 проби.

Обвивката е както очакваме. Показана е тук.

Амплитудна обвивка на примерния сигнал

Ако обвивката не е изчислена правилно, ще изглежда странно както в следната графика.

Грешна амплитудна обвивка на примерния сигнал

Компресор с един праг

С един праг е лесно. Следната графика показва амплитудната обвивка на сигнала след един компресор с праг -5 dB, атака равна на 1 ms, отпускане равно на 300 ms и отношение на компресиране над прага равно на 4:1 (няма компресиране или декомпресиране под прага).

Амплитудна обвивка след един компресор с един праг

Компресор с няколко прага

Следната графика показва връзката между входната амплитуда и изходната амплитуда на сигнала през един компресор с два прага. Входната амплитуда се измерва върху хоризонтална ос и е в децибели. Изходната амплитуда, също в децибели, се измерва върху вертикална ос.

Примерни отношения на компресиране в един компресор с два прага

В този компресор, няма компресиране или декомпресиране, ако амплитудата на входния сигнал е под -40 dB (първия праг). Сигнала се декoмпресира (разтяга) с отношение 1:1.5 между -40 dB и -20 dB (втория праг). Сигнала се компресира с отношение 6:1 над -20 dB.

В тази графика, прекъснатата диагонална линия е линията, върху която изходната амплитуда винаги е същата, като входната амплитуда. Върху тази линия няма компресиране или декомпресиране (отношение на компресиране равно на 1:1). Декомпресирането между -40 dB и -20 dB е показано със средната част на линията на компресора, която е по-стръмна от прекъснатата линия. Компресирането над -20 dB е показано с дясната част на линията на компресора, която не е толкова стръмна, колкото прекъснатата линия.

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

Например, при входната амплитуда -15 dB на хоризонталната ос, компресора ще:

  • Вземе първия праг от -40 dB. Няма компресиране или декомпресиране до този праг.
  • Заради декомпресирането над -40 dB, но само до -20 dB, ще декомпресира тази част от входната амплитуда и ще добави (-20 – (-40)) / (1 / 1.5) = 30 dB
  • Заради компресирането над -20 dB, ще компресира частта от входната амплитуда над -20 dB и ще добави (-15 – (-20)) / (6 / 1) = 0.833 dB.

Резултатът е -40 + 30 + 0.833 = -9.167 dB. Ако входната амплитуда на сигнала е -15 dB, тогава изходната амплитуда на сигнала ще бъде -9.167 dB.

Резултатът не е същия с един компресор с един праг. Вземи един компресор с един праг при -20 dB и с отношение на компресиране равно на 6:1. При този компресор, ако входната амплитуда е -15 dB, тогава изходната амплитуда ще бъде -20 + (-15 - (-20)) * 1 / 6 = -19.167 dB. Има голяма разлика между този компресор и компресора с два прага (поне при -15 dB) и тази разлика се дължи само на това, което компресора с два прага прави при по-ниския праг.

Така, не можем да изчислим какво става при най-високия праг, ако не знаем какво става при по-ниските прагове. В компресора с два прага, ако просто компресираме сигнала, когато е над -20 dB, без да вземем предвид декомпресирането под -20 dB, ще получим една графика с прекъсване при -20 dB, като следната.

Неправилно изчислени отношения на компресиране в един компресор с два прага

Това не е много полезно. Ако приложим този компресор към един сигнал, в амплитудата на сигнала след компресора ще има доста големи промени.

Амплитудна обвивка след компресора с два прага

Амплитудната обвивка на сигнала след компресора с два прага е следната. Прецизната обвивка разбира се зависи от атаката и отпускането на компресора, но това е тема за друга статия.

Амплитудна обвивка след един компресор с два прага

authors: mic

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

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.