Разработайте отлогий эквалайзер
[B,A] =
designShelvingEQ(gain,slope,Fc)
[B,A] =
designShelvingEQ(gain,slope,Fc,type)
Разработайте три БИХ-эквалайзера низкой полки второго порядка с помощью designShelvingEQ
. Три отлогих эквалайзера используют три отдельных наклонных спецификации.
Задайте частоту дискретизации, пиковое усиление, наклонный коэффициент и нормированную частоту среза для трех отлогих эквалайзеров. Частота дискретизации находится в Гц. Пиковое усиление находится в дБ.
Fs = 44.1e3; gain = 5; slope1 = 0.5; slope2 = 0.75; slope3 = 1; Fc = 1000/(Fs/2);
Разработайте коэффициенты фильтра с помощью заданных параметров.
[B1,A1] = designShelvingEQ(gain,slope1,Fc); [B2,A2] = designShelvingEQ(gain,slope2,Fc); [B3,A3] = designShelvingEQ(gain,slope3,Fc);
Создайте матрицы фильтра, совместимые с fvtool
.
SOS1 = [B1',[1,A1']]; SOS2 = [B2',[1,A2']]; SOS3 = [B3',[1,A3']];
Визуализируйте свой проект фильтра.
fvtool(... dsp.BiquadFilter('SOSMatrix',SOS1),... dsp.BiquadFilter('SOSMatrix',SOS2),... dsp.BiquadFilter('SOSMatrix',SOS3),... 'Fs',Fs,... 'FrequencyScale','Log'); legend('slope = 0.1',... 'slope = 0.5',... 'slope = 1');
Разработайте эквалайзер низкой полки, и затем используйте его, чтобы отфильтровать звуковой сигнал.
Создайте считывающее устройство звукового файла и объекты средства записи аудио устройства. Используйте частоту дискретизации читателя как частота дискретизации средства записи. Вызовите setup
, чтобы уменьшать вычислительную загрузку инициализации в цикле аудиопотока.
frameSize = 256; fileReader = dsp.AudioFileReader(... 'RockGuitar-16-44p1-stereo-72secs.wav',... 'SamplesPerFrame',frameSize); sampleRate = fileReader.SampleRate; deviceWriter = audioDeviceWriter(... 'SampleRate',sampleRate); setup(fileReader); setup(deviceWriter,ones(frameSize,2));
Проигрывайте звуковой сигнал через свое устройство.
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',sampleRate,... 'PlotAsTwoSidedSpectrum',false,... 'FrequencyScale','Log',... 'FrequencyResolutionMethod','WindowLength',... 'WindowLength',frameSize,... 'Title','Original and Equalized Signal',... 'ShowLegend',true,... 'ChannelNames',{'Original Signal','Equalized Signal'});
Проигрывайте компенсируемый звуковой сигнал и визуализируйте исходные и компенсируемые спектры.
setup(scope,ones(frameSize,2)); 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(scope) release(deviceWriter)
Разработайте трех БИХ второго порядка высокие эквалайзеры полки с помощью designShelvingEQ
. Три отлогих эквалайзера используют три отдельных спецификации усиления.
Задайте частоту дискретизации, пиковое усиление, наклонный коэффициент и нормированную частоту среза для трех отлогих эквалайзеров. Частота дискретизации находится в Гц. Пиковое усиление находится в дБ.
Fs = 44.1e3; gain1 = -6; gain2 = 6; gain3 = 12; slope = 0.8; Fc = 18000/(Fs/2);
Разработайте коэффициенты фильтра с помощью заданных параметров.
[B1,A1] = designShelvingEQ(gain1,slope,Fc,'hi'); [B2,A2] = designShelvingEQ(gain2,slope,Fc,'hi'); [B3,A3] = designShelvingEQ(gain3,slope,Fc,'hi');
Создайте матрицы фильтра, совместимые с fvtool
.
SOS1 = [B1',[1,A1']]; SOS2 = [B2',[1,A2']]; SOS3 = [B3',[1,A3']];
Визуализируйте свой проект фильтра.
fvtool(dsp.BiquadFilter('SOSMatrix',SOS1),... dsp.BiquadFilter('SOSMatrix',SOS2),... dsp.BiquadFilter('SOSMatrix',SOS3),... '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
ФК
Нормированная частота срезаНормированная частота среза, заданная как действительный скаляр в области значений от 0 до 1, где 1 соответствует частоте Найквиста (π рад/выборка).
Нормированная частота среза реализована как половина отлогого усиления фильтра или gain
/2 дБ.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
ввод
Отфильтруйте тип'lo'
(значение по умолчанию) | 'hi'
Отфильтруйте тип, заданный как 'lo'
или 'hi'
.
'lo'
– Низко откладывание эквалайзера
'hi'
– Высоко откладывание эквалайзера
Типы данных: char | string
B
Коэффициенты фильтра числителяКоэффициенты фильтра числителя разработанного БИХ-фильтра второго порядка, повторно настроенного как трехэлементный вектор-столбец.
A
Коэффициенты фильтра знаменателяКоэффициенты фильтра знаменателя разработанного БИХ-фильтра второго порядка, возвращенного как двухэлементный вектор-столбец. A
не включает ведущий коэффициент единицы.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.