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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



AbsStart+AbsCount; i ::= AbsFinish;

  • Если (i-AbsStart)>=(MaxSizeOfBuffer), то переход к п.5 иначе к п.6;
  • BufferStart := i MaxSizeOfBuffer; переход к п.7;
  • BufferStart := AbsStart;
  • AudioData.Data.Position := BufferStart; Прочитать знаение амплитуды в Buf;
  • Если i > BufferStart, то переход к п.9 иначе к п.11;
  • i := i - AudioData.nBlockAlign; AudioData.Data.Position := i;
  • Прочитать Buf из AudioData; Записать Buf в TempAudio; переход к п.8;
  • Если i = AbsStart, то переход к п.12 иначе к п.4;
  • AudioData.Data.Position := AbsStart; TempAudio.Data.Position := 0;
  • i ::= 1;
  • Если I > Count, то переход к п.17 иначе к п.15;
  • Прочитать Buf из TempAudio; Записать Buf в AudioData;
  • i ::= i+1; переход к п.14;
  • Конец.
    1. Требования к контрольному примеру

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    DelaySmp = Ti Ti-1.

    1. Описание подпрограммы Reverberation
    1. Вводная часть

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

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

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

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

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

    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

    Имена переменныхТипОписаниеi, j, kintegerПеременные-счетчикиDelaySmpCardinalРавно Ti Ti-1SmpBufarray[0..64] of Int64Хранит выборку аудио-данныхMultRealКоэффициент для получения значения амплитуды отраженияSmpIntegerТекущая амплитудаChannelWordКоличество каналовMaxValueCardinalМаксимальное значение амплитуды в обрабатываемом фрагменте

    Описание входных данных подпрограммы представлено в табл.2.3.

    Таблица 2.3

    Входные данные подпрограммы Reverberation

    Имена переменныхТипОписаниеAudioDataTAudioDataПередаваемая исходная совокуп-ность значений амплитуд и временStartCardinalСтартовая позиция, с которой необходимо начать обработкуCountCardinalКоличество позиций, которые необходимо обработать относи-тельно стартовойNumberCardinalКоличество отраженийDelayCardinalВремя между отражениямиVolumeRealГромкость отражения относитель-но предыдущегоВыходные данные подпрограммы:

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

    1. Используемые программы

    В подпрограмме используются следующие подпрограммы:

    1. ReadSample(Number, Channel: LongInt; var Value: Integer) процедура чтения данных из звукового файла;
    2. WriteSample(Number, Channel: LongInt; Value: Integer) процедура записи данных в звуковой файл.
    1. Схема подпрограммы Reverberation

    Схема подпрограммы Reverberation приведена на рис. 2.17.

    1. Описание подпрограммы Echo
    1. Вводная часть

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

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

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

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

    TempAudio: TAudioData; получаемая совокупность значений амплитуд и времен. Описание используемых в подпрограмме переменных представлено в табл.2.4.

    Таблица 2.4

    Переменные, используемые в подпрограмме Echo

    Имена переменныхТипОписаниеi, j, kintegerПеременные-счетчикиDelaySmpCardinalРавно Ti Ti-1SmpBufarray[0..64] of Int64Хранит выборку аудио-данныхMultRealКоэффициент для полу-чения значения амплиту-ды отраженияSmpIntegerТекущая амплитудаChannelWordКоличество каналовMaxValueCardinalМакс. значение ампли-туды в обрабатываемом фрагменте

    Описание входных данных подпрограммы представлено в табл.2.5.

    Таблица 2.5

    Входные данные подпрограммы Echo

    Имена переменныхТипОписаниеAudioDataTAudioDataПередаваемая исходная совокупность значений амплитуд и временStartCardinalСтартовая позиция, с которой необходимо начать обработкуCountCardinalКоличество позиций, которые необходимо обработать относительно стартовойNumberCardinalКоличес