Бързи изчисления на амплитудния спектър

Качено от mic на Wed, 03/28/2018 - 21:18

Превод от: Faster magnitude response computations

Работехме върху версия 3 на Orinj. Искахме да подобрим графиките на няколко от ефектите DSP в Orinj и да покажем действителния амплитуден спектър на ефекта. Това включваше ефекти, които имат графики с еквилизация или с някакви честотни филтри – графичния и параметричния еквилайзер, ривърба (заради параметричния му еквилайзер) и филтъра бразда. Тази статия е за изчисляването на действителния амплитуден спектър бързо и ефикасно.

Действителен амплитуден спектър на параметричния еквилайзер в Orinj

Следното е амплитудния спектър на параметричния еквилайзер в Orinj с настройката за "яркост и бас".

Амплитуден спектър на параметричния еквилайзер в Orinj с настройката за яркост и бас

Жълтата линия показва желания амплитуден спектър на еквилайзера, който добавя около 5 dB към амплитудата на честотите под 230 Hz и на честотите над 2500 Hz. Синята линия показва действителния амплитуден спектър на еквилайзера. Има две разлики. Тъй като еквилайзера използва честотни филтри с ограничени импулсни спектри, които имат обикновените вълни на феномена на Гибс, в действителния амплитуден спектър има вълни. Тъй като е трудно да се получи един прехода в амплитудата при ниските честоти, преходната лента при действителния амплитуден спектър между 5-те dB и 0-та при ниските честоти не е толкова кратка, както преходната лента при желания амплитуден спектър. Тази нова графика е много по-добра, от графиката в параметричния еквилайзер в предната версия 2 на Orinj, тъй като показва точно какво еквилайзера ще направи, а не само какво искаме еквилайзера да направи.

Изчисляване на действителния амплитуден спектър

Не е сложно да изчислим действителния амплитуден спектър и да изрисуваме графиката. Даже и ако не знаем нищо друго, можем да използваме груба сила. Вземаме честотата f, създаваме една синусоида sin(2π f k / fs) с тази честота при пробната честота fs и с максимална стойност 1 (което означава средна квадратична амплитуда от 0.707107), пускаме вълната през изчисленията на еквилайзера, изчисляваме средната квадратична амплитуда на получената вълна y(k) и сравняваме двете амплитуди. Нормализирания амплитуден спектър при f тогава ще бъде отношението на амплитудата на изходната вълна и амплитудата на входната вълна f. В децибели, това е

Изход от еквилайзера

Амплитуден спектър на еквилайзера в децибели

Грубата сила е лесна, но прекалено бавна. Искаме действителния амплитуден спектър (синята линия по-горе) да се променя автоматично, когато потребителя променя амплитудата, честотата, или пък плъзгачите за прецизността на еквилайзера.

Алтернативно, амплитудния спектър на филтъра с ограничен импулсен спектър е честотното съдържание на филтъра с дължина N. Амплитудата при някаква цяла честота f е

Честотно съдържание на филтъра на еквилайзера

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

Един филтър a(k) с ограничен импулсен спектър и с дължина N (като нашия еквилайзер), изчислява изхода y(k) от входния сигнал x(k) с формулата

Изходен сигнал от филтъра с ограничен импулсен спектър

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

Трансферна функция на един филтър с ограничен импулсен спектър

Ако нашият филтър е проектиран правилно, ще бъде сумата на няколко филтри с ограничени импулсни спектри – такива, които пропускат ниски, честоти, високи честоти или честотни ленти – които са симетрични спрямо средата. Тъй като работим с филтри със симетрични коефициенти, можем да съберем първия и последния коефициент, втория и предпоследния коефициент и така нататък. Ще обозначим средата с M = (N – 1) / 2, като предполагаме, че N е нечетно, което обикновено е така. При z = e-j ω, където трябва да изчислим амплитудния спектър

Симетрични коефициенти на филтъра

Амплитудният спектър е

Амплитуден спектър на еквилайзера

Тук, разбира се, ъгловата честота ω е ω = 2 π f / fs за някаква честота f при някаква пробна честота fs. И пак трябва да превърнем резултата в децибели. Това е, обаче, най-бързия начин да се изчисли амплитудния спектър на филтъра.

автори: 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.