Главная » Все файлы » Просмотр файлов из архивов » Документы » РПЗ Цифровая обработка сигналов

РПЗ Цифровая обработка сигналов (Вариант №35 - Разработка цифрового проигрывателя с графическим интерфейсом (РПЗ))

2017-08-07СтудИзба

Описание файла

Документ из архива "Вариант №35 - Разработка цифрового проигрывателя с графическим интерфейсом (РПЗ)", который расположен в категории "". Всё это находится в предмете "цифровая обработка сигналов (цос)" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "цифровая обработка сигналов" в общих файлах.

Онлайн просмотр документа "РПЗ Цифровая обработка сигналов"

Текст из документа "РПЗ Цифровая обработка сигналов"

Московский Государственный Технический Университет

имени Н.Э.Баумана

Курсовая работа по курсу

«Цифровая обработка сигналов»

Разработка цифрового проигрывателя с графическим интерфейсом

Вариант №35

Группа ИУ3 - 62

Студент: (Лемберский А.А.)

Руководитель: (Недашковский В.М.)

МОСКВА 2013

Содержание

  1. Техническое задание……………………………………3

  1. Теоретическая часть

2.1 Описание звукового эффекта……………………………………….4

2.2 Модель музыкального плеера в Simulink…………………………..5

2.3 Возможные пути выполнения на высокоуровневом языке...…10

  1. Практическая часть

3.1 Реализация интерфейса плеера……………………………………13

3.2 Реализация звукового потока и привязка к интерфейсу……..19

3.3 Итоги……………………………………………………………………25

  1. Список использованной литературы, источники и инструменты…………………………………………….27

1

Техническое задание

1. Разработать модель цифрового аудио проигрывателя в пакете Matlab, реализующую заданный звуковой эффект.

2. Разработать программу цифрового аудио проигрывателя с графическим эквалайзером и с поддержкой заданного звукового эффекта.

Условия задания для варианта 35:

  • Звуковой эффект: phaser

  • Количество полос графического эквалайзера: 7

Базовые функции медиаплеера:

  1. Графический интерфейс

  2. Открытие файлов из графического интерфейса

  3. Воспроизведение музыки разных форматов

  4. Включение и отключение эффекта

  5. Изменение громкости

  6. Управление параметрами эффекта

  7. Перемещение по треку

  8. Графический эквалайзер

2

Теоретическая часть

2.1 Описание звукового эффекта

Phaser является своеобразным преобразователем звукового сигнала. Он осуществляется путем фильтрации звука, создавая серии максимумов и минимумов в его частотном спектре. На протяжении звучания положение этих пиков и впадин может варьироваться, что позволяет создавать специфический круговой эффект.

Образно говоря, для того, чтобы ощутить фэйзер в обычной обстановке, человеку, сидящему, например, необходимо начать как можно чаще вертеть головой из стороны в сторону.

Эффект досигается путем электронного разбиения аудиосигнала на два потока. Один, проходя через фильтр с нелинейной фазой, сохраняет частоту и амплитуду исходного звука, но изменяет свою фазу только на определенной частоте. Затем, после смешивания исходного и обработанного сигналов, частоты, которые находятся в противофазе, гасят друг друга, создавая тем самым характерные впадины в звуковом спектре. Таким образом, изменение соотношения обоих сигналов меняет глубину эффекта.

По принципу работы phaser схож с chorus и отличается от него временем задержки (1-5 мс). Помимо этого задержка сигнала у phaser на разных частотах неодинакова и меняется по определённому закону.

В обычных условиях человеческое ухо практически не способно распознавать изменение фаз, однако оно может воспринять этот эффект, когда происходит смешивание обработанного и исходного сигналов (интерференция). При этом возникает эффект металлического звука или речи робота.



В качестве примера хорошо реализованного эффекта phaser предлагаю послушать песню

♪ Electrafixion – Sister Pain

Гитара в ней звучит именно в заданном стиле.

Кроме эффекта phaser существуют еще эффекты flanger и chorus, которые выполнены по такой же схеме, единственная разница в задержке и коэффициента обратной связи.

Сказать по правде, неподготовленному человеку будет крайне сложно отличить эти эффекты друг от друга.

В следующем разделе я покажу вам схему этого эффекта, выполненную в математическом пакете Matlab в среде моделирования Simulink



2.2 Модель музыкального плеера в Simulink



Matlab – отличный пакет для решения математических задач. Мы воспользуемся им для моделирования нашего музыкального плеера с эффектом phaser.



Приступим к реализации нашего эффекта.

Еще раз повторяя сказанное ранее, мы должны разделить поток на два или несколько, один пустить без искажений, а на другие наложить небольшую временную задержку. Затем все сигналы суммируются и выводятся в аудиоустройство.

Вот как выглядит схема, собранная в симулинке.

Рис. 1

Остановимся поподробнее на каждом элементе этой схемы.

Рис. 2



Этот элемент позволяет нам указать путь к нашему аудиофайлу и использовать его в качестве сигнала.



Зайдем в его настройки:

Рис. 3

Самый главный параметр здесь – Samples per audio frame. Ставим его в единицу. Что такое sample и frame? Это базовые понятия в цифровой обработке музыкальных сигналов. Отцифрованный звук поступает в виде числовых отчетов непрерывным потоком. Для удобства обработки эти отсчеты формируются в массивы, sample (сэмплы). Сэмплы в свою очередь группируются в двумерную матрицу (frame). Поставив единицу в эту графу, мы объявили, что фрейм у нас будет состоять всего из одного сэмпла, т.е. фактически не будет отличаться от него.

Рис. 4


Блок Delay определяет задержку звукового сигнала. Индекс 0 в показатели степени означает, что задержки не будет и сигнал без искажений пройдет через этот блок. Задержка измеряется в сэмплах. В 1 сэмпле 8 бит = 1 байт информации. Для нашего не совсем качественного mp3 файла при частоте дискретизации 44 кГц необходима передача данных хотя бы 128 кбит/с. Таким образом происходит передача около 16000 сэмплов в секунду. Варьируя задержку в блоке Delay мы можем добиться нужного нам звучания.

Рис. 5

Э то окно настроек блока Delay.

Мы можем менять параметры Delay (samples) от 0 до неограниченного числа, но запомните, что при 16000 у нас будет задержка ровно на секунду в музыке, а нам нужна задержка гораздо меньшая.

Как видно из Рис 1, сигнал разделяется на 6 потоков, один который без блока задержки, а 5 остальных с таким блоком. Потом все сигналы суммируются при помощи сумматора.

В конце суммирующий сигнал выводится на аудиоустройство пр помощи блока to audio device

Теперь для задания нашего эффекта phaser установим в блоках delay следующие значения:

Delay1 1000

Delay2 2000

Delay3 3000

Delay4 4000

Delay5 5000

Звук приобрел характерный металлический оттенок. Вы можете сами попробовать поменять значения задержки и понаблюдать за изменениями.

Теперь приступим к реализации схемы нашего плеера с эквалайзером. В прошлом семестре мы выполняли аналогичную работу, поэтому я не буду вдаваться в подробности проектирования эквалайзера. Полученная итоговая схема:

Рис. 6

Как видно из рисунка, звук разделяется на 7 потоков и каждый идет через свой фильтр, каждый из которых проектируется в специальном инструмент matlab fdatool. После чего звук поступает в блок gain, который либо усиливает его, либо ослабевает. Таким образом мы можем отрегулировать звучание по частотам, сделать его высотным или басовым.

Для отладки и наглядного тестирования эффекта phaser я быстро создал пользовательский интерфейс в инструменте matlab guide

Подробный код описан в прошлом семестре, скажу только, что вертикальные ползунки управляют усилением полос, каждый в своем диапазоне частот от BASS до TOP OCTAVE

Возможные значения усиления от -10 до +10 дБ

Кнопка default возвращает значения усиления всех полос в 0 дБ

Горизонтальные ползунки управляют задержкой звукового сигнала, каждый своим потоком. Возможные значения задержки от 0 до 16000 сэмплов в каждом из потоков. Кнопка swith phaser off возвращает значение задержки в 0.

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

Теперь, когда мы разобрались с устройством нашего проигрывателя и со схемой нашего эффекта, можно смело приступать к его разработке на языке высокого уровня.

2.3 Возможные пути выполнения на

высокоуровневом языке

Для начала необходимо определиться с выбором операционной системы, на которой будем выполнять работу. В методических указаниях для каждой ОС были рекомендованы свои инструменты, а именно:

  1. Для Windows самая рациональная связка - Visual Studio, WinForms, DirectShow.

  2. Для Mac OS X - XCode, Cocoa, CoreAudio.

  3. Для Linux – Geany, GTK, Gstreamer.

В моем активе были все 3 операционные системы, но я решил начать с самой распространенной – Windows, тем более, что мы неплохо освоили в свое время Visual Studio и WinForms. К моему сожалению, поставить DirectShow не удалось, спросить было не у кого, поэтому это быстро мне отбило охоту.

Что касается Mac OS и в частности CoreAudio, мне удалось наткнуться на отличную книгу,

Learning Core Audio: A Hands-On Guide to Audio Programming for Mac and iOS [Chris Adamson, Kevin Avila]

Я прочитал введение на русском языке, автор готовит читателей к решению сложных задач на достаточно низком уровне программирования, предполагает знания objective c и библиотек cocoa. Я решил подтянуть свои знания, поставил XCode, прочитал небольшую, но хорошо написанную книгу по objective C

Become an Xcoder. Start Programming the Mac Using Objective-C. By Bert Altenberg, Alex Clarke and Philippe Mougin

Рекомендую тем, кто хочет быстро научиться что-либо писать на Mac и OS X

Кроме того, я прослушал видеокурс по библиотекам cocoa на youtube, там их достаточное количество.

К моему разочарованию, дальше работа не двинулась, т.к. после русского предисловия книги мне предложили заказать такую книгу, чего я делать не стал, а в сети найти удалось только англоязычный вариант, который для изучения был весьма непрост. Тем не менее, у меня твердо сложилось убеждение, что CoreAudio определенно лучший инструмент для создания мультимедийных приложений. Появилось желание это изучить, чем я возможно займусь, когда появится время.

Итак, остается Linux, система, с которой я был не знаком до сиз пор, но проект выполнил именно на ней. Тут были уже люди, у кого можно спросить и получить вразумительный ответ. Я установил Ubuntu, Geany - компилятор языка С, библиотеки gstreamer и gtk.

Я и моя коллега Евгения Ахунзянова написали подробную инструкцию, как все это устанавливается и компилируется на Linux. Это можно найти в самой последней версии методички.

Как устанавливать Linux на компьютер мы описывать не стали, т.к. все это подробно рассказывается на курсе Технологии Программирования.

Хоть это и было подчеркнуто в методичке, но позволю повториться себе еще раз про gtk и gstreamer.

Это не какие-то программы, где вы можете себе взять и создать плеер или что-то еще. Это просто библиотеки различных функций и объектов, которые можно подключить к среде программирования и использовать в своих проектах на языке С.

Gstreamer – мультимедийный фреймворк, написаный на языке C и использующий систему типов GObject. Используется в различных плеерах, редакторах, программах для создания конференций и портативных устройствах. Документацию на него можно найти по адресу:

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее