Реалізація звукових ефектів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Міністерство Освіти і Науки України

Курсовий проект на тему:

«РЕАЛІЗАЦІЯ ЗВУКОВІ МУЗИЧНИХ ЕФЕКТІВ»

з курсу «Системи обробки мультимедійних даних»

2006

Зміст

ВСТУП

1 ПОСТАНОВКА ЗАВДАННЯ

2 ОГЛЯД ІСНУЮЧИХ СИСТЕМ І МЕТОДІВ РЕАЛІЗАЦІЇ Звукові ефекти

3 методи вирішення поставлених завдань

3.1 Ефекти, засновані на затримці сигналу.

3.1.1 - Прості звукові ефекти

3.1.2 - Більш складні звукові ефекти

4 РОЗРОБКА ПРОГРАМНОЇ МОДЕЛІ НА MATLAB

5 РОЗРОБКА ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ СИСТЕМИ НА МОВІ СІ

6 РЕЗУЛЬТАТИ РЕАЛІЗАЦІЇ Звукові ефекти у СЕРЕДОВИЩІ MATLAB І НА сигнальний процесор DSP

7 КОРОТКИЙ КЕРІВНИЦТВО КОРИСТУВАЧА

ВИСНОВОК

СПИСОК

ДОДАТОК А

ДОДАТОК Б

ДОДАТОК В

Введення

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

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

Апаратну реалізацію звукові ефекти знаходять в цифрових сигнальних процесорах (DSP). Будь-який MIDI-синтезатор має вбудований ефект-процесор тієї чи іншої складності (ефект-процесор представляє собою один чи кілька DSP). Складні ефект-процесори "вміють" накладати на звуковий сигнал відразу кілька різних ефектів, причому, окремо для кожного каналу, дозволяючи регулювати параметри ефектів в режимі реального часу. Однак вартість таких ефект-процесорів надзвичайно висока (як і вартість будь-якого іншого високопродуктивного процесора), тому професійні DSP встановлюються тільки на якісної музичної апаратури. На більш-менш дешевих звукових платах часто встановлюється DSP зі спрощеним набором можливостей: накладення одного або декількох ефектів на всі канали одночасно.

У курсовій роботі передбачена обробка музичних файлів, як програмно - мовою Matlab, так і апаратно - на цифровому сигнальному процесорі за допомогою програми Code Composer Studio (CCS).

  1. Постановка завдання

У цій роботі необхідно розробити в середовищі Matlab, а також на ЦПОСІ TMS320C6711 (5402) систему, що реалізовує звукові музичні ефекти. Необхідно реалізувати ефекти: сесіями цифрової затримки, ефект детонації, ефект хору, ефект вібрато, компресор і експандер. Вхідні дані повинні вводитися з монофонічного звукового файлу формату «wav» (частота дискретизації - 8кГц, розрядність - 16 біт).

2 Огляд існуючих систем і методів реалізації звукових ефектів

Всі перетворення звуку зводяться до наступним.

Амплітудні перетворення. Виконуються над амплітудою сигналу. Таку процедуру можна виконати двома способами: або множачи амплітуду сигналу на деяке фіксоване число, в результаті чого вийде однакове зміна інтенсивності сигналу на всій його протяжності, тобто посилення або ослаблення, або змінюючи амплітуду сигналу з якого-то закону, тобто множачи амплітуду сигналу на модулюючим функцію. Останній процес називається амплітудною модуляцією.

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

Фазові перетворення. Виконуються або шляхом постійного зсуву фази сигналу, або шляхом накладення деякої фазомодулірующей функції. Такі перетворення, наприклад, стерео сигналу, дозволяють реалізувати ефект обертання або "об'ємності" звуку.

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

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

Фільтрація звуку. До фільтрації вдаються у випадках, коли необхідно обмежити або змінити спектр звукового сигналу в якомусь певному частотному діапазоні. Шляхом фільтрації звуку, можна позбутися, наприклад, від небажаних шумів або перешкод, придушити певні частотні смуги. Існує і ще один важливий аспект застосування фільтрації. Часто пристрої, за допомогою яких проводиться запис і перетворення звукових сигналів, мають нелінійну залежність амплітуди від частоти сигналу. Це означає, що при записі одні частотні складові звуку можуть бути завищені, а інші занижені. Фільтрація дозволяє нормалізувати частотні складові в необхідному діапазоні.

Таким чином, фільтрацію сигналів можна в цілому класифікувати наступним чином:

  • фільтрація, в результаті якої відбувається посилення або ослаблення окремих частотних складових спектра;

  • повне придушення частотних складових у певній смузі частот.

Фільтрація реалізується за допомогою різних пристроїв та алгоритмів. Одним з найбільш відомих фільтруючих пристроїв є еквалайзер. Еквалайзер дозволяє регулювати (посилювати чи послаблювати) рівень частотних складових у певній смузі частот, тим самим фактично регулюючи тембр звуку. Стосовно до комп'ютерної техніки, апаратна реалізація фільтруючих пристроїв у достатній мірі утруднена, оскільки процес фільтрації припускає розкладання сигналу в ряд Фур'є, що є математично трудомісткою операцією. Однак реалізацію фільтрів тієї чи іншої складності можна знайти в цифрових сигнальних процесорах (DSP - Digital Signal Processor), що використовуються у професійній і напівпрофесійною музичної апаратури (хоча останнім часом це твердження стало частково ставитися також і до побутових звукових пристроїв). Фільтрація знаходить реалізацію і в різному програмному забезпеченні, призначеному для обробки звуку. У такому випадку процеси фільтрації найчастіше відбуваються не в реальному часі.

3 методи вирішення поставленого завдання

У даному курсовому проекті реалізовані методи, засновані на використанні затримки, а також засновані на частотному перетворенні. Розглянемо докладніше ці методи.

3.1 Одноразова затримка сигналу

Одним з найпоширеніших класів є звукові ефекти, засновані на затримці сигналу. В реальній ситуації затримка звукового сигналу може виникнути при відображенні звукової хвилі від твердої перепони, наприклад, від стіни. Величину виникає при цьому затримки легко визначити, знаючи пройдений звуковою хвилею шлях і враховуючи, що швидкість звуку на рівні моря можна вважати рівною 330 м / с. Таким чином, за одну мілісекунду звукова хвиля проходить 33 сантиметри. Для розрахунків зручніше пам'ятати, що один метр вона проходить за 3 мс.

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

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

Блок-схема реалізації одноразової затримки звукового сигналу наведена на малюнку 3.1.1

Малюнок 3.1.1 - Блок-схема реалізації одноразової затримки звукового сигналу

Вхідний сигнал х (п) одночасно надходить на лінію затримки і на суматор, формуючий вихідний сигнал. Затриманий на величину D сигнал х (п) множиться на масштабний коефіцієнт а й також надходить на суматор, формуючий вихідний сигнал. Перетворення, здійснювані даною схемою, можуть бути виражені наступною формулою:

. (3.1.1)

Дана схема є лінійним фільтром з передавальної функцією:

. (3.1.2)

Оскільки при будь-якому відображенні звуковий сигнал послаблюється, то -1 <а <1. Негативні значення відповідають відображенню в протифазі. Ця модель є досить грубої, оскільки як поширення звукової хвилі, так і її відображення є частотно-залежними процесами. Однак у більшості випадків ця модель є адекватною. Величина D визначається різницею часу між приходом прямий і відображеної звукової хвилі.

Передавальна характеристика (3.1.2) є характеристикою гребінчастого фільтру. Відмінною особливістю даного класу фільтрів є виконання для них рівності

. (3.1.3)

Одноразова цифрова затримка часто використовується для пожвавлення "сухий" музики. У цьому випадку як основний, так і затриманий аудіосигнали складаються з однаковою амплітудою. Для того щоб при виконанні цієї операції не виникало переповнення розрядної сітки цифрового пристрою, обидва сигналу складаються з коефіцієнтом 1 / 2. У цьому випадку використовується затримка порядку 15-40 мс. Введення цієї затримки призводить до появи у слухача враження, що два виконавця грають в унісон. При зменшенні величини затримки нижче 10 мс в сигналі можуть виникнути небажані биття, оскільки сума двох гармонійних сигналів з ​​однаковою амплітудою може бути представлена ​​як амплітудна модуляція гармонічного сигналу з частотою, яка дорівнює сумі частот вихідних сигналів, гармонійним сигналом з частотою, рівною різниці частот вихідних сигналів.

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

3.2 Багаторазова затримка сигналу

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

Багаторазова затримка сигналу може бути реалізована як з використанням трансверсальних (з кінцевою імпульсною характеристикою), так і з використанням рекурсивних фільтрів (з нескінченною імпульсною характеристикою).

3.2.1 Багаторазова затримка з використанням трансверсального фільтра

Блок-схема реалізації багаторазової затримки сигналу з використанням трансверсального фільтра наведена на малюнку 3.1.1.2.

Малюнок 3.2.1.1 - Блок-схема реалізації багаторазової затримки з використанням трансверсального фільтра

Різницеве ​​рівняння трансверсального фільтра може бути записано у вигляді:

(3.2.1.1)

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

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

3.2.2 Багаторазова затримка з використанням рекурсивного фільтра

Блок-схема реалізації багаторазової затримки з використанням найпростішого рекурсивного фільтра наведена на малюнку 3.2.1.2.

Малюнок 3.2.2.1 - Блок-схема реалізації багаторазової затримки з використанням рекурсивного фільтра

Цей фільтр може бути використаний для опису перевідбиттів звукової хвилі між двома нескінченними паралельними стінами, на одній з яких розташований випромінювач плоскої хвилі. Приймач може розташовуватися на будь-який із стін. При відображенні від стіни енергія звукової хвилі падає в а разів. Імпульсна характеристика даного фільтра представляє собою послідовність одиночних імпульсів, розташованих па відстані D відліків один від одного, причому імпульс з номером п має амплітуду a n.

Даний фільтр описується різницевим рівнянням:

(3.2.2.1)

і має передавальну функцію:

(3.2.2.2)

Більш складні звукові ефекти

Крім описаних вище найпростіших звукових ефектів існують і більш складні, засновані на переміщенні спектральних складових вихідного сигналу. Такий ефект може бути, наприклад, досягнутий при зміні величини затримки сигналу за певним законом в базовій блок-схемі, наведеній на ріс.3.1.2.1

Малюнок - Базова блок-схема

У цій блок-схемі величина D f є постійною, а величина D т = f m (t) являє собою деяку функцію часу. Тому дана блок-схема реалізує гребінчастий фільтр з змінюється в часі частотною характеристикою. Ця блок-схема має дуже складну структуру, щоб описати її одним різницевим рівнянням. Вибір закону зміни величини D m, а також значення постійних величин a 0, a 1, a f і D f дозволяють реалізувати різні ефекти.

3.3 Ефект детонації

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

Малюнок 3.3.1-Блок-схема пристрою, що реалізує ефект детонації

Для реалізації ефекту детонації в цифрових пристроях може бути використаний пристрій, блок-схема якого наведена на малюнку 3.3.1.

Як видно з малюнка 3.3.1, ця блок-схема є окремим випадком базової блок-схеми, зображеної на малюнку 3.3.1. Даною блок-схемі відповідає наступне різницеве ​​рівняння:

, (3. Березня .1)

де

Для запобігання виникнення переповнень розрядної сітки при обчисленні вихідного значення коефіцієнт а 0 вибирається рівним 0,5, а коефіцієнт а 1 вибирається від -0,5 до 0,5. Значення параметра D, що визначає діапазон зміни затримки, звичайно вибирається від 0.25 до 25 мс. Значення параметра N, що визначає частоту детонації, вибирається виходячи з вимог, що пред'являються до вихідного сигналу.

Зменшення довжини лінії затримки призводить до пропорційного підйому частот спектральних складових вихідного сигналу, а її зменшення - до зниження цих частот.

3.4 Ефект хору

Іншим ефектом, збагачують звукову палітру твору, є ефект хору. Він дозволяє створити у слухача ілюзію, що даний твір одночасно виконується на кількох однакових музичних інструментах. Хоча музиканти намагаються грати синхронно, вони не можуть уникнути невеликих відхилень від загального темпу. Крім того, неминучі відмінності в налаштуванні окремих інструментів і в гучності виконання.

Для створення ефекту одночасного виконання твору на M інструментах може бути використаний пристрій, блок-схема якого наведена на малюнку 3.4.1.

Як правило, всі коефіцієнти при реалізації ефекту затримки вибираються рівними (1 / M), а самі величини затримки не перевищують 15-35 мс. Природно, що кожна лінія затримки повинна змінювати свої параметри незалежно від всіх інших.

Малюнок 3.4.1 - Блок-схема пристрою, що реалізує ефект хору

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

Даною блок-схемі відповідає наступне різницеве ​​рівняння:

, (3. Березня .1)

де

3.5 Ефект вібрато

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

Блок-схема пристрою, що реалізує ефект вібрато, наведена на малюнку 3.5.1:

Малюнок 3.5.1 - Блок-схема пристрою, що реалізує ефект вібрато

Пристрій, блок-схема якого наведена на малюнку 3.1.2.3.1, може використовуватися також і для зміни основного тону диктора (наприклад, щоб зробити голос говорить невпізнанним). У цьому випадку величина затримки змінюється від нуля до деякої граничної величини за лінійним законом. Після досягнення затримки своєї граничної величини вона скидається в нуль, і процес відновлюється. Зміна затримки за таким законом дозволяє забезпечити роботу пристрою в реальному часі, але в момент обнулення величини затримки чути клацання. Справа в тому, що саме в даний момент відбувається розрив відтвореного сигналу при переході до повторного відтворення деякого його ділянки.

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

Більш простим способом усунення клацань є використання двох подібних пристроїв, фази пилкоподібних модулюють сигналів яких зсунуті на половину періоду. При цьому необхідно задати вагове вікно (наприклад, вікно Ханна) на періоді модулюючого сигналу. Вихідні сигнали кожного пристрою множаться на відлік вагової функції, відповідний поточної довжині лінії затримки, і складаються один з одним, що забезпечує усунення клацань при переходах. Якщо позначити період модулюючого сигналу як N, відлік модулюючого сигналу як f т (п), а відлік вагової функції як W (п), то, з використанням функції отримання залишку від цілочисельного ділення числа M на число N, що позначається як mod N (М ), процедура перетворення основного тону може бути записана у формі наступного різницевого рівняння:

(3.5.1)

3.6 Зміна динамічного діапазону: компресори та експандери

Компресори та експандери використовуються для зміни динамічного діапазону сигналу, тобто для зменшення відмінності рівнів самого тихого і найгучнішого сигналів. Для цього при перевищенні поточним значенням сигналу деякого порога встановлюється коефіцієнт передачі, менший, ніж використовуваний до перевищення порогу. Ставлення старого коефіцієнта передачі до нового називається послабленням. Всі коефіцієнти передачі задаються в логарифмічній шкалі. Тобто при ослабленні 2:1 збільшенню вхідного сигналу на 20 дБ буде відповідати приріст вихідного сигналу на 10 дБ. Подібний компресор, що змінює свою передавальну характеристику в точці а, може бути реалізований за такою формулою:

(3.6.1)

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

Інший областю застосування компресорів є звукозаписна індустрія і радіомовлення. Справа в тому, що при записі музичних творів для більш точної передачі звучання всіх груп інструментів оркестру встановлюється декілька мікрофонів. Звуковий тиск створює на виході мікрофона електричний сигнал, який має динамічної діапазон 60-70 дБ. Однак більшість каналів не здатне передати весь діапазон зміни сигналу внаслідок обмежень, накладених перешкодами в каналі та його нелінійностямі. Тому виникає завдання стиснути вихідний динамічний діапазон сигналу до динамічного діапазону каналу, зазвичай становить близько 40 дБ.

При рівні ослаблення вище, ніж 10:1, компресор перетворюється в обмежувач. Його основна відмінність полягає в тому, що застосування компресора передбачає подальше використання експандера, а після обмежувача будь-які розмови про відновлення сигналу, як правило, безглузді. Тому найбільш часто використовуються обмежувачі з рівнем ослаблення ¥: 1, що відповідає обмеженню сигналу на рівні порога.

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

4 Розробка програмної моделі на MATLAB

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

У даній роботі використовувалася програмне середовище MatLab, в якій і були реалізовані необхідні звукові ефекти. Для синтезу звукових ефектів використовувалися різницеві рівняння фільтрів, наведені у попередньому розділі.

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

5 Розробка програмного забезпечення системи на мові Сі

Апаратну реалізацію звукові ефекти знаходять в цифрових сигнальних процесорах (DSP). Будь-який MIDI-синтезатор має вбудований ефект-процесор тієї чи іншої складності (ефект-процесор представляє собою один чи кілька DSP). Складні ефект-процесори "вміють" накладати на звуковий сигнал відразу кілька різних ефектів, причому, окремо для кожного каналу, дозволяючи регулювати параметри ефектів в режимі реального часу. Однак вартість таких ефект-процесорів надзвичайно висока (як і вартість будь-якого іншого високопродуктивного процесора), тому професійні DSP встановлюються тільки на якісної музичної апаратури. На більш-менш дешевих звукових платах часто встановлюється DSP зі спрощеним набором можливостей: накладення одного або декількох ефектів на всі канали одночасно.

У цій роботі необхідно розробити програму для DSP, що реалізовує, винесені до постановки задачі, звукові ефекти, але в зв'язку з тим, що цифровий процесор не дозволяє обробляти вектора довше, ніж 7000 значень, вихідний сигнал був обрізаний до 4000, тому реалізовані були не всі звукові ефекти.

Програма реалізації наведена у додатку Б.

6 Результати реалізації звукових ефектів у середовищі MatLab і на сигнальному процесорі DSP

Результати наведені в додатку В, а також представлені у презентації до даної курсової роботи.

7 Короткий посібник користувача

Для зручності подання результатів роботи програм, вони були оформлені в презентацію, яка розроблена в середовищі MS PowerPoint. Презентація має зручний і інтуїтивно зрозумілий інтерфейс. У неї винесені методи накладення звукових ефектів, використаних у курсовій роботі, а також результати - wav-файли, які можна прослухати, натиснувши кнопку. Зміна слайдів здійснюється при натисканні кнопок вперед або назад, розміщених у правому нижньому куті.

Висновок

У цій роботі необхідно була розроблена в MatLab і CCS система, що реалізує звукові музичні ефекти в реальному часі.

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

Бібліографічний список

  1. Секунь Н.Ю. Обробка звуку на РС / Н.Ю. Секунь. - СПб.: БХВ-Петербург, 2001. - 1248 с.

  2. Бондарєв В.М. Цифрова обробка сигналів: методи і засоби / В.М. Бондарєв, Г. Трестер, В.С. Чернега .- Севастопололь: Вид-во СевГТУ, 1999. - 388с.

  3. Методичні вказівки до курсового проектування з дисципліни "Цифрова обробка сигналів" / Укл. В.Н. Бондарєв, А.Л. Овчинников, B.С. Чернега .- Севастополь: Вид-во СевНТУ, 2003. - 94с.

ДОДАТОК А

Текст програм на MatLab

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

clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


D = Fs * 0.2;% затримка вихідного сигналу

z = zeros (1, D);

xz = [z x '];% затриманий сигнал

xx = [x 'z];

y = xx +0.5 * xz;


wavwrite (y, Fs, bits, 'c: \ odnkr_zad.wav');



% Графічне зображення вихідного і затриманого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');

axis ([1 14000 -1 1]);


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Zadergannuy signal');



% Записуємо в окремий файл відліки сигналу

fid = fopen ('c: \ x.dat', 'w');

fprintf (fid, '1651 2 0 1% 3d \ n ', N);

fprintf (fid, '% 4d \ n', x);

fclose (fid);



  1. Текст програми, що реалізує ефект багаторазового цифрової затримки з допомогою трансверсального фільтра:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


% Параметри трансверсального фільтра

D1 = round (Fs * 0.043); a1 = 0.841;

D2 = round (Fs * 0.172); a2 = 0.504;

D3 = round (Fs * 0.01); a3 = 0.49;

D4 = round (Fs * 0.043); a4 = 0.379;


% Різниця між довжинами вхідного і вихідного сигналів

D = round (Fs * 0.268);


z1 = zeros (1, D1);

z2 = zeros (1, D2);

z3 = zeros (1, D3);

z4 = zeros (1, D4);

z = zeros (1, D);


% Сигнал у різних точках трансверсального фільтра

zx = [x ', z 0];

xx = [z 1 x '];

xz1 = [xx z2 z3 z4]; y1 = xz1 * a1;

xxx = [z2 xx];

xz2 = [xxx z3 z4]; y2 = xz2 * a2;

xxxx = [z3 xxx];

xz3 = [xxxx z4]; y3 = xz3 * a3;

xxxxx = [z4 xxxx];

xz4 = [xxxxx]; y4 = xz4 * a4;


y = zx + y1 + y2 + y3 + y4;


wavwrite (y, Fs, bits, 'c: \ mnog_trans.wav');



% Графічне зображення вихідного і затриманого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');

axis ([1 16000 -1 1]);


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Zadergannuy signal');



3. Текст програми, що реалізує ефект багаторазового цифрової затримки з допомогою рекурсивного фільтра:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


% Параметри рекурсивного фільтра

D = round (Fs * 0.15); a = 0.8;


z = zeros (1, D);


xx = [x 'zzzzzzzzz];

x1 = x * a;

x2 = x1 * a;

x3 = x2 * a;

x4 = x3 * a;

x5 = x4 * a;

x6 = x5 * a;

x7 = x6 * a;

x8 = x7 * a;

x 9 = x 8 * a;


y 1 = [z x 1 'z z z z z z z z];% затримки вихідного сигналу

y 2 = [z z x 2 'z z z z z z z];

y 3 = [z z z x 3 'z z z z z z];

y 4 = [z z z z x 4 'z z z z z];

y 5 = [z z z z z x 5 'z z z z];

y 6 = [z z z z z z x 6 'z z z];

y 7 = [z z z z z z z x 7 'z z];

y 8 = [z z z z z z z z x 8 'z];

y 9 = [z z z z z z z z z x 9 '];


y = xx + y1 + y2 + y3 + y4 + y5 + y6 + y7 + y8 + y9;

wavwrite (y, Fs, bits, 'c: \ mnog_rec.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');

axis ([1 40000 -2 2]);


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');



4. Текст програми, що реалізує ефект детонації:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


% Diapazon izmenenia zadergki

D = round (Fs * 0.025);


z = zeros (1, D);


xx = [x 'z];


for i = 1: N

fn = round (D * 0.5 * (1 + cos (2 * pi * i / 3)));

y (1, i) = 0.5 * xx (1, i) + xx (1, fn + i);% різницеве ​​рівняння

end


wavwrite (y, Fs, bits, 'c: \ detonacia.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');



5. Текст програми, що реалізує ефект хору:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


D = round (Fs * 0.035);


z = zeros (1, D);


for i = 1:4000

u (1, i) = x (i, 1);

end;


x = [uz];


for n = 1:4000

fn1 = round (D * 0.5 * (1 + cos (2 * pi * n/50)));% Zadergki kagdogo instrumenta

fn2 = round (D * 0.5 * (1 + cos (2 * pi * n/10)));

fn3 = round (D * 0.5 * (1 + cos (2 * pi * n/100)));

fn4 = round (D * 0.5 * (1 + cos (2 * pi * n/1000)));

y (1, n) = 0.2 * x (1, n) +0.2 * x (1, fn1 + n) +0.2 * x (1, fn2 + n) +0.2 * x (1, fn3 + n) +0.2 * x (1, fn4 + n);

end


wavwrite (y, Fs, bits, 'c: \ xor.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (xx), grid on; title ('Isxodnuy signal');

axis ([0 4000 -1 1]);


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');



6. Текст програми, що реалізує ефект вібрато:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


D = round (Fs * 0.035);


z = zeros (1, D);


x = [x 'z];


for n = 1: N

fn = round (D * 0.5 * (1 + cos (2 * pi * n / 5)));% Zadergka

y (1, n) = 0.8 * x (1, fn + n);

end


wavwrite (y, Fs, bits, 'c: \ vibratto.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');

axis ([0 10 000 -1 1]);


figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');



7. Текст програми, що реалізує ефект компресора:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


a = 0.3;


for n = 1: N

if (abs (x (n, 1)) <= a)

y (1, n) = x (n, 1);

end;

if (abs (x (n, 1))> a)

y (1, n) = x (n, 1) / abs (x (n, 1)) * abs (x (n, 1)) * a;

end

end


wavwrite (y, Fs, bits, 'c: \ kompress.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');



figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');

axis ([0 10 000 -1 1]);



8. Текст програми, який реалізує ефект експандера:


clc;


% Зчитуємо вихідний файл

[X, Fs, bits] = wavread ('c: \ 1.wav');


N = size (x);


a = 0.3;


for n = 1: N

if (abs (x (n, 1))> a)

y (1, n) = x (n, 1);

end;

if (abs (x (n, 1)) <= a)

y (1, n) = x (n, 1) / abs (x (n, 1)) * abs (x (n, 1)) / a;

end

end


wavwrite (y, Fs, bits, 'c: \ exspand.wav');


% Графічне зображення вихідного і результуючого сигналів у часовій області

figure (1);

subplot (2,1,1);

plot (x), grid on; title ('Isxodnuy signal');



figure (1);

subplot (2,1,2);

plot (y), grid on; title ('Resyltiryushiy signal');

axis ([0 10 000 -1 1]);

ДОДАТОК Б


Текст програм на Сі


  1. Текст програми, що реалізує ефект однократної цифрової затримки:


float input_x [4000];

float output_y [6200];

void dataIN (void) {}

void dataOUT (void) {}


main ()

{


int i;

float xx [6200];

float y1 [6200];

while (1)

{

dataIN ();

for (i = 0; i <2200; i + +)

y1 [i] = 0;

for (i = 2200; i <6200; i + +)

y1 [i] = input_x [i];

for (i = 0; i <4000; i + +)

xx [i] = input_x [i];

for (i = 4000; i <6200; i + +)

xx [i] = 0;

for (i = 0; i <= 6200; i + +)

output_y [i] = xx [i] +0.5 * y1 [i];

dataOUT ();

}

return 0;

}


  1. Текст програми, що реалізує ефект детонації:


float input_x [4000];

float output_y [4000];

void dataIN (void) {}

void dataOUT (void) {}


main ()

{

int i;

float xx [6200];

float y1 [6200];

int D = 550;

int fn;

while (1)

{

dataIN ();

for (i = 0; i <4000; i + +)

xx [i] = input_x [i];

for (i = 4000; i <4550; i + +)

xx [i] = 0;


for (i = 0; i <4000; i + +)

{

fn = (D * 0.5 * (1 + cos (2 * 3.14 * i / 3)));

output_y [i] = 0.5 * xx [i] + xx [i + fn];

}

dataOUT ();

}

return 0;

}


  1. Текст програми, що реалізує ефект хору:


float input_x [4000];

float output_y [4000];

void dataIN (void) {}

void dataOUT (void) {}


main ()

{

int i;

float xx [4770];

int D = 770;

int fn1; int fn2; int fn3; int fn4;

while (1)

{

dataIN ();

for (i = 0; i <4000; i + +)

xx [i] = input_x [i];

for (i = 4000; i <4770; i + +)

xx [i] = 0;


for (i = 0; i <4000; i + +)

{

fn1 = (D * 0.5 * (1 + cos (2 * 3.14 * i/50)));

fn2 = (D * 0.5 * (1 + cos (2 * 3.14 * i/10)));

fn3 = (D * 0.5 * (1 + cos (2 * 3.14 * i/100)));

fn4 = (D * 0.5 * (1 + cos (2 * 3.14 * i/1000)));


output_y [i] = 0.2 * xx [i] +0.2 * xx [i + fn1] +0.2 * xx [i + fn2] +0.2 * xx [i + fn3] +0.2 * xx [i + fn4];

}

dataOUT ();

}

return 0;

}


  1. Текст програми, що реалізує ефект компресора:


float input_x [4000];

float output_y [4000];

void dataIN (void) {}

void dataOUT (void) {}


main ()

{

int i;

float a;


a = 0.3; / / koefficient kompressii


while (1)

{

dataIN ();


for (i = 0; i <4000; i + +)

{

if (abs (x [i]) <= a)

y [i] = x [i];

if (abs (x [i])> a)

ourput_y [i] = (x [i] / abs (x [i])) * abs (x [i]) * a

}

dataOUT ();

}

return 0;

}

ДОДАТОК В


Результати курсового проектування


Результатами виконання завдання на курсове проектування є звукові файли, відповідні зміни вихідного сигналу при різних ефектах. Ці файли представлені у презентації курсового проекту. У пояснювальну записку увійшли графіки вихідного і результуючих сигналів при обробці в MatLab і на ЦСП.

1. Графіки вихідного і результуючого сигналу при реалізації ефекту одноразової затримки на MatLab і на ЦСП представлені на рисунку В.1 і В.2:



Малюнок В.1-Вихідний і результуючий сигнал при одноразовому затримці на MatLab


Рисунок В.2-Вихідний і результуючий сигнал при одноразовому затримки на ЦСП


2. Графіки вихідного і результуючого сигналу при реалізації ефекту багаторазового затримки з допомогою трансверсального і рекурсивного фільтрів на MatLab представлені на рисунку В.3 і В.4:


Малюнок В.3-Вихідний і результуючий сигнал при багаторазовій затримці з допомогою трансверсального фільтра на MatLab


Рисунок В.4-Вихідний і результуючий сигнал при багаторазовій затримці з допомогою рекурсивного фільтра на MatLab


3. Графіки вихідного і результуючого сигналу при реалізації ефекту детонації на MatLab і на ЦСП представлені на рисунку В.5 і В.6:


Рисунок В.5-Вихідний і результуючий сигнал при детонації на MatLab

Рисунок В.5-Вихідний і результуючий сигнал при детонації на ЦСП


4. Графіки вихідного і результуючого сигналу при реалізації ефекту хору на MatLab і на ЦСП представлені на малюнку В.7 і В.8:


Малюнок В.7-Вихідний і результуючий сигнал при реалізації ефекту хору на MatLab

Малюнок В.8-Вихідний і результуючий сигнал при реалізації ефекту хору на ЦСП


5. Графіки вихідного і результуючого сигналу при реалізації ефекту вібрато на MatLab представлені на малюнку В.9:


Малюнок В.9-Вихідний і результуючий сигнал при реалізації ефекту вібрато на MatLab


6. Графіки вихідного і результуючого сигналу при реалізації компресора на MatLab і на ЦСП представлені на малюнку В.10 і в.11:

Малюнок В.10-Вихідний і результуючий сигнал при реалізації компресора на MatLab


Малюнок в.11-Вихідний і результуючий сигнал при реалізації коспрессора на ЦСП


7. Графіки вихідного і результуючого сигналу при реалізації експандера на MatLab В.12:

Малюнок В.12-Вихідний і результуючий сигнал при реалізації експандера на MatLab

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
133.9кб. | скачати


Схожі роботи:
Проблема забезпечення безпеки людини в вплив звукових і світлових ефектів
Підсилювачі звукових частот
Пристрій і функціонування звукових плат
Характеристики студійних звукових сигналів
Світ 3D ефектів
Бестрансформаторних підсилювач потужності звукових частот
Аналого-цифрове перетворення звукових та відеосигналів
Основи теорії випромінювання звукових хвиль
Десять ефектів реклами
© Усі права захищені
написати до нас