Рефераты. Система обработки аудиоинформации. Подсистема фильтрации и обработки сигнала

9.                      Если i > (Start+Count-1), то переход к п.19 иначе к п.10;

10.                 Прочитать Value из файла;

11.                 Value ::= ]Value*Volume[;

12.                 Если |Value|>MaxValue, то переход к п.13 иначе к п.16;

13.                 Если Value<0, то переход к п.14 иначе к п.15;

14.                 Value ::= -MaxValue; переход к п.16;

15.                 Value ::= MaxValue;

16.                 Записать Value в файл;

17.                 Volume ::= Volume + (FinalVolume-1)/Count;

18.                 i ::= i+1; переход к п.9;

19.                 Channel ::= Channel+1; переход к п.7;

20.                 Конец.


2.7.6.      Требования к контрольному примеру

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


2.7.7.      Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti-1.






2.8.         Описание алгоритма обращения звукового сигнала

 

2.8.1.                Назначение и характеристика алгоритма создания эффекта затухающей громкости

Данный алгоритм применяется для обращения воспроизведения звукового сигнала.


2.8.2.      Используемая информация

При реализации данного алгоритма используются массивы информации, сформированные из входных данных. Массивы содержат информацию о величине амплитуды звукового сигнала в определенные моменты времени. Количество пар массивов определяется числом каналов (ЧК).

A = {A1,A2,…,An} – массив амплитуд звукового сигнала;

T = {T1,T2,…,Tn} – массив со значениями времени, где n зависит от частоты дискретизации (ЧД), битрейта (Б) и размера файла;

Ti – Ti-1 определяется частотой дискретизации.


2.8.3.      Результаты решения

В результате реализации алгоритма формируются новые массивы значений амплитуд A’ и времени T’. Структура выходного файла при этом соответствует описанной в п.2.1.2.


2.8.4.                Математическое описание алгоритма обращения звукового сигнала

Для получения выходных массивов 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.


2.8.5.      Алгоритм обращения звукового сигнала

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.                       Конец.


2.8.6.      Требования к контрольному примеру

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


2.8.7.      Список условных обозначений

AudioData – совокупность значений амплитуд и времен;

Start – указатель на место в массиве данных,с которого начинать обработку;

Count – количество элементов массивов, которые необходимо обработать;

Number – количество отражений;

Delay – время между отражениями;

Volume – громкость отклика относительно предыдущего;

TempAudio – получаемая совокупность значений амплитуд и времен;

SmpBuf – хранит выборку аудиоданных;

Mult – коэффициент для получения значения амплитуды отражения;

Smp – текущая амплитуда;

Channel – количество каналов;

MaxValue – макс. значение амплитуды в обрабатываемом фрагменте;

DelaySmp = Ti – Ti-1.





2.9.         Описание подпрограммы «Reverberation»

 

2.9.1.      Вводная часть

Подпрограмма Reverberation служит для применения эффекта реверберации к указанному фрагменту звукового сигнала, записанного в файле. Текст подпрограммы приведен в приложении 1.


2.9.2.      Функциональное назначение

Подпрограмма Reverberation предназначена для реализации алгоритма создания эффекта реверберации.


2.9.3.      Описание информации

Звуковой сигнал, записанный в файле, представлен следующим классом:

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);

Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.