Фильтр импульсной характеристики Бога (IIR)
dsp.IIRFilter
Система object™ фильтрует каждый канал входа с помощью заданного фильтра. Можно задать фильтр, чтобы иметь 'Direct form I'
, 'Direct form I transposed'
, 'Direct form II'
, или 'Direct form II transposed'
структура.
Используйте свойства Numerator и Denominator задать коэффициенты числителя фильтра и коэффициенты знаменателя. В дополнение к этим коэффициентам можно также указать, что ненулевая начальная буква пропускает состояния через свойство InitialConditions.
Отфильтровать сигнал с помощью БИХ-фильтра:
Создайте dsp.IIRFilter
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
создает Системный объект фильтра бесконечной импульсной характеристики (IIR), который независимо фильтрует каждый канал входа в зависимости от времени с помощью заданной БИХ-реализации фильтра.iir
= dsp.IIRFilter
создает БИХ-объект фильтра с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в одинарные кавычки.iir
= dsp.IIRFilter(Name,Value
)
Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и release
функция разблокировала их.
Если свойство является настраиваемым, можно изменить его значение в любое время.
Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты.
Structure
— БИХ фильтруют структуру'Direct form II transposed'
(значение по умолчанию) | 'Direct form I'
| 'Direct form I transposed'
| 'Direct form II'
БИХ фильтруют структуру в виде 'Direct form I'
, 'Direct form I transposed'
, 'Direct form II'
, или 'Direct form II transposed'
.
Numerator
— Коэффициенты числителя
(значение по умолчанию) | вектор-строкаКоэффициенты числителя в виде вектора-строки.
Пример: [0.0296 0.1775 0.4438 0.5918 0.4438 0.1775 0.0296
]
Настраиваемый: да
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
Denominator
— Коэффициенты знаменателя
(значение по умолчанию) | вектор-строкаКоэффициенты знаменателя в виде вектора-строки.
Пример: [1.0000 -0.0000 0.7777 -0.0000 0.1142 -0.0000 0.0018
]
Настраиваемый: да
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
InitialConditions
— Начальные условия
(значение по умолчанию) | скаляр | вектор | матрицаНачальные условия фильтра утверждают в виде одного из следующего:
скаляр – объект инициализирует все элементы задержки в фильтре к скалярному значению.
вектор – длина вектора равняется количеству элементов задержки в фильтре. Каждый векторный элемент задает уникальное начальное условие для соответствующего элемента задержки. Объект применяет тот же вектор к каждому каналу входного сигнала.
матрица – количество строк в матрице должно равняться количеству элементов задержки в фильтре. Количество столбцов в матрице должно равняться количеству каналов во входе. Каждый элемент задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале.
Количество состояний фильтра равняется макс. (N, M) – 1, где N является количеством полюсов, и M является количеством нулей.
Настраиваемый: да
Это свойство применяется только, когда вы устанавливаете свойство Structure на 'Direct form II'
или 'Direct form II transposed'
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
NumeratorInitialConditions
— Начальные условия на нулевой стороне
(значение по умолчанию) | скаляр | вектор | матрицаНачальные условия фильтра утверждают на стороне структуры фильтра с нулями в виде одного из следующего:
скаляр – объект инициализирует все элементы задержки на нулевой стороне в фильтре к скалярному значению.
вектор – длина вектора равняется количеству элементов задержки на нулевой стороне в фильтре. Каждый векторный элемент задает уникальное начальное условие для соответствующего элемента задержки на нулевой стороне. Объект применяет тот же вектор из начальных условий к каждому каналу входного сигнала.
матрица – количество строк в матрице должно равняться количеству элементов задержки на нулевой стороне в фильтре. Количество столбцов в матрице должно равняться количеству каналов во входном сигнале. Каждый элемент задает уникальное начальное условие для соответствующего элемента задержки на нулевой стороне в соответствующем канале.
Количество состояний фильтра равняется макс. (N, M) – 1, где N является количеством полюсов, и M является количеством нулей, соответственно.
Настраиваемый: да
Это свойство применяется только, когда вы устанавливаете свойство Structure на 'Direct form I'
или 'Direct form I transposed'
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
DenominatorInitialConditions
— Начальные условия на стороне полюсов
(значение по умолчанию) | скаляр | вектор | матрицаНачальные условия фильтра утверждают на стороне структуры фильтра с полюсами в виде одного из следующего:
скаляр – объект инициализирует все элементы задержки на стороне полюсов в фильтре к скалярному значению.
вектор – длина вектора равняется количеству элементов задержки на стороне полюсов в фильтре. Каждый векторный элемент задает уникальное начальное условие для соответствующего элемента задержки на стороне полюсов. Объект применяет тот же вектор из начальных условий к каждому каналу входного сигнала.
матрица – количество строк в матрице должно равняться количеству элементов задержки на стороне полюсов в фильтре. Количество столбцов в матрице должно равняться количеству каналов во входном сигнале. Каждый элемент задает уникальное начальное условие для соответствующего элемента задержки на стороне полюсов в соответствующем канале.
Количество состояний фильтра равняется макс. (N, M) – 1, где N является количеством полюсов, и M является количеством нулей, соответственно.
Настраиваемый: да
Это свойство применяется только, когда вы устанавливаете свойство Structure на 'Direct form I'
или 'Direct form I transposed'
.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
RoundingMethod
— Округление метода'Floor'
(значение по умолчанию) | 'Ceiling'
| 'Convergent'
| 'Nearest'
| 'Round'
| 'Simplest'
| 'Zero'
Выберите округляющийся режим для операций фиксированной точки.
OverflowAction
— Действие переполнения'Wrap'
(значение по умолчанию) | 'Saturate'
Действие переполнения для операций фиксированной точки в виде одного из следующего:
'Wrap'
– Объект переносит результат своих операций фиксированной точки.
'Saturate'
– Объект насыщает результат своих операций фиксированной точки.
Для получения дополнительной информации о действиях переполнения смотрите режим переполнения для операций фиксированной точки.
StateDataType
— Тип данных состояния'Same as input'
(значение по умолчанию) | 'Custom'
Тип данных состояния в виде одного из следующего:
'Same as input'
– Тип данных состояния - то же самое как тип входных данных.
'Custom'
– Тип выходных данных состояния является числовым типом автосо знаком через свойство CustomStateDataType.
CustomStateDataType
— Слово состояния и дробные длиныnumerictype([],16,15)
(значение по умолчанию)Слово состояния и дробные длины в виде числового типа автосо знаком с размером слова 16 и дробная длина 15.
Это свойство применяется только, когда вы устанавливаете StateDataType на 'Custom'
.
NumeratorCoefficientsDataType
— Тип данных коэффициентов числителя'Same word length as input'
(значение по умолчанию) | 'Custom'
Тип данных коэффициентов числителя в виде одного из следующего:
'Same word length as input'
– Размер слова коэффициентов числителя совпадает с входным размером слова. Дробная длина выбрана, чтобы дать самую лучшую точность.
'Custom'
– Тип данных коэффициентов числителя является числовым типом автосо знаком, заданным свойством CustomNumeratorCoefficientsDataType.
CustomNumeratorCoefficientsDataType
— Word и дробные длины коэффициентов числителяnumerictype([],16,15)
(значение по умолчанию)Word и дробные длины коэффициентов числителя в виде числового типа автосо знаком с размером слова 16 и дробная длина 15.
Это свойство применяется только, когда вы устанавливаете NumeratorCoefficientsDataType на 'Custom'
.
DenominatorCoefficientsDataType
— Тип данных коэффициентов знаменателя'Same word length as input'
(значение по умолчанию) | 'Custom'
Тип данных коэффициентов знаменателя в виде одного из следующего:
'Same word length as input'
– Размер слова коэффициентов знаменателя совпадает с размером слова входного размера слова. Дробная длина выбрана, чтобы дать самую лучшую точность.
'Custom'
– Тип данных коэффициентов знаменателя является числовым типом автосо знаком, заданным свойством CustomDenominatorCoefficientsDataType.
CustomDenominatorCoefficientsDataType
— Word и дробные длины коэффициентов знаменателяnumerictype([],16,15)
(значение по умолчанию)Word и дробные длины коэффициентов знаменателя в виде числового типа автосо знаком с размером слова 16 и дробная длина 15.
Это свойство применяется только, когда вы устанавливаете DenominatorCoefficientsDataType на 'Custom'
.
NumeratorProductDataType
— Тип данных продукта числителя'Full precision'
(значение по умолчанию) | 'Same as input'
| 'Custom'
Тип данных выхода операции продукта в полиноме числителя БИХ фильтрует в виде одного из следующего:
'Full precision'
– Объект вычисляет тип выходных данных продукта числителя, использующий правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Никакое квантование не происходит. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.
'Same as input'
– Тип выходных данных продукта совпадает с типом входных данных.
'Custom'
– Тип выходных данных продукта является пользовательским числовым типом, заданным свойством CustomNumeratorProductDataType. Метод округления и действие переполнения заданы как свойства RoundingMethod и OverflowAction.
CustomNumeratorProductDataType
— Слово продукта числителя и дробные длиныnumerictype([],32,30)
(значение по умолчанию)Слово продукта числителя и дробные длины в виде числового типа автосо знаком с размером слова 32 и дробная длина 30.
Это свойство применяется только, когда вы устанавливаете NumeratorProductDataType на 'Custom'
.
DenominatorProductDataType
— Тип данных продукта знаменателя'Full precision'
(значение по умолчанию) | 'Same as input'
| 'Custom'
Тип данных выхода операции продукта в полиноме знаменателя БИХ фильтрует в виде одного из следующего:
'Full precision'
– Объект вычисляет тип выходных данных продукта знаменателя, использующий правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Никакое квантование не происходит. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.
'Same as input'
– Тип выходных данных продукта совпадает с типом входных данных.
'Custom'
– Тип выходных данных продукта является пользовательским числовым типом, заданным свойством CustomDenominatorProductDataType. Метод округления и действие переполнения заданы как свойства RoundingMethod и OverflowAction.
CustomDenominatorProductDataType
— Слово продукта знаменателя и дробные длиныnumerictype([],32,30)
(значение по умолчанию)Слово продукта знаменателя и дробные длины в виде числового типа автосо знаком с размером слова 32 и дробная длина 30.
Это свойство применяется только, когда вы устанавливаете DenominatorProductDataType на 'Custom'
.
NumeratorAccumulatorDataType
— Тип данных аккумулятора числителя'Full precision'
(значение по умолчанию) | 'Same as input'
| 'Same as product'
| 'Custom'
Тип данных выхода операции накопления в полиноме числителя БИХ фильтрует в виде одного из следующего:
'Full precision'
– Объект вычисляет тип данных аккумулятора числителя, использующий правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Никакое квантование не происходит. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.
'Same as input'
– Тип данных аккумулятора совпадает с типом входных данных.
'Same as product'
– Тип данных аккумулятора совпадает с типом выходных данных продукта.
'Custom'
– Тип данных аккумулятора является пользовательским числовым типом, заданным свойством CustomNumeratorAccumulatorDataType. Метод округления и действие переполнения заданы как свойства RoundingMethod и OverflowAction.
CustomNumeratorAccumulatorDataType
— Слово аккумулятора числителя и дробные длиныnumerictype([],32,30)
(значение по умолчанию)Слово аккумулятора числителя и дробные длины в виде числового типа автосо знаком с размером слова 32 и дробная длина 30.
Это свойство применяется только, когда вы устанавливаете NumeratorAccumulatorDataType на 'Custom'
.
DenominatorAccumulatorDataType
— Тип данных аккумулятора знаменателя'Full precision'
(значение по умолчанию) | 'Same as input'
| 'Same as product'
| 'Custom'
Тип данных выхода операции накопления в полиноме знаменателя БИХ фильтрует в виде одного из следующего:
'Full precision'
– Объект вычисляет тип данных аккумулятора знаменателя, использующий правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Никакое квантование не происходит. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.
'Same as input'
– Тип данных аккумулятора совпадает с типом входных данных.
'Same as product'
– Тип данных аккумулятора совпадает с типом выходных данных продукта.
'Custom'
– Тип данных аккумулятора является пользовательским числовым типом, заданным свойством CustomDenominatorAccumulatorDataType. Метод округления и действие переполнения заданы как свойства RoundingMethod и OverflowAction.
CustomDenominatorAccumulatorDataType
— Слово аккумулятора знаменателя и дробные длиныnumerictype([],32,30)
(значение по умолчанию)Слово аккумулятора знаменателя и дробные длины в виде числового типа автосо знаком с размером слова 32 и дробная длина 30.
Это свойство применяется только, когда вы устанавливаете DenominatorAccumulatorDataType на 'Custom'
.
OutputDataType
— Тип выходных данных'Same as input'
(значение по умолчанию) | 'Full precision'
| 'Custom'
Тип данных выхода dsp.IIRFilter
объект в виде одного из следующего:
'Same as input'
– Тип выходных данных совпадает с типом входных данных.
'Full precision'
– Объект вычисляет тип выходных данных, использующий правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Никакое квантование не происходит. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.
'Custom'
– Тип выходных данных является пользовательским числовым типом, заданным свойством CustomOutputDataType. Метод округления и действие переполнения заданы как свойства RoundingMethod и OverflowAction.
CustomOutputDataType
— Выведите слово и дробные длиныnumerictype([],16,15)
(значение по умолчанию)Выведите слово и дробные длины в виде числового типа автосо знаком с размером слова 16 и дробную длину 15.
Это свойство применяется только, когда вы устанавливаете OutputDataType на 'Custom'
.
MultiplicandDataType
— Тип данных множимого'Same as input'
(значение по умолчанию) | 'Custom'
Тип данных множимого в виде одного из следующего:
'Same as input'
– Тип данных множимого совпадает с типом входных данных.
'Custom'
– Тип данных множимого является числовым типом автосо знаком, задает свойством CustomMultiplicandDataType.
CustomMultiplicandDataType
— Multiplicand слово выхода и дробные длиныnumerictype([],16,15)
(значение по умолчанию)Multiplicand слово выхода и дробные длины в виде числового типа автосо знаком с размером слова 16 и дробная длина 15.
Это свойство применяется только, когда вы устанавливаете MultiplicandDataType на 'Custom'
.
input
— Ввод данныхВвод данных, который отфильтрован в виде вектора или матрицы.
Пример: randn(34,24)
Типы данных: single
| double
| int8
| int16
| int32
| int64
| fi
Поддержка комплексного числа: Да
iirOut
— Filtered выходФильтрованный выходной параметр, возвращенный как вектор или матрица. Размер, тип данных и сложность соответствия outpout тот из входа.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| fi
Поддержка комплексного числа: Да
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
freqz | Частотная характеристика дискретного времени фильтрует Системный объект |
fvtool | Визуализируйте частотную характеристику фильтров DSP |
impz | Импульсная характеристика дискретного времени фильтрует Системный объект |
phasez | Фазовый отклик дискретного времени фильтрует (развернутый) Системный объект |
sos | Преобразуйте в разделы второго порядка |
Для списка методов анализа фильтра это поддержка объектов ввести dsp.IIRFilter.helpFilterAnalysis
в командной строке MATLAB®. Для соответствующих страниц ссылки на функцию смотрите Методы анализа для Системных объектов Фильтра.
Отфильтруйте шумный синусоидальный сигнал с помощью lowpass butterworth БИХ-фильтр.
Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом шага. Например, obj(x)
становится step(obj,x)
.
Входной сигнал
Входной сигнал имеет три тона, 1 кГц, 5 кГц и 12 кГц.
Sine1 = dsp.SineWave('Frequency',1e3,'SampleRate',44.1e3); Sine2 = dsp.SineWave('Frequency',5e3,'SampleRate',44.1e3); Sine3 = dsp.SineWave('Frequency',12e3,'SampleRate',44.1e3);
Создание фильтра
Используйте butter
функционируйте, чтобы спроектировать 10-й порядок Фильтр Баттерворта lowpass.
N = 10; Fc = 0.4; [b,a] = butter(N,Fc);
Создайте dsp.IIRFilter
возразите и присвойте спроектированные коэффициенты Numerator
и Denominator
свойства.
iir = dsp.IIRFilter('Numerator',b,'Denominator',a);
Просмотрите ответ величины фильтра. Частота среза в 0,4 рад/выборках, которые, с частотой дискретизации 44,1 кГц, переводят в или 8,82 кГц.
fvtool(iir,'Fs',Sine1.SampleRate)
Просмотрите спектр мощности сигнала ввода и вывода использование Spectrum Analyzer
.
sa = dsp.SpectrumAnalyzer('SampleRate',Sine1.SampleRate,'NumInputPorts',2,... 'PlotAsTwoSidedSpectrum',false,... 'OverlapPercent',80,'PowerUnits','dBW',... 'YLimits',[-220 -10]);
Потоковая передача
Добавьте нулевой средний белый Гауссов шум со стандартным отклонением 0,01 к сумме синусоид. Отфильтруйте сигнал с помощью БИХ-фильтра.
Тоны на уровне 1 кГц и 5 кГц незатронуты, поскольку они падают в полосе пропускания. Частота на уровне 12 кГц ослабляется, поскольку она падает в полосе перехода фильтра.
for i = 1:1000 input = Sine1()+Sine2()+Sine3()+0.01*randn(Sine1.SamplesPerFrame,1); output = iir(input); sa(input,output) end
Спроектируйте гребенчатый фильтр отметки с 8 метками и пропускную способность метки 0,02 ссылаемых к уровню на-3 дБ.
Создайте comb
объект спецификации создания фильтра использование fdesign.comb
функционируйте и задайте эти расчетные параметры.
combSpecs = fdesign.comb('notch','N,BW',8,0.02);
Спроектируйте гребенчатый фильтр отметки с помощью design
функция. Получившимся фильтром является dsp.IIRFilter
Система object™. Для получения дополнительной информации о том, как применить этот фильтр на потоковую передачу данных, обратитесь к dsp.IIRFilter
.
iirFilt = design(combSpecs,'Systemobject',true)
iirFilt = dsp.IIRFilter with properties: Structure: 'Direct form II' Numerator: [0.8878 0 0 0 0 0 0 0 -0.8878] Denominator: [1 0 0 0 0 0 0 0 -0.7757] InitialConditions: 0 Show all properties
Просмотрите ответ величины спроектированного фильтра с помощью fvtool
.
fvtool(iirFilt)
Указания и ограничения по применению:
Только Numerator
и Denominator
свойства являются настраиваемыми для генерации кода.
Смотрите системные объекты в Генерации кода MATLAB (MATLAB Coder).
dsp.IIRFilter
Системный объект поддерживает следующие структуры фильтра. Схемы в каждом разделе show типы данных используются в структурах фильтра для сигналов фиксированной точки. Можно установить типы данных с помощью свойств фиксированной точки объекта.
Следующие ограничения применяются когда Structure
свойство установлено в 'Direct form I'
:
Входные параметры могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя должны иметь те же характеристики сложности. Когда числитель и коэффициенты знаменателя имеют различные сложности друг от друга, объектные процессы фильтр, как будто два набора комплексных коэффициентов обеспечиваются. Набор вещественного коэффициента обработан, как будто это - комплексный вектор с мнимыми частями с нулевым знаком.
Тип данных состояния не может быть задан для этой структуры. Выполнение так не возможно, потому что состояния ввода и вывода имеют совпадающие типы данных как буферы ввода и вывода.
Следующие ограничения применяются когда Structure
свойство установлено в 'Direct form I transposed'
:
Входные параметры могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя должны иметь те же характеристики сложности. Когда числитель и коэффициенты знаменателя имеют различные сложности друг от друга, объектные процессы фильтр, как будто два набора комплексных коэффициентов обеспечиваются. Набор вещественного коэффициента обработан, как будто это - комплексный вектор с мнимыми частями с нулевым знаком.
Состояния являются комплексными, когда или вход или коэффициенты являются комплексными.
Следующие ограничения применяются когда Structure
свойство установлено в 'Direct form II'
:
Входные параметры могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя должны иметь те же характеристики сложности. Когда числитель и коэффициенты знаменателя имеют различные сложности друг от друга, объектные процессы фильтр, как будто два набора комплексных коэффициентов обеспечиваются. Набор вещественного коэффициента обработан, как будто это - комплексный вектор с мнимыми частями с нулевым знаком.
Состояния являются комплексными, когда или входные параметры или коэффициенты являются комплексными.
Следующие ограничения применяются когда Structure
свойство установлено в 'Direct form II transposed'
:
Входные параметры могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя могут быть действительными или комплексными.
Числитель и коэффициенты знаменателя должны иметь те же характеристики сложности. Когда числитель и коэффициенты знаменателя имеют различные сложности друг от друга, объектные процессы фильтр, как будто два набора комплексных коэффициентов обеспечиваются. Набор вещественного коэффициента обработан, как будто это - комплексный вектор с мнимыми частями с нулевым знаком.
Состояния являются комплексными, когда или входные параметры или коэффициенты являются комплексными.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.