Список условных обозначений
AudioData – совокупность значений амплитуд и времен; Start – указатель на место в массиве данных,с которого начинать обработку; Count – количество элементов массивов, которые необходимо обработать; Number – количество отражений; Delay – время между отражениями; Volume – громкость отклика относительно предыдущего; TempAudio – получаемая совокупность значений амплитуд и времен; SmpBuf – хранит выборку аудиоданных; Mult – коэффициент для получения значения амплитуды отражения; Smp – текущая амплитуда; Channel – количество каналов; MaxValue – макс. значение амплитуды в обрабатываемом фрагменте; DelaySmp = Ti – Ti-1.
Описание алгоритма обращения звукового сигнала
Назначение и характеристика алгоритма создания эффекта затухающей громкости Данный алгоритм применяется для обращения воспроизведения звукового сигнала.
Используемая информация При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК). A = {A1,A2,…,An} – массив амплитуд звукового сигнала; T = {T1,T2,…,Tn} – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла; Ti – Ti-1 определяется частотой дискретизации.
Результаты решения В результате реализации алгоритма формируются новые массивы значений амплитуд A’ и времени T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.
Математическое описание алгоритма обращения звукового сигнала Для получения выходных массивов A’ и Т’ используются следующие формулы: A’1 = Аn; A’2 = Аn-1; … A’n-1 = A2; A’n = A1;
T’1 = Аn; T’2 = Аn-1; … T’n-1 = A2; T’n = A1.
Описание используемых обозначений приведено в п.2.8.2.
Алгоритм обращения звукового сигнала 1. AbsStart ::= Start*AudioData.nBlockAlign; 2. AbsCount ::= Count*AudioData.nBlockAlign; 3. AbsFinish ::= AbsStart+AbsCount; i ::= AbsFinish; 4. Если (i-AbsStart)>=(MaxSizeOfBuffer), то переход к п.5 иначе к п.6; 5. BufferStart := i – MaxSizeOfBuffer; переход к п.7; 6. BufferStart := AbsStart; 7. AudioData.Data.Position := BufferStart; Прочитать знаение амплитуды в Buf; 8. Если i > BufferStart, то переход к п.9 иначе к п.11; 9. i := i - AudioData.nBlockAlign; AudioData.Data.Position := i; 10. Прочитать Buf из AudioData; Записать Buf в TempAudio; переход к п.8; 11. Если i = AbsStart, то переход к п.12 иначе к п.4; 12. AudioData.Data.Position := AbsStart; TempAudio.Data.Position := 0; 13. i ::= 1; 14. Если I > Count, то переход к п.17 иначе к п.15; 15. Прочитать Buf из TempAudio; Записать Buf в AudioData; 16. i ::= i+1; переход к п.14; 17. Конец.
Требования к контрольному примеру Контрольный пример должен содержать примеры применения обращения звукового сигнала различных форм.
Список условных обозначений 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»
Описание входных данных подпрограммы представлено в табл.2.3.
Таблица 2.3 Входные данные подпрограммы «Reverberation»
Выходные данные подпрограммы: AudioData – измененная совокупность значений амплитуд и времен с эффектом реверберации.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (178)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |