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

ЛИЧНЫЙ КАБИНЕТ 

Здравствуйте гость!

 

Логин:

Пароль:

 

Запомнить

 

 

Забыли пароль? Регистрация

 

Повышение оригинальности

Предлагаем нашим посетителям воспользоваться бесплатным программным обеспечением «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).

header_head.subchunk Size += header.subchunk2Size (2.1)

header_head.chunkSiz = sizeof(header_head.c unkSize)
+ header_head.subchunk Size (2.2)

Для реализации треугольного сигнала, необходимо учитывать то, что треугольный сигнал может быть задан по формуле (2.3), где l – 2 в степени BitsPerSample (максимальное значение сэмпла).

Data[i]=(i%(-l) * Amplitude)-Amplitude 2 (2.3)

Сигнал шума формируется согласно формуле (2.4).

data[i]=(2*((rand()/( double)RAND_MAX))-0.5 )*Period* mplitude*l (2.4)

При интерполяции происходит перерасчёт размера текущего файла (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 содержит размер сэмпла в битах.

header6.AvgBytesPerS c=header6.SamplesPer ec*
(header6.BitsPerSamp e/8) (2.7)

Для нахождения коэффициента перевода применятся формула (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




Смотреть работу подробнее



Скачать работу


Скачать работу с онлайн повышением оригинальности до 90% по antiplagiat.ru, etxt.ru


* Примечание. Уникальность работы указана на дату публикации, текущее значение может отличаться от указанного.