Спроектируйте отлогий эквалайзер
[ задает опции с помощью одного или нескольких B,A] =
designShelvingEQ(___,Name,Value)Name,Value парные аргументы.
Спроектируйте три БИХ-эквалайзера низкой полки второго порядка с помощью designShelvingEQ. Три отлогих эквалайзера используют три отдельных наклонных технических требований.
Задайте частоту дискретизации, пиковое усиление, наклонный коэффициент и нормированную частоту среза для трех отлогих эквалайзеров. Частота дискретизации находится в Гц. Пиковое усиление находится в дБ.
Fs = 44.1e3; gain = 5; slope1 = 0.5; slope2 = 0.75; slope3 = 1; Fc = 1000/(Fs/2);
Спроектируйте коэффициенты фильтра с помощью заданных параметров.
[B1,A1] = designShelvingEQ(gain,slope1,Fc,"Orientation","row"); [B2,A2] = designShelvingEQ(gain,slope2,Fc,"Orientation","row"); [B3,A3] = designShelvingEQ(gain,slope3,Fc,"Orientation","row");
Визуализируйте свое создание фильтра.
fvtool( ... dsp.BiquadFilter([B1,A1]), ... dsp.BiquadFilter([B2,A2]), ... dsp.BiquadFilter([B3,A3]), ... "Fs",Fs, ... "FrequencyScale","Log"); legend("slope = 0.5", ... "slope = 0.75", ... "slope = 1");

Создайте считывающее устройство звукового файла и объекты средства записи аудио устройства. Используйте частоту дискретизации читателя как частота дискретизации средства записи.
frameSize = 256; fileReader = dsp.AudioFileReader("RockGuitar-16-44p1-stereo-72secs.wav","SamplesPerFrame",frameSize); deviceWriter = audioDeviceWriter("SampleRate",fileReader.SampleRate);
Проигрывайте звуковой сигнал через свое устройство.
count = 0; while count < 2500 audio = step(fileReader); play(deviceWriter,audio); count = count + 1; end reset(fileReader)
Спроектируйте эквалайзер низкой полки секций второго порядка (SOS).
gain = 10; slope = 3; Fc = 0.025; [B,A] = designShelvingEQ(gain,slope,Fc);
Визуализируйте свое отлогое создание фильтра.
SOS = [B',[1,A']]; fvtool(dsp.BiquadFilter("SOSMatrix",SOS), ... "Fs",fileReader.SampleRate, ... "FrequencyScale","Log");

Создайте biquad объект фильтра.
myFilter = dsp.BiquadFilter( ... "SOSMatrixSource","Input port", ... "ScaleValuesInputPort",false);
Создайте спектр, объект анализатора визуализировать исходный звуковой сигнал и звуковой сигнал прошел через ваш эквалайзер низкой полки.
scope = dsp.SpectrumAnalyzer( ... "SampleRate",fileReader.SampleRate, ... "PlotAsTwoSidedSpectrum",false, ... "FrequencyScale","Log", ... "FrequencyResolutionMethod","WindowLength", ... "WindowLength",frameSize, ... "Title","Original and Equalized Signal", ... "ShowLegend",true, ... "ChannelNames",{'Original Signal','Equalized Signal'});
Проигрывайте компенсируемый звуковой сигнал и визуализируйте исходные и компенсируемые спектры.
count = 0; while count < 2500 originalSignal = fileReader(); equalizedSignal = myFilter(originalSignal,B,A); scope([originalSignal(:,1),equalizedSignal(:,1)]); deviceWriter(equalizedSignal); count = count + 1; end
Как лучшая практика, выпустите свои объекты, однажды сделанные.
release(fileReader) release(deviceWriter) release(scope)

Спроектируйте трех БИХ второго порядка высокие эквалайзеры полки с помощью designShelvingEQ. Три отлогих эквалайзера используют три отдельных технических требований усиления.
Задайте частоту дискретизации, пиковое усиление, наклонный коэффициент и нормированную частоту среза для трех отлогих эквалайзеров. Частота дискретизации находится в Гц. Пиковое усиление находится в дБ.
Fs = 44.1e3; gain1 = -6; gain2 = 6; gain3 = 12; slope = 0.8; Fc = 18000/(Fs/2);
Спроектируйте коэффициенты фильтра с помощью заданных параметров.
[B1,A1] = designShelvingEQ(gain1,slope,Fc,"hi","Orientation","row"); [B2,A2] = designShelvingEQ(gain2,slope,Fc,"hi","Orientation","row"); [B3,A3] = designShelvingEQ(gain3,slope,Fc,"hi","Orientation","row");
Визуализируйте свое создание фильтра.
fvtool([B1,A1;[1 0 0 1 0 0]], ... [B2,A2;[1 0 0 1 0 0]], ... [B3,A3;[1 0 0 1 0 0]], ... "Fs",Fs); legend("gain = -6 dB", ... "gain = 6 dB", ... "gain = 12 dB", ... "Location","NorthWest")

gain — Пиковое усиление (дБ)Пиковое усиление в дБ в виде действительного скаляра в области значений –12 к 12.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
slope — Наклонный коэффициентНаклонный коэффициент в виде действительного скаляра в области значений от 0 до 5.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Fc — Нормированная частота срезаНормированная частота среза в виде действительного скаляра в области значений от 0 до 1, где 1 соответствует частоте Найквиста (π рад/отсчет).
Нормированная частота среза реализована как половина отлогого усиления фильтра или gain/2 дБ.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
type — Отфильтруйте тип'lo' (значение по умолчанию) | 'hi'Отфильтруйте тип в виде 'lo' или 'hi'.
'lo'– Низко откладывание эквалайзера
'hi'– Высоко откладывание эквалайзера
Типы данных: char | string
Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.
'Orientation',"row"'Orientation' — Ориентация возвращенных коэффициентов фильтра"column" (значение по умолчанию) | "row"Ориентация возвращенных коэффициентов фильтра в виде разделенной запятой пары, состоящей из 'Orientation' и "column" или "row":
Установите 'Orientation' к "row" для функциональной совместимости с FVTool, dsp.DynamicFilterVisualizer, и dsp.FourthOrderSectionFilter.
Установите 'Orientation' к "column" для функциональной совместимости с dsp.BiquadFilter.
Типы данных: char | string
B — Коэффициенты фильтра числителяКоэффициенты фильтра числителя, возвращенные как вектор. Размер и интерпретация B зависит от Orientation:
Если 'Orientation' установлен в "column", затем B возвращен как трехэлементный вектор-столбец.
Если 'Orientation' установлен в "row", затем B возвращен как трехэлементный вектор-строка.
.
A — Коэффициенты фильтра знаменателяКоэффициенты фильтра знаменателя спроектированного БИХ-фильтра второго порядка, возвращенного как вектор. Размер и интерпретация A зависит от Orientation:
Если 'Orientation' установлен в "column", затем A возвращен как двухэлементный вектор-столбец. A не включает ведущий коэффициент единицы.
Если 'Orientation' установлен в "row", затем A возвращен как трехэлементный вектор-строка.
[1] Бристоу-Джонсон, Роберт. "Формулы поваренной книги для Аудио Коэффициенты Фильтра EQ Biquad". Полученный доступ 02 марта 2016. http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt.
designParamEQ | designVarSlopeFilter | multibandParametricEQ
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.