Проект эквалайзера полок
[ задает опции с использованием одного или нескольких 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");

Создайте объект биквадного фильтра.
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] Бристоу-Джонсон, Роберт. «Формулы Cookbook для коэффициентов биквадного фильтра Audio EQ». Доступ получен 02 марта 2016 года. http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt.
designParamEQ | designVarSlopeFilter | multibandParametricEQ
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.