Накладення спектрів

Межа Найквіста, про який я розповів вище, це дуже важливе обмеження, що має величезний практичний ефект Уявіть собі, що ви працюєте зі звуком, при дискретизації якого моментальні значення бралися 8000 разів на секунду У такому випадку межа Найквіста складе 4000 Гц Якщо ви спробуєте записати сигнал частотою 5000 Гц (що на 1000 Гц вище межі Найквіста), то при відтворенні сигналу вийде звук частотою 3000 Гц (на 1000 Гц нижче межі Найквіста) Один з найважливіших аспектів роботи з оцифрованих звуком ефектнакладення спектрівможе стати джерелом значних труднощів

Основним поясненням ефекту накладення спектрів є те, що один і той же набір відліків відповідає безлічі синусоїдальних хвиль Точки на рис 35 відповідають послідовності моментальних значень оцифровки Як ви можете переконатися, через ці точки проходить кілька різних синусоїдальних хвиль І навпаки, при дискретизації будь-який з цих синусоїдальних хвиль вийдуть саме ці відліки Внаслідок цієї невизначеності результати дискретизації (або синтезування) звуку можуть вас здивувати Оскільки через ці точки проходить безліч сигналів, що не виключено, що вихідна ланцюг цифроаналогового перетворювача вибере сигнал, який може відрізнятися від того, який ви очікували отримати

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

Для ілюстрації ефекту накладення спектрів розглянемо, що відбудеться у випадку, якщо ми спробуємо провести дискретизацію чистого прямокутного сигналу частотою 440 Гц, зчитуючи 8000 моментальних значень в секунду На рис 36 показана прямокутна хвиля, а точки відповідають моментальним значенням

На рис 37 показаний спектр цього аналогового сигналу Розглядаючи його зліва направо, ми бачимо, що піки зявляються на частотах 440 Гц, 1320 Гц (третя гармоніка), 2200 Гц (пята гармоніка) і так далі Ці гармоніки досить сильні Величина одинадцятого гармоніки (4840 Гц) складає 1/11 частку базової гармоніки 440 Гц, що відповідає відмінності всього в 21 дБ

Як ви можете переконатися, серед гармонік зустрічаються частоти, значно виходять за межу Найквіста (Фактично, гармоніки зустрічаються на як завгодно високих частотах)

При відтворенні цього сигналу вихідна схема буде вибирати паразитні частоти, що не перевищують межу Найквіста Спектр отриманого сигналу буде виглядати приблизно так, як показано на рис 38 Зверніть увагу на те, як для всіх цих складових були обрані помилкові частоти, що не перевищують межу Найквіста в 4000 Гц

Важливо відзначити той факт, що жоден з наведених спектрів не можна назвати правильним чи неправильним Йдеться просто про різних точках зору на одні й ті ж моментальні значення Це викликає проблему накладення спектрів: у будь-якого набору відліків немає унікального спектру Незважаючи на це, щоб уникнути невизначеності, ми завжди вибираємо спектр, частоти якого не перевищують межу Найквіста Хоча рис 37 і рис 38 відповідають одному й тому ж набору вибірок, ми завжди будемо використовувати той, що зображений на рис 38 (по правді кажучи, вся цифроаналогових схемотехніка розробляється з урахуванням цього припущення) Заковика в тому, що, хоча обидва ці спектра відповідають однаковим отсчетам, сигнали, що володіють цими спектрами, що не будуть однаковими У нашому прикладі остаточний вихідний сигнал буде виглядати так, як показано на рис 39 Моментальні значення (показання точками) розташовані точно так само, як і на рис 36, але вийшов сигнал виглядає (І звучить) зовсім по-іншому Врахуйте, що відтворений сигнал не можна отримати, просто

«Зєднавши точки»

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

частотою 5000 Гц, підданого дискретизації з частотою 8000 Гц Оскільки ця частота сигналу на 1000 Гц перевершує межа Найквіста, сигнал буде мати помилкову частоту на 1000 Гц нижче межі Найквіста Крім цього, у сигналу буде ще нескінченно багато інших неправдивих частот, розташованих попарно:

4000 ± 1000 Гц

12000 +1000 Гц

20000 ± 1000 Гц

28000 ± 1000 Гц

36000 ± 1000 Гц

Зверніть увагу на те, що центральні частоти цих пар розташовані на відстані 8000 Гц один від одного Якщо поступово збільшувати цю синусоїду частотою 3000 Гц, то одні паразитні частоти посилюватимуться, інші послаблюватися Аналогічно, при дискретизації затухаючого сигналу частотою 5000 Гц в ході відтворення можна отримати наростаючий сигнал частотою 3000 Гц

Цей ефект особливо помітний у випадках, коли крива сигналу має більш

складну форму Якщо, наприклад, відтворювати прямокутний сигнал з наростаючою висотою тону, то у частині паразитних гармонік частота буде збільшуватися, тоді як у інших зменшуватися У даному випадку гармоніки з зменшується частотою будуть абсолютно збивати з пантелику

Щоб запобігти появі проблем подібного роду, вам необхідно уникнути використання частот, що перевищують межу Найквіста У разі прямокутної хвилі, зображеної на рис 36, якщо брати тільки частоти, які не перевищують межу Найквіста, у нас вийде прямокутний сигнал з обмеженою смугою частот,показаний на рис 310 Хоча цей сигнал, бути може, виглядає менш прямокутним, ніж зображений на рис 39, насправді це подання набагато якісніше і його звучання настільки близько до реального сигналу, наскільки це можливо Щоб домогтися сигналу кращої якості, необхідно застосовувати більш високу частоту дискретизації, відповідну значно більше високому межі Найквіста, що дозволить використовувати більш високі частоти

у вихідному сигналі

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

Перший видалення накладення спектрів у вихідному сигналі полягає у використанні на виході аналогового фільтра На жаль, аналогові фільтри працюють не дуже точно Вам знадобиться фільтр, який ефективно пригнічує сигнали з частотою, що перевищує межу Найквіста в 22050 Гц, і при цьому не робить впливу на менш високі частоти Крім того, високоякісні аналогові фільтри занадто дороги в масовому виробництві Тому в більшості сучасних цифрових систем використовується методсверхдіскретізаціі

У системах, що працюють за цим методом, для підвищення частоти дискретизації застосовуються цифрові технології Наприклад, програвач компактдисків з «4-кратним запасом по частоті дискретизації »міг би перетворити запис звуку з 44100 відліків в секунду в запис зі 176 400 відліків в секунду

Власне процес сверхдіскретізаціі полягає в записі додаткових-

вих нульових значень з метою одержання потрібної кількості вибірок У результаті утворюється цифровий звук з більш високою частотою дискретизації (у нашому прикладі 176 400 відліків в секунду) і великою кількістю небажаних побічних частот Після цього для придушення паразитних частот вище

22050 Гц використовується цифровий фільтр (який в масовому виробництві не так дорогий, як аналоговий) Потім цей сигнал, записаний з запасом по частоті дискретизації, перетворюється в аналоговий В отриманому аналоговому сигналі все ще є помилкові частоти, що перевищують новий межа Найквіста, рівний 88200 Гц Але можна побудувати відносно дешевий аналоговий фільтр, який пригнічує ці частоти, не пошкодивши потрібний нам звук на частотах, нижче

22050 Гц Результуюче вплив цього процесу, таким чином, полягає в цифровому придушенні помилкових частот в діапазоні від 22 050 до 88 200 Гц з метою спрощення аналогової фільтрації

Передискретизація

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

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

Один з варіантів подібного перетворення, необхідного для накладення звуків, полягає впонижувальної передискретизаціїзапису музики з 44100 відліків в секунду до 11025 Для початку уявімо собі вихідний аналоговий сигнал, кожна секунда якого «нарізана» на 44100 «скибочок» (див рис 31) Очевидно, щоб в секунді залишилося 11025 «скибочок», доведеться використовувати тільки кожен четвертий

Це, безумовно, серйозна перешкода У початкових 44100 фрагментах могли бути частоти аж до 22050 Гц, що значно перевершує межа Найквіста для частоти дискретизації 11025 Гц, якій ви хочете добитися Для отримання якісного сигналу вам доведеться спочатку відфільтрувати запис музики, щоб вирізати з неї частоти, що перевищують 5512 Гц, а після цього взяти кожен четвертий відлік Більш докладно фільтрація обговорюється в главі 25

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

Спробуємо скористатися більш легким підходом для перетворення записи з 11025 отсчетами в секунду в запис, що містить 44 100 відліків в секунду, просто повторимо кожне значення 4 рази У результаті ми отримаємо зубчастий сигнал, який імітує має менший дозвіл сигнал і, безсумнівно, містить неправдиві частоти необхідного сигналу Щоб отримати якісний сигнал, буде потрібно відфільтрувати ці перешкоди до того, як ви станете дублювати вибірки

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

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

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

Джерело: Кінтцель Т Керівництво програміста по роботі зі звуком = 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>

*

*