Смекни!
smekni.com

Система обработки аудиоинформации Подсистема фильтрации и обработки сигнала (стр. 8 из 24)

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;

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

19. Конец.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DelaySmp = Ti – Ti-1.

2.6. Описание алгоритма создания эффекта возрастающей громкости

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

Данный алгоритм применяется для плавного увеличения громкости от нулевого уровня в начале фрагмента до максимального в конце.

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

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

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

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

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

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

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

2.6.4. Математическое описание алгоритма создания эффекта возрастающей громкости

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

A’1 = А1 * 1/n;

A’2 = А2 * 2/n;

A’n = An.

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

2.6.5. Алгоритм создания эффекта возрастающей громкости

1. MaxValue ::= 1;

2. i ::= 0;

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

4. MaxValue ::= MaxValue * 256;

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

6. Channel ::=0;

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

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

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/Count;

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

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

20. Конец.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

DelaySmp = Ti – Ti-1.

2.7. Описание алгоритма создания эффекта затухающей громкости

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

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

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

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

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

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

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

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

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

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

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

n – количество временных интервалов;

A’1 = А1 * n/n;

A’2 = А2 * (n-1)/n;

A’n-1 = An-1 * 2/n;

A’n = An * 1/n.

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

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

1. MaxValue ::= 1;

2. i ::= 0;

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

4. MaxValue ::= MaxValue * 256;

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

6. Channel ::=0;

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

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

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. Используемая информация

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