Здесь можно найти учебные материалы, которые помогут вам в написании курсовых работ, дипломов, контрольных работ и рефератов. Так же вы мажете самостоятельно повысить уникальность своей работы для прохождения проверки на плагиат всего за несколько минут.
Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «StudentHelp», которое позволит вам всего за несколько минут, выполнить повышение оригинальности любого файла в формате MS Word. После такого повышения оригинальности, ваша работа легко пройдете проверку в системах антиплагиат вуз, antiplagiat.ru, РУКОНТЕКСТ, etxt.ru. Программа «StudentHelp» работает по уникальной технологии так, что на внешний вид, файл с повышенной оригинальностью не отличается от исходного.
Результат поиска
Наименование:
Курсовик РАБОТА С АУДИОФАЙЛОМ В ФОРМАТЕ WAV
Информация:
Тип работы: Курсовик.
Предмет: Программирование.
Добавлен: 05.12.2017.
Год: 2015.
Страниц: 22.
Уникальность по antiplagiat.ru: < 30%
Описание (план):
Введение……….3 1. Описание структуры WAV файла………...………3 2. Математическое представление задачи………..………5 3. Описание используемых алгоритмов………7 4. Блок – схемы используемых алгоритмов………9 5. Результат работы программы………15 Заключение………..17 Список литературы……….17 Приложение А……….18
Работа с wav файлами - это непременный атрибут современной информационной жизни. Работа с WAV файлами связана с программами для воспроизведения звука, таких как Windows Media Player и других программ, доступных для вашей операционной системы. Эти файлы содержат любые звуки, такие как звуковые эффекты, музыка или произнесенные слова. Они были созданы и разработаны компанией IBM и Microsoft, но в отличие от MP3-и MP4, формат WAV не использует сжатие с потерями. Целью курсовой работы является ознакомление с типизированными файлами на примере формата wav и отработка навыка работы со структурами, методами обработки данных файла, считывание заголовка и данных исходного wav файла, определение параметров звукового файла и вывод их на экран. Также необходимо написать программу на языке С/C++, осуществляющую следующие действия: - реализация функции, объединяющей два wav файла в один, путем добавления отсчетов второго в конец первого, параметры BitRate, SamplesPerSec соответствуют первому файлу; поля nChannels и blockAlign для входных файлов должны быть одинаковы; - реализация метода генерации шума и треугольного сигнала по входным параметрам: протяженность сигнала в секундах, частота дискретизации, амплитуда сигнала в процентах от максимального уровня; - реализация метода увеличения частоты дискретизации звукового сигнала с использованием интерполяции; - реализация квантования входной последовательности по уровню сигнала. 1. Описание структуры WAV файла Для большинства wav файлов может быть использована следующая структура заголовка: struct WAVEHEADER { char chunkId[4]; unsignedlong chunkSize; char format[4]; char subchunk1Id[4]; unsignedlong subchunk1Size; unsignedshort wFormatTag; unsignedshort nChannels; unsignedlong SamplesPerSec; unsignedlong AvgBytesPerSec; unsignedshort blockAlign; unsignedshort BitsPerSample; charsubchunk2Id[4]; unsignedlong subchunk2Size; };
Поле chunkId[4] содержит информацию о формате файла для wav файла это RIFF (RIFF – Resource Interchange File Format, то есть контейнер для потоковых данных). По типу формата файла определяется смещение остальных полей и самих данных. Поле chunkSize содержит размер в байтах оставшейся части файла, то есть, за исключением полей chunkId[4] и chunkSize. Таким образом, общий размер файла равен chunkSize+8. Поле format[4] указывает на конкретный формат потоковых данных, так как формат RIFF может быть использован для хранения данных avi или rmi. Для wav файла значение этого поля равно “WAVE”. Поле subchunk1Id[4] представляет собой заголовок fmt-чанка, то есть той части заголовка, где описываются параметры wav файла. В поле subchunk1Size содержится размер подструктуры subchunk1, то есть 16 байт для формата PCM (Pulse Code Modulation). Поле wFormatTag определяет аудиоформат: значение 0 используется для неизвестного формата, значение 1 для формата PCM. На данный момент количество существующих форматов превышает 200. Поле nChannels определяет количество каналов. Чаще всего это Mono(1)или Stereo(2). Поле SamplesPerSec определяет частоту дискретизации в Гц, например 16000 Гц. Сэмпл – это блок звуковых данных, включающий оба канала. Поле AvgBytesPerSec или ByteRate определяет количество передаваемых байт в секунду воспроизведения. Поле blockAlign содержит размер сэмпла в байтах. Может принимать значения 1, 2, 4 и т.д. Поле BitsPerSample содержит размер сэмпла в битах. Поле subchunk2Id[4] обозначает начало чанка данных, то есть непосредственно отсчетов звукового сигнала. Содержит символы “data”. Поле subchunk2Size содержит размер области данных в байтах. Количество сэмплов в файле можно определить следующим образом subchunk2Size*8/Bits erSample. Использование данной структуры корректно для формата PCM, но для других форматов может привести к ошибкам, так как структура подзаголовков может отличаться. После заголовка WAVEHEADER следуют непосредственно чередующиеся отсчеты звукового сигнала: Sample[0],Sample[1], ample[2],Sample[3] и т. д. Для Mono звука Sample[0] содержит Сhannel0[0], так как в данном случае в сэмпле содержится один канал. Для Stereo звука Sample[0] содержит СhannelLeft[0] и СhannelRight[0], так как в данном случае в сэмпле содержится два канала. 2. Математическое представление задачи Для реализации функции, объединяющую два wav файла в один, путем добавления отсчетов второго в конец первого, сначала необходимо пересчитать размер данных для нового файла. Вычисление размера области данных нового файла (header_head.subchun 2Size) выполняется по формуле (2.1), где header.subchunk2Size – размер области данных дописываемого файла. Вычисление общего размера текущего файла (header_head.chunkSi e) выполняется по формуле (2.2).
Для реализации треугольного сигнала, необходимо учитывать то, что треугольный сигнал может быть задан по формуле (2.3), где l – 2 в степени BitsPerSample (максимальное значение сэмпла).
При интерполяции происходит перерасчёт размера текущего файла (header_head.chunkSi e) по формуле (2.5) и размера области данных файла (header_head.subchun 2Size) по формуле (2.6).
header2.chunkSize+=h ader2.subchunk2Size (2.5) header2.subchunk2Siz *=2 (2.6) Для выполнения квантования необходимо сначала пересчитать количество передаваемых байт в секунду воспроизведения по формуле (2.7), где SamplesPerSec определяет частоту дискретизации в Гц, а BitsPerSample содержит размер сэмпла в битах.
Для нахождения коэффициента перевода применятся формула (2.8), где y – максимальное значение исходного сэмпла, а header6.BitsPerSampl – текущее. Koef=pow(2.0, y)/ pow(2.0, header6.BitsPerSampl ) (2.8)
... 1. Фролов И. Г. Мультимедиа для Windows. СПб: Наука, 2011. 192 с. 2. Мешков В.П. Работа с аудио/видео файлами. М.: Сокол, 2012. 354 с. 3. ИНТУИТ: Работа с медиафайлами, URL studies/courses/10468 1075/lecture/16552?pa e=4 4. Формат WAV-файлов, URL oldgr/courses/cg02b/a signs/hw-2/help/wavfm 2.htm