КИХ или БИХ фильтр lowpass
dsp.LowpassFilter
возразите независимо фильтрует каждый канал входа в зависимости от времени с помощью данных технических требований проекта. Можно установить FilterType
свойство dsp.LowpassFilter
к 'FIR'
или 'IIR'
реализовывать объект как КИХ или БИХ фильтр lowpass.
Отфильтровать каждый канал вашего входа:
Создайте dsp.LowpassFilter
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
возвращает КИХ минимального порядка фильтр lowpass, LPF
= dsp.LowpassFilterLPF
, с настройками фильтра по умолчанию. Вызов объекта с настройками свойства по умолчанию фильтрует входные данные с частотой полосы пропускания 8
kHz, частота полосы задерживания 12
kHz, неравномерность в полосе пропускания 0.1
дБ и затухание в полосе задерживания 80
дБ.
возвращает фильтр lowpass, с дополнительными свойствами, заданными одним или большим количеством LPF
= dsp.LowpassFilter(Name,Value
)Name,Value
парные аргументы. Name
имя свойства и Value
соответствующее значение. Name
должен появиться в одинарных кавычках (''). Можно задать несколько аргументов пары "имя-значение" в любом порядке как Name1,Value1,...,NameN,ValueN
.
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
SampleRate
— Введите частоту дискретизации
(значение по умолчанию) | действительная положительная скалярная величинаВведите частоту дискретизации в Гц в виде разделенной запятой пары, состоящей из 'SampleRate'
и действительная положительная скалярная величина.
Типы данных: single
| double
FilterType
— Отфильтруйте тип'FIR'
(значение по умолчанию) | 'IIR'
Отфильтруйте тип в виде одной из следующих опций:
'FIR'
— Объект проектирует КИХ фильтр lowpass.
'IIR'
— Объект проектирует БИХ lowpass (biquad) фильтр.
DesignForMinimumOrder
— Проект фильтра минимального порядкаtrue
(значение по умолчанию) | false
Проект фильтра минимального порядка в виде разделенной запятой пары, состоящей из 'DesignForMinimumOrder'
и логическое значение. Если этим свойством является true
, затем dsp.LowpassFilter
проекты фильтруют с минимальным порядком, который встречает частоте полосы пропускания, частоте полосы задерживания, неравномерности в полосе пропускания и техническим требованиям затухания в полосе задерживания. Установите эти технические требования с помощью соответствующих свойств. Если этим свойством является false
, затем объект проектирует фильтры с порядком, который вы задаете в FilterOrder
свойство. Это создание фильтра встречает частоте полосы пропускания, неравномерности в полосе пропускания и техническим требованиям затухания в полосе задерживания, что вы устанавливаете использование соответствующих свойств.
FilterOrder
— Порядок КИХ или БИХ-фильтра
(значение по умолчанию) | положительный целочисленный скалярПорядок КИХ или БИХ фильтрует в виде разделенной запятой пары, состоящей из 'FilterOrder'
и положительный целочисленный скаляр.
Определение порядка фильтра только допустимо когда значение 'DesignForMinimumOrder'
false
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
PassbandFrequency
— Отфильтруйте частоту ребра полосы пропускания
(значение по умолчанию) | действительная положительная скалярная величинаОтфильтруйте частоту ребра полосы пропускания в Гц в виде разделенной запятой пары 'PassbandFrequency'
и действительная положительная скалярная величина. Значение частоты ребра полосы пропускания в Гц должно быть меньше половины SampleRate
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StopbandFrequency
— Отфильтруйте частоту ребра полосы задерживания
(значение по умолчанию) | действительная положительная скалярная величинаОтфильтруйте частоту ребра полосы задерживания в Гц в виде разделенной запятой пары, состоящей из 'StopbandFrequency'
и действительная положительная скалярная величина. Значение частоты ребра полосы задерживания в Гц должно быть меньше половины SampleRate
.
Можно задать частоту ребра полосы задерживания только когда 'DesignForMinimumOrder'
true
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
PassbandRipple
— Максимальная пульсация ответа фильтра в полосе пропускания
(значение по умолчанию) | действительная положительная скалярная величинаМаксимальная пульсация ответа фильтра в полосе пропускания, в дБ в виде разделенной запятой пары, состоящей из 'PassbandRipple'
и действительная положительная скалярная величина. Максимальная пульсация значений по умолчанию ответа фильтра к 0.1
дБ.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
StopbandAttenuation
— Минимальное затухание в полосе задерживания
(значение по умолчанию) | действительная положительная скалярная величинаМинимальное затухание в полосе задерживания в дБ в виде разделенной запятой пары, состоящей из 'StopbandAttenuation'
и действительная положительная скалярная величина. Минимальное затухание в значениях по умолчанию полосы задерживания к 80
дБ.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
RoundingMethod
— Округление метода для выходных операций фиксированной точки'Floor'
(значение по умолчанию) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Simplest'
| 'Zero'
Округление метода для выходных операций фиксированной точки в виде вектора символов. Для получения дополнительной информации об округляющихся режимах смотрите Точность и Область значений.
CoefficientsDataType
— Word и дробные длины коэффициентовnumerictype(1,16)
(значение по умолчанию) | numerictype
объектWord и дробные длины коэффициентов в виде numerictype
объект. Значение по умолчанию, numerictype(1,16)
соответствует числовому текстовому объекту со знаком с 16-битными коэффициентами и дробной длиной, определенной на основе содействующих значений, чтобы дать самую лучшую точность.
Это свойство не является настраиваемым.
Размер слова выхода - то же самое как размер слова входа. Дробная продолжительность выхода вычисляется таким образом, что целый динамический диапазон выхода может быть представлен без переполнения. Для получения дополнительной информации о том, как дробная продолжительность выхода вычисляется, см. Правила Точности Фиксированной точки для Предотвращения Переполнения в КИХ-Фильтрах.
x
— Зашумленные данные вводятсяВход зашумленных данных в виде вектора или матрицы. Если входной сигнал является матрицей, каждый столбец матрицы обработан как независимый канал. Количество строк во входном сигнале обозначает длину канала. Этот объект принимает входные параметры переменного размера. После того, как объект заблокирован, можно изменить размер каждого входного канала, но вы не можете изменить количество каналов.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
Поддержка комплексного числа: Да
y
— Filtered выходФильтрованный выходной параметр, возвращенный как вектор или матрица. Выход имеет тот же размер, тип данных и характеристики сложности как вход.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| fi
Поддержка комплексного числа: Да
Чтобы использовать объектную функцию, задайте Систему object™ как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
dsp.LowpassFilter
freqz | Частотная характеристика дискретного времени фильтрует Системный объект |
fvtool | Визуализируйте частотную характеристику фильтров DSP |
impz | Импульсная характеристика дискретного времени фильтрует Системный объект |
info | Информация о Системном объекте фильтра |
coeffs | Возвращает коэффициенты Системного объекта фильтра в структуре |
cost | Оцените стоимость реализации Системного объекта фильтра |
grpdelay | Ответ групповой задержки дискретного времени фильтрует Системный объект |
generatehdl | Сгенерируйте HDL-код для квантованного фильтра DSP (требует Filter Design HDL Coder), |
measure | Измерьте характеристики частотной характеристики Системного объекта фильтра |
Создайте КИХ минимального порядка фильтр lowpass для данных, произведенных на уровне 44,1 кГц. Задайте частоту полосы пропускания 8 кГц, частоту полосы задерживания 12 кГц, неравномерность в полосе пропускания 0,1 дБ и затухание в полосе задерживания 80 дБ.
Fs = 44.1e3; filtertype = 'FIR'; Fpass = 8e3; Fstop = 12e3; Rp = 0.1; Astop = 80; FIRLPF = dsp.LowpassFilter('SampleRate',Fs, ... 'FilterType',filtertype, ... 'PassbandFrequency',Fpass, ... 'StopbandFrequency',Fstop, ... 'PassbandRipple',Rp, ... 'StopbandAttenuation',Astop);
Спроектируйте БИХ минимального порядка фильтр lowpass с теми же свойствами как КИХ фильтр lowpass. Измените FilterType
свойство клонированного фильтра к IIR
.
IIRLPF = clone(FIRLPF);
IIRLPF.FilterType = 'IIR';
Постройте импульсную характеристику КИХ фильтр lowpass. Коэффициент нулевого порядка задерживается 19 выборками, который равен групповой задержке фильтра. КИХ фильтр lowpass является причинным КИХ-фильтром.
fvtool(FIRLPF,'Analysis','impulse')
Постройте импульсную характеристику БИХ фильтр lowpass.
fvtool(IIRLPF,'Analysis','impulse')
Постройте величину и фазовый отклик КИХ фильтр lowpass.
fvtool(FIRLPF,'Analysis','freq')
Постройте величину и фазовый отклик БИХ фильтр lowpass.
fvtool(IIRLPF,'Analysis','freq')
Вычислите стоимость реализации КИХ фильтр lowpass.
cost(FIRLPF)
ans = struct with fields:
NumCoefficients: 39
NumStates: 38
MultiplicationsPerInputSample: 39
AdditionsPerInputSample: 38
Вычислите стоимость реализации БИХ фильтр lowpass. БИХ-фильтр более эффективен, чтобы реализовать, чем КИХ-фильтр.
cost(IIRLPF)
ans = struct with fields:
NumCoefficients: 18
NumStates: 14
MultiplicationsPerInputSample: 18
AdditionsPerInputSample: 14
Вычислите групповую задержку КИХ фильтр lowpass.
grpdelay(FIRLPF)
Вычислите групповую задержку БИХ фильтр lowpass. КИХ-фильтр имеет постоянную групповую задержку (линейная фаза), в то время как ее БИХ-дубликат не делает.
grpdelay(IIRLPF)
Создайте фильтр lowpass со свойствами по умолчанию.
LPF = dsp.LowpassFilter;
Создайте спектр объект анализатора.
hSA = dsp.SpectrumAnalyzer('SampleRate',44.1e3,... 'PlotAsTwoSidedSpectrum',false,'ShowLegend',true,'YLimits',... [-150 30],... 'Title',... 'Input Signal and Output Signal of Lowpass Filter'); hSA.ChannelNames = {'Input','Output'};
Реализуйте step
на LPF
отфильтровать белый Гауссов шумный входной сигнал. Просмотрите сигналы ввода и вывода с помощью спектра анализатор.
for k = 1:100 Input = randn(1024,1); Output = step(LPF,Input); step(hSA,[Input,Output]); end
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным step
синтаксис. Например, myObject (x) становится шагом (myObject, x).
Настройте БИХ фильтр lowpass. Частота дискретизации белого Гауссова шума составляет 44 100 Гц. Частота полосы пропускания фильтра составляет 8 кГц, частота полосы задерживания составляет 12 кГц, неравномерность в полосе пропускания составляет 0,1 дБ, и затухание в полосе задерживания составляет 80 дБ.
Fs = 44.1e3; filtertype = 'IIR'; Fpass = 8e3; Fstop = 12e3; Rp = 0.1; Astop = 80; LPF = dsp.LowpassFilter('SampleRate',Fs,... 'FilterType',filtertype,... 'PassbandFrequency',Fpass,... 'StopbandFrequency',Fstop,... 'PassbandRipple',Rp,... 'StopbandAttenuation',Astop);
Просмотрите ответ величины фильтра lowpass.
fvtool(LPF)
Создайте спектр объект анализатора.
hSA = dsp.SpectrumAnalyzer('SampleRate',44.1e3,... 'PlotAsTwoSidedSpectrum',false,'ShowLegend',true,'YLimits',... [-150 30],... 'Title',... 'Input Signal and Output Signal of IIR Lowpass Filter'); hSA.ChannelNames = {'Input','Output'};
Отфильтруйте белый Гауссов шумный входной сигнал. Просмотрите сигналы ввода и вывода с помощью спектра анализатор.
for k = 1:100 Input = randn(1024,1); Output = LPF(Input); hSA([Input,Output]); end
Измерьте характеристики частотной характеристики фильтра lowpass. Создайте dsp.LowpassFilter
Системный объект со свойствами по умолчанию. Измерьте характеристики частотной характеристики фильтра.
LPF = dsp.LowpassFilter
LPF = dsp.LowpassFilter with properties: FilterType: 'FIR' DesignForMinimumOrder: true PassbandFrequency: 8000 StopbandFrequency: 12000 PassbandRipple: 0.1000 StopbandAttenuation: 80 SampleRate: 44100 Show all properties
LPFMeas = measure(LPF)
LPFMeas = Sample Rate : 44.1 kHz Passband Edge : 8 kHz 3-dB Point : 9.1311 kHz 6-dB Point : 9.5723 kHz Stopband Edge : 12 kHz Passband Ripple : 0.08289 dB Stopband Atten. : 81.6141 dB Transition Width : 4 kHz
Когда FilterType
свойство установлено в 'FIR'
, dsp.LowpassFilter
возразите действиям как КИХ фильтр lowpass.
В этой настройке, dsp.LowpassFilter
альтернатива использованию firceqrip
и firgr
с dsp.FIRFilter
. Этот объект уплотняет двухступенчатый процесс в один. Для проекта минимального порядка, объектное использование обобщенный КИХ-алгоритм создания фильтра Remez. Для заданного проекта порядка объект использует ограниченный equiripple КИХ-алгоритм создания фильтра. Спроектированный фильтр затем реализуется как линейный фильтр Типа 1 фазы с Direct form
структура. Можно использовать measure
проверять, что проект выполняет предписанным техническим требованиям.
Когда FilterType
свойство установлено в 'IIR'
, dsp.LowpassFilter
возразите действиям как БИХ фильтр lowpass. В этой настройке объект использует эллиптический метод разработки вычислить SOS и значения шкалы, требуемые выполнить техническим требованиям создания фильтра. Объект использует SOS и значения шкалы, чтобы установить Direct form I
биквадратный БИХ-фильтр, который формирует базис БИХ-версии dsp.LowpassFilter
Системный объект. Можно использовать measure
проверять, что проект выполняет предписанным техническим требованиям.
[1] Shpak, D.J., и А. Антонайоу. "Обобщенный метод Remez для проекта КИХ-цифровых фильтров". IEEE® Transactions на Схемах и Системах. Издание 37, Выпуск 2, февраль 1990, стр 161–174.
[2] Selesnick, I.W., и К. С. Беррус. "Алгоритмы Exchange, которые дополняют алгоритм Парков-McClellan для проекта КИХ-фильтра линейной фазы". Транзакции IEEE на Схемах и Системах. Издание 44, Выпуск 2, февраль 1997, стр 137–143.
Указания и ограничения по применению:
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
Эта генерация кода поддержки объектов для ARM® Cortex®-M и процессоров ARM Cortex-A. Чтобы узнать больше о генерации кода Коры ARM, смотрите Генерацию кода для ARM Cortex-M и процессоры ARM Cortex-A.
Этот объект также поддерживает использование генерации кода SIMD технология Intel AVX2 при этих условиях:
FilterType
установлен в 'FIR'
.
Входной сигнал имеет тип данных single
или double
.
Технология SIMD значительно улучшает производительность сгенерированного кода.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.