Система обработки аудиоинформации. Подсистема фильтрации и обработки сигнала
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
AbsStart+AbsCount; i ::= AbsFinish;
- Требования к контрольному примеру
Контрольный пример должен содержать примеры применения обращения звукового сигнала различных форм.
- Список условных обозначений
AudioData совокупность значений амплитуд и времен;
Start указатель на место в массиве данных,с которого начинать обработку;
Count количество элементов массивов, которые необходимо обработать;
Number количество отражений;
Delay время между отражениями;
Volume громкость отклика относительно предыдущего;
TempAudio получаемая совокупность значений амплитуд и времен;
SmpBuf хранит выборку аудиоданных;
Mult коэффициент для получения значения амплитуды отражения;
Smp текущая амплитуда;
Channel количество каналов;
MaxValue макс. значение амплитуды в обрабатываемом фрагменте;
DelaySmp = Ti Ti-1.
- Описание подпрограммы Reverberation
- Вводная часть
Подпрограмма Reverberation служит для применения эффекта реверберации к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.
- Функциональное назначение
Подпрограмма Reverberation предназначена для реализации алгоритма создания эффекта реверберации.
- Описание информации
Звуковой сигнал, записанный в файле, представлен следующим классом:
TAudioData = class(TObject)
public
nChannels: Word;
nSamplesPerSec: LongWord;
nBitsPerSample: Word;
nBlockAlign: Word;
Data: TFile;
constructor Create;
destructor Destroy;
procedure Calculate_nBlockAlign;
procedure ReadSample(Number, Channel: LongInt; var Value: Integer);
procedure WriteSample(Number, Channel: LongInt; Value: Integer);
private
Name: String;
end;
Описание полей класса представления звукового сигнала:
nChannels число каналов;
nSamplesPerSecond частота дискретизации;
nBitsPerSample битрейт;
nBlockAlign блок выравнивания (число каналов х разрядность);
Data звуковые данные;
Name имя файла.
TempAudio: TAudioData; получаемая совокупность значений амплитуд и времен.
Описание используемых в подпрограмме переменных представлено в табл.2.2.
Таблица 2.2
Переменные, используемые в подпрограмме Reverberation
Имена переменныхТипОписаниеi, j, kintegerПеременные-счетчикиDelaySmpCardinalРавно Ti Ti-1SmpBufarray[0..64] of Int64Хранит выборку аудио-данныхMultRealКоэффициент для получения значения амплитуды отраженияSmpIntegerТекущая амплитудаChannelWordКоличество каналовMaxValueCardinalМаксимальное значение амплитуды в обрабатываемом фрагменте
Описание входных данных подпрограммы представлено в табл.2.3.
Таблица 2.3
Входные данные подпрограммы Reverberation
Имена переменныхТипОписаниеAudioDataTAudioDataПередаваемая исходная совокуп-ность значений амплитуд и временStartCardinalСтартовая позиция, с которой необходимо начать обработкуCountCardinalКоличество позиций, которые необходимо обработать относи-тельно стартовойNumberCardinalКоличество отраженийDelayCardinalВремя между отражениямиVolumeRealГромкость отражения относитель-но предыдущегоВыходные данные подпрограммы:
AudioData измененная совокупность значений амплитуд и времен с эффектом реверберации.
- Используемые программы
В подпрограмме используются следующие подпрограммы:
- ReadSample(Number, Channel: LongInt; var Value: Integer) процедура чтения данных из звукового файла;
- WriteSample(Number, Channel: LongInt; Value: Integer) процедура записи данных в звуковой файл.
- Схема подпрограммы Reverberation
Схема подпрограммы Reverberation приведена на рис. 2.17.
- Описание подпрограммы Echo
- Вводная часть
Подпрограмма Echo служит для применения эффекта эха к указанному фрагменту звукового сигнала, записанного в файле. Текст программы приведен в приложении 1.
- Функциональное назначение
Подпрограмма Echo предназначена для реализации алгоритма создания эффекта эха.
- Описание информации
TempAudio: TAudioData; получаемая совокупность значений амплитуд и времен. Описание используемых в подпрограмме переменных представлено в табл.2.4.
Таблица 2.4
Переменные, используемые в подпрограмме Echo
Имена переменныхТипОписаниеi, j, kintegerПеременные-счетчикиDelaySmpCardinalРавно Ti Ti-1SmpBufarray[0..64] of Int64Хранит выборку аудио-данныхMultRealКоэффициент для полу-чения значения амплиту-ды отраженияSmpIntegerТекущая амплитудаChannelWordКоличество каналовMaxValueCardinalМакс. значение ампли-туды в обрабатываемом фрагменте
Описание входных данных подпрограммы представлено в табл.2.5.
Таблица 2.5
Входные данные подпрограммы Echo
Имена переменныхТипОписаниеAudioDataTAudioDataПередаваемая исходная совокупность значений амплитуд и временStartCardinalСтартовая позиция, с которой необходимо начать обработкуCountCardinalКоличество позиций, которые необходимо обработать относительно стартовойNumberCardinalКоличес