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

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

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

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

При реализации алгоритма учитываются следующие параметры эффекта реверберации, которые подаются в качестве параметров на вход алгоритма:

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

Гр – громкость отражения относительно предыдущего в процентах;

Kол – количество отражений.


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

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


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

Для получения выходных массивов A’ и T’ необходимо предварительно получить Кол пар дополнительных массивов А(А1,А2,…,Акол) и Т(Т1,Т2,…,Ткол) с отражениями, а затем совместить их:

m – размерности получаемых массивов A’ и T’

m = n + n*Кол;

T1i = Ti + 1*То;

T2i = Ti + 2*То;

ТКолi = Ti + Кол*То;

A1i = Гр/100*Ai;

A2i = Гр/100*A1i;

Aкол = Гр/100*A[кол-1]i


Описание используемых обозначений приведено в п.2.2.2.

Затем все полученные массивы амплитуд и времен объединяются в один общий массив (A’ и T’ соответственно).


2.2.5.      Алгоритм создания эффекта реверберации

1.    i::=1;

2.    MaxValue::=MaxValue*256;

3.    i::=i+1;

4.    Если i≤(AudioData.nBlockAlign/AudioData.nChannels),то переход к п.2 иначе к п.5;

5.    MaxValue::=MaxValue/2 – 1;

6.    TempAudio.nChannels ::= AudioData.nChannels;

7.    TempAudio.nSamplesPerSec := AudioData.nSamplesPerSec;

8.    TempAudio.nBitsPerSample := AudioData.nBitsPerSample;

9.    DelaySmp := Round(Delay*AudioData.nSamplesPerSec/1000);

10.                       Channel :: =0;

11.                       Если Channel > (AudioData.nChannels-1),то переход к п. 38 иначе к п.12

12.                       i :: = Start;

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

14.                       j :: = Number;

15.                       Если j < 0, то переход к п.21 иначе к п.16;

16.                       Если (i - Start) < (DelaySmp*j), то переход к п.17 иначе к п.18;

17.                       Smp ::= 0;

18.                       Прочитать из файла значение Smp;

19.                       SmpBuf [j] ::= Smp;

20.                       j ::= j+1; переход к п.15;

21.                       Mult ::= Volume;

22.                       j::=1;

23.                       Если j>Number, то переход к п.30 иначе к п.24;

24.                       k::=1;

25.                       Если k>Number, то переход к п.28 иначе к п.26;

26.                       SmpBuf[k-1] := SmpBuf[k-1] + Round(SmpBuf[k]*Mult);

27.                       k::=k+1; переход к п.25;

28.                       Mult ::= Mult*Volume;

29.                       j::=j+1; переход к п.23;

30.                       Smp := Round(SmpBuf[0]/(Number+1));

31.                       Если |Smp|>MaxValue, то переход к п.32 иначе к п.35;

32.                       Если Smp<0, то переход к п.33 иначе к п.34;

33.                       Smp::= - MaxValue;

34.                       Smp::=MaxValue;

35.                       Запись Smp в TempAudio;

36.                       i::=i+1; переход к п.13;

37.                       Сhannel ::= Channel+1; переход к п.11;

38.                       AudioData ::= TempAudio;

39.                       Конец.


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

DelaySmp = Ti – Ti-1.



2.3.          Описание алгоритма создания эффекта эха

 

Страницы: 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 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.