Этот пример показывает аудио плагин, спроектированный, чтобы улучшить воспринятый уровень звука в более низкой части слышимого спектра.
Маленькие громкоговорители обычно имеют плохой низкочастотный ответ, который может оказать негативное влияние на полное качество звука. Этот пример реализует психоакустическое басовое улучшение, чтобы улучшить качество звука аудио, проигрываемого на маленьких громкоговорителях.
Пример основан на алгоритме в [1]. Нелинейное устройство переключает низкочастотную область значений сигнала к высокочастотной области значений посредством генерации гармоник. Подача исходного сигнала сохраняется из-за "виртуальной подачи" психоакустическое явление.
Алгоритм реализован с помощью аудио сменного объекта.
Фигура ниже иллюстрирует алгоритм, используемый в [1].
1. Входной сигнал стерео разделен в lowpass и highpass компоненты с помощью перекрестного фильтра. Частота среза фильтра равна частоте среза докладчика (набор к 60 Гц в этом примере).
2. highpass компонент, , разделен в левые и правые каналы: и , соответственно.
3. Компонент lowpass, , преобразован в моно, , путем добавления левых и правых каналов поэлементно.
4. передается через полный интегратор волны. Полные сдвиги интегратора волны к более высоким гармоникам.
входной сигнал,
выходной сигнал
индекс времени
5. передается через полосовой фильтр с более низким набором частоты среза к частоте среза докладчика. Верхняя частота среза полосы пропускания может быть настроена, чтобы подстроить выходное качество звука.
6. , полоса пропускания отфильтрованный сигнал, проходит через настраиваемое усиление, .
7. добавляется налево и право highpass каналы.
8. Левые и правые каналы конкатенированы в одну матрицу и выведены.
Несмотря на то, что получившийся выходной сигнал стерео не содержит низкочастотные элементы, басовая подача входа сохраняется благодаря сгенерированным гармоникам.
audiopluginexample. BassEnhancer является аудио объектом плагина, который реализует психоакустический басовый алгоритм улучшения. Сменные параметры являются верхней частотой среза полосового фильтра и усилением, примененным при выходе полосового фильтра (G в схеме выше). Можно включить объект в симуляцию MATLAB или использовать его, чтобы сгенерировать аудио плагин с помощью generateAudioPlugin
.
Можно открыть испытательный стенд для audiopluginexample.BassEnhancer
использование Audio Test Bench. Испытательный стенд обеспечивает графический интерфейс пользователя, чтобы помочь вам протестировать свой аудио плагин в MATLAB. Можно настроить сменные параметры, когда испытательный стенд выполняется. Можно также открыть dsp.TimeScope
и dsp.SpectrumAnalyzer
просмотреть и сравнить сигналы ввода и вывода во временном и частотном диапазоне, соответственно.
bassEnhancer = audiopluginexample.BassEnhancer; audioTestBench(bassEnhancer)
Можно также использовать audiopluginexample.BassEnhancer
в MATLAB так же, как вы использовали бы любой другой объект MATLAB. Можно использовать configureMIDI
позволять настроить объект с помощью MIDI-устройства. Это особенно полезно, если объект является частью потоковой передачи симуляция MATLAB, где командное окно не свободно.
HelperBassEnhancerSim
простая функция, которая может использоваться, чтобы выполнить басовое улучшение как часть большей симуляции MATLAB. Функция инстанцирует audiopluginexample.BassEnhancer
плагин и использование setSampleRate
метод, чтобы установить его уровень выборки на входной параметр Fs
. Параметры плагина настраиваются путем устанавливания их значений к входным параметрам Fcutoff
и G
, соответственно. Обратите внимание на то, что также возможно сгенерировать файл MEX от этой функции с помощью codegen
команда. Производительность улучшается в этом режиме, не ставя под угрозу способность к настройкам параметров.
[1] Aarts, Рональд М, Эрик Ларсен и Дэниел Шоббен. “Улучшая Воспринятый Бас и Реконструкцию Высоких частот для Полосы Ограниченные Сигналы”. Продолжения 1-й IEEE Семинар Бенилюкса на Основанном на модели Кодировании Аудио (MPCA-2002), 15 ноября 2002, 59–71.