Документация Engee

EngeeDSP.FIRFilter

Стационарный или изменяющийся во времени КИХ-фильтр.

Библиотека

EngeeDSP

Описание

Чтобы реализовать структуру стационарного или изменяющегося во времени КИХ-фильтра, выполните следующие действия:

  1. Создайте объект EngeeDSP.FIRFilter и установите его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Чтобы узнать подробнее о том, как работать с системными объектами, см. Системные объекты Engee.

Синтаксис

Создание

  • fir = EngeeDSP.FIRFilter() возвращает объект КИХ-фильтра fir, который независимо фильтрует каждый канал (столбец) входного сигнала по времени, используя заданную реализацию КИХ-фильтра.

  • fir = EngeeDSP.FIRFilter(num) возвращает объект КИХ-фильтра fir со свойством Numerator, установленным на num.

  • fir = EngeeDSP.FIRFilter(Name=Value) возвращает объект КИХ-фильтра fir с указанным свойством Name, установленным на указанное значение Value. Вы можете указать дополнительные аргументы в виде пары имя-значение в любом порядке (Name1=Value1,…​,NameN=ValueN). Неуказанные свойства имеют значения по умолчанию.

Использование

  • y = fir(x) фильтрует входной сигнал x и выводит отфильтрованные значения y.

  • y = fir(x,coeff) фильтрует входной сигнал x, используя изменяющиеся во времени коэффициенты coeff, и выводит отфильтрованные значения y.

    Этот синтаксис можно использовать только в том случае, если для свойства NumeratorSource или для свойства ReflectionCoefficientsSource задано значение "Input port".

Аргументы

Входные аргументы

x — входной сигнал
вектор | матрица

Details

Входной сигнал, заданный в виде вектора или матрицы.

Если входной сигнал представлен в формате фиксированной точки, то формат должен быть указан в том случае, если свойство Structure имеет значение "Direct form symmetric" или "Direct form antisymmetric". Объект КИХ-фильтра работает с каждым каналом входного сигнала независимо при последовательных обращениях к объекту.

Этот системный объект поддерживает входные данные переменного размера.

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

Поддержка комплексных чисел

Да

coeff — коэффициенты фильтра
вектор-строка

Details

Коэффициенты фильтра, изменяющиеся во времени, заданные в виде вектора-строки. Входной сигнал x и входные коэффициенты должны иметь одинаковый тип данных.

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

Поддержка комплексных чисел

Да

Выходные аргументы

y — отфильтрованный выходной сигнал
вектор | матрица

Details

Отфильтрованный выходной сигнал, возвращаемый в виде вектора или матрицы. Размер и комплексность выходного сигнала такие же, как у входного сигнала.

Если входной сигнал имеет тип Float32 или Float64, то тип выходных данных совпадает с типом входных данных. Для целочисленных входов и входов с фиксированной точкой тип выходных данных зависит от значения свойств FullPrecisionOverride и OutputDataType.

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

Поддержка комплексных чисел

Да

Свойства

# Structure — структура фильтра
"Direct form" (по умолчанию) | "Direct form symmetric" | "Direct form antisymmetric" | "Direct form transposed" | "Lattice MA"

Details

Структура фильтра, заданная как "Direct form", "Direct form symmetric", "Direct form antisymmetric", "Direct form transposed", "Lattice MA".

# NumeratorSource — источник коэффициентов фильтра
"Property" (по умолчанию) | "Input port"

Details

Источник коэффициентов фильтра, указанный как один из следующих:

  • "Property" (по умолчанию) — коэффициенты фильтра задаются через свойство Numerator.

  • "Input port" — коэффициенты фильтра указываются в качестве входных аргументов объекта. Объект фильтра обновляет изменяющийся во времени фильтр один раз в каждом кадре.

Зависимости

Чтобы использовать это свойство, установите для свойства Structure значение "Direct form", "Direct form symmetric", "Direct form antisymmetric" или "Direct form transposed".

# ReflectionCoefficientsSource — источник коэффициентов фильтра
"Property" (по умолчанию) | "Input port"

Details

Источник коэффициентов решетчатого фильтра, указанный как один из следующих:

  • "Property" (по умолчанию) — коэффициенты решетчатого фильтра задаются через свойство ReflectionCoefficients.

  • "Input port" — коэффициенты фильтра указываются в качестве входных аргументов объекта. Объект фильтра обновляет изменяющийся во времени фильтр один раз в каждом кадре.

Зависимости

Чтобы использовать это свойство, установите для свойства Structure значение "Lattice MA".

# Numerator — коэффициенты числителя фильтра
[0.5 0.5] (по умолчанию) | вектор-строка

Details

Коэффициенты фильтра, заданные в виде вектора вещественных или комплексных чисел.

Зависимости

Чтобы использовать это свойство, установите для свойства Structure значение "Direct form", "Direct form symmetric", "Direct form antisymmetric" или "Direct form transposed", а для свойства NumeratorSource значение "Property".

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

Поддержка комплексных чисел

Да

# ReflectionCoefficients — коэффициенты отражения решетчатого фильтра
[0.5 0.5] (по умолчанию) | вектор-строка

Details

Коэффициенты отражения решетчатого фильтра, заданные в виде вектора вещественных или комплексных чисел.

Зависимости

Чтобы использовать это свойство, установите для свойства Structure значение "Lattice MA", а для свойства ReflectionCoefficientsSource значение "Property".

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

Поддержка комплексных чисел

Да

# InitialConditions — начальные условия для КИХ-фильтра
0 (по умолчанию) | скаляр

Details

Укажите начальные условия состояний фильтра. Объект КИХ-фильтра инициализирует все элементы задержки в фильтре этим значением.

Типы данных

Float32, Float64, Int8, Int16, Int32, UInt8, UInt16, UInt32, fixed

# FullPrecisionOverride — использование полной точности для арифметики с фиксированной точкой
true (по умолчанию) | false

Details

Укажите, следует ли использовать правила полной точности. Если вы установите для FullPrecisionOverride значение true, то объект будет вычислять всю внутреннюю арифметику и выходные типы данных с использованием правил полной точности. Эти правила обеспечивают наиболее точные вычисления с фиксированной точкой. При этом также не используются другие свойства фиксированной точки, поскольку они не применяются по отдельности. Эти правила гарантируют, что внутри объекта не происходит квантования. Биты добавляются по мере необходимости, чтобы исключить округление или переполнение. Если вы установите для FullPrecisionOverride значение false, то типы данных с фиксированной точкой будут управляться через индивидуальные настройки свойств фиксированной точки.

# RoundingMethod — метод округления
"Floor" (по умолчанию) | "Ceiling" | "Convergent" | "Nearest" | "Round" | "Simplest" | "Zero"

Details

Метод округления для операций с целочисленными числами и числами с фиксированной точкой, заданный как один из следующих:

  • "Floor" (по умолчанию);

  • "Ceiling";

  • "Convergent";

  • "Nearest";

  • "Round";

  • "Simplest";

  • "Zero".

# OutputDataType — тип данных выходного сигнала
"Same as input" (по умолчанию) | "Same as accumulator" | "Custom"

Details

Тип выходных данных с фиксированной точкой, заданный как "Same as input", "Same as accumulator" или "Custom". Если задано значение "Custom", то в свойстве CustomOutputDataType необходимо прописать тип выходных данных.

# CustomOutputDataType — пользовательский тип данных выходного сигнала
тип данных

Details

Тип данных выходного сигнала, применяемый при работе с целочисленными типами и числами с фиксированной точкой.

Пример: fir = EngeeDSP.FIRFilter(OutputDataType="Custom",CustomOutputDataType=fixdt(1, 16, 0))

Зависимости

Чтобы использовать это свойство, укажите для свойства OutputDataType значение "Custom".

Методы

Общие для всех системных объектов

step!

Запустить алгоритм работы системного объекта

release!

Разрешить изменение значения свойства системного объекта

reset!

Сброс внутренних состояний системного объекта