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

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

При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой скорости воспроизведения в процентах от текущей (Ск).


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

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


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

Для получения выходного массива T’ используются следующие формулы:

T’1 = T1 * Ск/100;

T’2 = T2 * Ск/100;

T’n = Tn * Ск/100.


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


2.4.5.      Алгоритм изменения темпа звука

1.            Если (Speed=1)или(Speed=0), то переход к п.31 иначе к п.2;

2.            TempAudio.nChannels := AudioData.nChannels;

3.            TempAudio.nSamplesPerSec := AudioData.nSamplesPerSec;

4.            TempAudio.nBitsPerSample := AudioData.nBitsPerSample;

5.            TempAudio.nBlockAlign := AudioData.nBlockAlign;

6.            NewCount := Round(Count/Speed);

7.            Если Speed > 1 , то переход к п.8 иначе к п.14;

8.            i ::= NewCount; Interval ::= Speed;

9.            AudioData.Data.Position ::= Start*AudioData.nBlockAlign;

10.       Если i <> 0 , то переход к п.11 иначе к п.14;

11.       Прочитать Buf из AudioData; Записать Buf в TempAudio;

12.       AudioData.Data.Position ::= AudioData.Data.Position - AudioData.nBlockAlign + ]Interval[*AudioData.nBlockAlign;

13.       Interval := Interval-]Interval[+Speed; i ::= i – 1; переход к п.10;

14.       Speed ::= 1/Speed;

15.       Channel ::= 0;

16.       Если Channel > (AudioData.nChannels-1), то переход к п.31 иначе к п.17;

17.       i ::= 0; j ::= 0; Interval ::= Speed;

18.       Если i<>Count, то переход к п.19 иначе к п.30;

19.       Прочитать Smp1;

20.       Если (i+1) <> Count, то переход к п.21 иначе к п.22;

21.       Прочитать Smp2;

22.       Smp2 ::= Smp1;

23.       k ::= ]Interval[;

24.       n::=0;

25.       Если n > (k-1), то переход к п.28 иначе к п.26;

26.       Записать в TempAudio (Smp1+(Smp2-Smp1)/k*n);

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

28.       Interval ::= Interval - ]Interval[ + Speed;

29.       i :: = i+1; j ::= j+k; переход к п.18;

30.       переход к п.16;

31.       Конец.


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

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


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

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

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

Speed – новая скорость звукового сигнала в процентах от текущей;

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

Smp1, Smp2 – переменные для хранения амплитуд;

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

Interval – текущий обрабатываемый временной интервал;

Count – текущее количество отметок времени;

NewCount – новое количество отметок времени.



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

 

2.5.1.                Назначение и характеристика алгоритма изменения громкости звука

Данный алгоритм применяется для увеличения или уменьшения громкости (амплитуды) звукового сигнала.


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

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

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

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

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

При реализации алгоритма учитываются следующие параметры, которые подаются в качестве параметров на вход алгоритма: величина новой громкости звукового сигнала в процентах от текущей (Гр).


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

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


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

Для получения выходного массива A’ используются следующие формулы:

A’1 = А1 * Гр/100;

A’2 = А2 * Гр/100;

A’n = An * Гр/100.


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


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

1.                      MaxValue ::= 1;

2.                      i ::= 0;

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

4.                      MaxValue ::= MaxValue * 256;

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

6.                      Channel ::=0;

7.                      Если Channel > (AudioData.nChannels – 1), то переход к п.19 иначе к п.8;

8.                      Volume ::= 1; i ::= Start;

9.                      Если i > (Start+Count-1), то переход к п.18 иначе к п.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.                 i ::= i+1; переход к п.9;

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