Використання БПФ

Тепер, коли ви вмієте обчислювати ШПФ, ви можете використовувати хвильові форми і подивитися, що вийде Ha рис 248-2411 показані деякі поширені хвильові форми і їх БПФ, обчислені підпрограмою ForwardFft, яку ми розглянули раніше Ha всіх малюнках ліворуч представлена ​​хвильова форма, а праворуч БПФ для неї Ha вертикальної осі графіка БПФ відкладені значення в децибелах нульове значення в цьому масштабі представляє одиничне значення

Важливою особливістю всіх перетворень Фурє є те, що вони обчислюють спектрперіодичногосигналу Вони вважають, що 32, 512 або 1024 використовувані ними дискрети є частиною нескінченно повторюваного сигналу Цьому положенню відповідає, наприклад, рис 248 Якщо ви уважно подивитеся на синусоїду, то побачите, що вона містить цілу кількість циклів

Зробивши кілька копій цього графіка, можете зєднати їх один з одним,

і шматки кривої відмінно співпадуть

Рис 2412, однак, не задовольняє цій умові, і тому вихідні дані БПФ не так бездоганні Значення в кожній точці частотного спектра складають принаймні 0 дБ

БПФ синусоїди показують одне позитивне значення і безліч значень в районі -300 дБ (тобто близько 1030) Вони викликані помилками округлення при обчисленнях

B ситуації, представленої на рис 2412, алгоритм ШПФ обчислює спектр в припущенні, що фрагмент хвилі повторюється, як показано на рис 2413 Різкі переходи, зображені на цьому малюнку, це, по суті, імпульси

Імпульс володіє однаковою енергією на всіх частотах Значення БПФ одно 1 (0 дБ) і збігається з віссю X (Значення БПФ виглядає однаково незалежно від того, коли стався імпульс, зате фаза БПФ буде іншою)

Як показано на рис 2410, будь-які різкі скачки в сигналі це шум він містить всі частоти Основна проблема сліпого застосування БПФ до області, що містить випадкові дані, полягає в тому, що ми також вимірюємо неявні скачки, що виникають при переході від кінця області до її початку Часто буває важливо вміти згладжувати такі скачки для того, щоб шум не перекривав іншу частину вашого спектра K щастя, це нескладно реалізувати

Вибір вікна

Трюк полягає у виборівікна(Window), або вагової функції, для сигналу Грамотно вибравши відповідне вікно, ми отримуємо зображення, показане на рис 2414 Зауважимо, що для початкових і кінцевих областей сигналу проведено його зменшення для скорочення різкого стрибка, що відбивається на потрібному нам спектрі

Кожна з вибірок хвилі, представленої на рис 2412, була помножена на число рівне 0,54 0,46 cos (2πt/ 1,023), деt   номер відповідної вибірки (0 .. 1023)

Ha рис 2414 наведено БПФ для згладженою синусоїди Зауважимо, що більшість амплітудних значень лежить нижче -100 дБ, що являє собою значне покращення в порівнянні з рис 2411 Проте все ще не так добре, як у спектра на рис 248 БПФ може вимірювати тільки певні види частотних коливань, і синусоїда, показана на рис 2412, не є одним з них Крім того, процес вибору вікна злегка змінює спектр

Широко поширені кілька вікон Використовуване мною називаєтьсявікном Хеммінга (Hamming window), яке являє собою гладку колоколообразную криву Однією з тонкощів ефективного застосування БПФ є вибір відповідної функції для вікна

Зауваження

Як і багато інших складні математичні ідеї, перетворення Фурє багатогранно Чим більше ви на нього дивитеся, тим більше бачите:

 ‰  Ñ, Ð ¾ Ñ, Ñ Ð ° Ð º Ñ,, Ñ ‡ Ñ, Ð ¾ Ð ¿Ñ € Ñ Ð ¼ Ð ¾ Ðμ Ð ¸ Ð ¾ Ð ± Ñ € Ð ° Ñ, Ð ½ Ð ¾ Ðμ Ð ¿Ñ € ÐμÐ ¾ Ð ± Ñ € Ð ° Ð · Ð ¾ Ð ² Ð ° Ð ½ Ð ¸ Ñ Ð ¤ ÑƒÑ € ÑŒÐμ Ð ¾ ÐÐ ¸ Ð ½ Ð ° Ð º Ð ¾ Ð ² Ñ <Ð ¿Ð ¾ Â Ñ Ð ² Ð ¾ ÐμÐ ¹ Ñ ÑƒÑ, Ð ¸, Ð ² ÐμÑ ÑŒÐ ¼ Ð ° Ð ² Ð ° Ð ¶ ÐμÐ ½. C Ñ ‡ Ð ¸ Ñ Ñ, Ð ¾ Ð ¿Ñ € Ð ° Ð º Ñ, Ð ¸ Ñ ‡ ÐμÑ Ð º Ð ¾ Ð ¹ Ñ, Ð ¾ Ñ ‡ Ð º Ð ¸ Ð · Ñ € ÐμÐ ½ Ð ¸ Ñ, Ñ Ñ, Ð ¾  уР¿Ñ € Ð ¾ Ñ ‰ Ð ° ÐμÑ, Â Ñ € ÐμÐ ° Ð »Ð ¸ Ð · Ð ° Ñ † Ð ¸ ÑŽ  Ñ, Ð ° Ð º Ð ¸ Ñ ...  Р° л Ð ³ Ð ¾ Ñ € Ð ¸ Ñ, Ð ¼ Ð ¾ Ð ²,  Рº Ð ° Ð º  Ð'ПР¤,  Р¿Ð ¾ Ñ Ð º Ð ¾ Ð »ÑŒÐ º у  Р¾ Ð'Ð ¸ Ð ½ і той же програмний код може служити обом цілям. C теоретичної точки зору, це може дати ключ до розуміння природи різних видів сигналів;

 ‰  ÐПР¤  Р± Ñ <Ñ Ñ, Ñ € Ñ <Ð ¹ Â Ñ Ð ¿Ð ¾ Ñ Ð ¾ Ð ± Ð ² Ñ <Ñ ‡ Ð ¸ Ñ Ð »ÐμÐ ½ Ð ¸ Ñ Â Ð ½ ÐμÐ º Ð ¾ Ð ¹ Ñ Ð ² ÐμÑ € Ñ, Ð º Ð ¸. Ð ÐμÐ ¼ Ð ½ Ð ¾ Ð ³ Ð ¾  Р¿Ð ¾ Ñ € Ð ° Ð ± Ð ¾ Ñ, Ð ° Ð ², Ð ² Ñ <

вільні використовувати цей метод для швидкого обчислення інших видів згорток Так як згортки часто зустрічаються в багатьох алгоритмах обробки сигналів, ШПФ це досить потужний інструмент

 ‰   Р¿Ñ € Ñ Ð ¼ Ð ¾ Ðμ  Р¸  Р¾ Ð ± Ñ € Ð ° Ñ, Ð ½ Ð ¾ Ðμ  ÐПР¤ Â Ñ € Ð ° Ð ± Ð ¾ Ñ, Ð ° ÑŽÑ, Â Ñ Â Ð º Ð ¾ Ð ¼ Ð ¿Ð »ÐμÐ º Ñ Ð ½ Ñ <Ð ¼ Ð ¸  Р· Ð ½ Ð ° Ñ ‡ ÐμÐ ½ Ð ¸ Ñ Ð ¼ Ð ¸  Р¸  Р² Ñ <Ð'Ð ° ÑŽÑ,

результат у комплексній формі Для зворотного ШПФ вхідні комплексні значення представляють амплітуду і фазу, проте не зовсім зрозуміло, що означають вхідні комплексні дані для прямого ШПФ Для аудіоінженера вхідний інформацією прямого ШПФ завжди є речові (дійсні) відліки, хоча інші прикладні дисципліни використовують комплексні значення

 ‰  Р¾ Ð ± Ñ € Ð ° Ñ, Ð ½ Ð ¾ Ðμ  ÐПР¤   Р² Ñ <Ñ ‡ Ð ¸ Ñ Ð »Ñ ÐμÑ, Â Â Ñ ÑƒÐ ¼ Ð ¼ у  Р¼ Ð ½ Ð ¾ Ð ¶ ÐμÑ Ñ, Ð ² Ð ° Â Â Ñ Ð ¸ Ð ½ ÑƒÑ Ð ¾ Ð ¸ Ð'Ð ° Ð »ÑŒÐ ½ Ñ <Ñ ...   Р¸   Рº Ð ¾ Ñ Ð ¸ Ð ½ ÑƒÑ Ð ¾ Ð ¸ -

віддалених хвиль Якщо ви вивчите цей алгоритм докладніше, ви побачите, що він використовує ті ж ідеї, що і популярні алгоритми CORDIC

Глава 25 Фільтрація

Фільтри використовуються для зміни частотного вмісту звуку Регулятори високих і низьких частот в більшості стереосистем є прикладом використання фільтрів Фільтрація це основа ряду процесів обробки аудіосигналів Наприклад, залишаючи тільки певні частоти, ви можете використовувати фільтрацію для виділення чийогось голосу Фільтрація також застосовна для усунення шипіння зі старої запису

Накладення синусоїд

B останньому розділі обговорювалася значимість фази Один із способів зміни фази сигналу полягає в реалізації його затримки в часі Розглянемо, наприклад, додавання 500-герцевой синусоїди з такою ж хвилею, запізнілої на 1/1000 секунди Як показано на рис 251, ці дві хвилі повністю нейтралізують один одного

Якщо ви залишите ту ж саму 1/1000 секундну затримку, але будете ис-

пользовать 1000-герцеву синусоїду амплітуда подвоїться Отже, ви бачите, що процес, зображений на рис 252, змінює синусоїдальні хвилі по-різному, в залежності від їх частоти Якщо ви застосовуєте цю схему для складного

звукового сигналу, то вихідний сигнал набуває відмінне від вхідного годину-

Тотнем зміст

Простий фільтр, представлений на рис 252, називаєтьсягребінчастим фільтром(Comb filter) Якщо графічно представити те, що він робить з амплітудою синусоїди, то вийде графік, зображений на рис 253 Він показує, що для значень, кратних 1000 герц, амплітуда подвоюється, а інші частоти вибірково придушуються Цьому фільтру дано таку назву через характерної форми графіка

He потрібно заглиблюватися в математичну сторону питання, щоб зрозуміти гребенчатие фільтри Якщо sin (t) Синусоїда, тоді sin (t  +  p)  та ж синусоїда, зрушена по фазі нарВикористовуючи деякі тригонометричні тотожності, ви можете спростити цю суму до 2cos (p/2)sin(t+p/2) Так якрмає фіксоване значення, з останньої формули видно, що амплітуда дорівнює 2cos (p/2)  Графік, наведений на рис 253, це всього лише графік abs (cos (x)), побудований в логарифмічному масштабі

КИХ-фільтр

Використовуючи більш складні схеми затримок, можна вибірково підсилювати або пригнічувати майже будь-яку частоту Хоча повний математичний аналіз досить складний, ми здатні проектувати прості фільтри, експериментуючи з БПФ, описаним в минулому розділі

При аналізі фільтра корисно подивитися, що станеться, якщо ви подасте на його вхід імпульс Подивившись на гребінчастий фільтр, наведений на рис 255, ви побачите, що при подачі на його вхід імпульсу на виході вийдуть дві копії того ж імпульсу, розділені на 1/1000 секунди Оскільки на цьому вихідний сигнал закінчується, даний фільтр називається фільтром зкінцевою імпульсною характеристикою, або КИХ-фільтром (finite impulse response)

Проектування простих КИХ-фільтрів

B якості прикладу я покажу вам, як спроектувати стандартний фільтр низ ких частот (Low-pass filter) Ідеальний фільтр низьких частот володіє частотою

зрізу: він повністю блокує частоти, що знаходяться вище цієї точки і пропускає все більш низькі частоти Інакше кажучи, він володіє частотної характеристикою (Frequency response), показаної на рис 254

Завдяки одній важливої ​​особливості перетворень Фурє можна досить легко і швидко розробити придатні для використання фільтри Ця особливість зазвичай формулюється так: множення в одній області еквівалентно згортку в іншій B решти цього розділу я досліджую сенс даного вислову

Уявіть, що ваш сигнал зберігається як набір чисел, кожне з яких представляє амплітуду різних частот Тоді фільтрація низьких частот реалізується дуже легко: просто множимо кожну вибірку високої частоти на 0, а кожну низкочастотную вибірку на 1 Це є областю множення

Ha насправді здійснювати фільтрацію можна саме цим способом Ви спочатку використовуєте БПФ для перетворення відліків в набір частотних компонент, потім модифікуєте частотні компоненти і використовуєте зворотне БПФ для отримання відліків Однак у цьому процесі є якісь тонкощі, які все ускладнюють Проте багато методи фільтрації використовують даний підхід

Проте зазвичай перетворення Фурє використовується для перетворення множення в частотній області в іншу операцію в тимчасовій області Ha рис 255 в дещо іншій формі показаний простий гребінчастий фільтр, про який ми вже говорили Фільтр вибирає певні відліки, примножує ці вибрані відліки на вагові значення, а потім підсумовує їх для отримання однієї вихідного відліку Така послідовність зважувань і підсумовуванням називається сверткойУ міру того як вхідний сигнал проходить через фільтр, відбувається формування вихідних відліків

При проектуванні фільтра ви починаєте з того, що визначаєте потрібну

частотну характеристику і обчислюєте вагові значення для використання в згортку Щоб це реалізувати, просто проведіть зворотне БПФ частотної характеристики

Ha рис 256 застосовано 32 відліку для завдання потрібної частотної характеристики Я розташував ці відліки відповідно до вимог зворотного ШПФ Відліки визначають частотну характеристику від 0 доS/2  і відображають її на інтервал від S/2 до S

Зворотне БПФ для фільтра, показаного на рис 256, дає вагові значення, відображені на рис 257 Зауважимо, що ці вагові значення представляють тільки дійсну частину ШПФ Так як мій фільтр повинен приймати і видавати речові значення, я повинен відкинути удавану компоненту

Я вибрав 32 елемента абсолютно довільно при проектуванні фільтра

ви можете використовувати будь-яку кількість елементів Щоб отримати повну ін-

формацію про частотній характеристиці, я заповнюю 32-елементний фільтр нульовими значеннями і використовую 1024-елементне пряме ШПФ Для порівняння я зробив те ж саме для 16-елементного і 8-елементного фільтрів результати на рис 258

Як бачите, вони не дуже схожі на ідеальну частотну характеристику, з якою я починав Ha рис 259 виділені деякі основні області графіка частотної характеристики Високоякісний фільтр буде мати дуже малої нерівномірністю в смузі пропускання або придушення і дуже вузькою перехідною областю

Джерело: Кінтцель Т Керівництво програміста по роботі зі звуком = A Programmers Guide to Sound: Пер з англ М: ДМК Пресс, 2000 432 с, іл (Серія «Для програмістів»)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*