Статический или изменяющийся во времени фильтр FIR
dsp.FIRFilter Система object™ фильтрует каждый канал входного сигнала с помощью реализации статического или изменяющегося во времени фильтра FIR.
Для фильтрации каждого канала входа:
Создать dsp.FIRFilter и задайте его свойства.
Вызовите объект с аргументами, как если бы это была функция.
Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.
При определенных условиях этот объект System также поддерживает создание кода SIMD. Дополнительные сведения см. в разделе Создание кода.
возвращает объект фильтра конечной импульсной характеристики (FIR), fir = dsp.FIRFilterfir, который независимо фильтрует каждый канал входного сигнала во времени с использованием указанной реализации фильтра FIR.
возвращает объект System фильтра FIR, fir = dsp.FIRFilter(num)fir, с Numerator свойство имеет значение num.
возвращает объект System фильтра FIR, fir = dsp.FIRFilter(Name,Value)fir, каждое свойство имеет заданное значение.
Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.
Если свойство настраивается, его значение можно изменить в любое время.
Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.
Structure - Структура фильтраDirect form (по умолчанию) | Direct form symmetric | Direct form antisymmetric | Direct form transposed | Lattice MAУкажите структуру фильтра. Можно указать структуру фильтра как одну из Direct form | Direct form symmetric | Direct form antisymmetric | Direct form transposed | Lattice MA.
NumeratorSource - Источник коэффициентов фильтраProperty (по умолчанию) | Input portУкажите источник коэффициентов фильтра как Property или Input port. При указании Input portобъект фильтра обновляет изменяющийся во времени фильтр один раз в каждый кадр.
Это применимо при установке Structure кому Direct form | Direct form symmetric | Direct form antisymmetric | Direct form transposed.
ReflectionCoefficientsSource - Источник коэффициентов фильтраProperty (по умолчанию) | Input portУкажите источник коэффициентов фильтра решетки как Property или Input port. При указании Input portобъект фильтра обновляет изменяющийся во времени фильтр один раз в каждый кадр.
Это применимо при установке Structure кому Lattice MA.
Numerator - Числительные коэффициенты[0.5 0.5] (по умолчанию) | вектор строкиУкажите коэффициенты фильтра как действительный или комплексный числовой вектор строки.
Настраиваемый: Да
Это свойство применяется при установке NumeratorSource свойство для Propertyи свойство Structure имеет значение Direct form, Direct form symmetric, Direct form antisymmetric, или Direct form transposed.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного номера: Да
ReflectionCoefficients - Коэффициенты отражения структуры решетчатого фильтра[0.5 0.5] (по умолчанию) | вектор строкиЗадайте коэффициенты отражения решетчатого фильтра как действительный или комплексный числовой вектор строки.
Настраиваемый: Да
Это свойство применяется при установке для свойства Structure значения Lattice MA, и ReflectionCoefficientsSource свойство для Property.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного номера: Да
InitialConditions - Исходные условия для фильтра FIR0 (по умолчанию) | скаляр | вектор | матрицаУкажите начальные условия состояний фильтра. Число состояний или элементов задержки равно количеству коэффициентов отражения для решетчатой структуры или числу коэффициентов-1 фильтра для других структур прямого вида.
Начальные условия можно задать как скаляр, вектор или матрицу. Если указать скалярное значение, объект фильтра FIR инициализирует все элементы задержки в фильтре до этого значения. Если указать вектор, длина которого равна количеству элементов задержки в фильтре, каждый элемент вектора задает уникальное начальное условие для соответствующего элемента задержки. Объект применяет один и тот же вектор начальных условий к каждому каналу входного сигнала.
Если задать вектор, длина которого равна произведению числа входных каналов и числа элементов задержки в фильтре, каждый элемент задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале.
Если указать матрицу с тем же количеством строк, что и количество элементов задержки в фильтре, и один столбец для каждого канала входного сигнала, каждый элемент задает уникальное начальное условие для соответствующего элемента задержки в соответствующем канале.
Настраиваемый: Да
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
FullPrecisionOverride - Полное переопределение точности для арифметики с фиксированной точкойtrue (по умолчанию) | false Укажите, следует ли использовать правила полной точности. Если установить FullPrecisionOverride кому trueпо умолчанию объект вычисляет все внутренние арифметические и выходные типы данных с использованием правил полной точности. Эти правила обеспечивают наиболее точные числа фиксированных точек. Он также отключает отображение других свойств фиксированной точки, поскольку они не применяются по отдельности. Эти правила гарантируют, что квантование не происходит внутри объекта. При необходимости добавляются биты, чтобы гарантировать отсутствие скругления или переполнения. Если установить FullPrecisionOverride кому falseтипы данных с фиксированной точкой управляются с помощью отдельных настроек свойств с фиксированной точкой. Дополнительные сведения см. в разделе Полная точность для системных объектов с фиксированной точкой.
RoundingMethod - Метод округления для операций с фиксированной точкойFloor (по умолчанию) | Ceiling | Convergent | Nearest | Round | Simplest | ZeroУкажите метод округления.
Это свойство применяется только в том случае, если объект находится не в режиме полной точности.
OverflowAction - Действие переполнения для операций с фиксированной точкойWrap (по умолчанию) | SaturateУкажите действие переполнения как Wrap или Saturate.
Это свойство применяется только в том случае, если объект находится не в режиме полной точности.
CoefficientsDataType - Коэффициенты длины слов и дробейSame word length as input (по умолчанию) | CustomУкажите коэффициенты типа данных с фиксированной точкой как Same word length as input или Custom.
Это свойство применяется при установке NumeratorSource свойство для Property.
CustomCoefficientsDataType - Длины слов и дробей пользовательских коэффициентовnumerictype(true,16,15) (по умолчанию) | numerictypeУкажите фиксированный тип коэффициента как подписанный или неподписанный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке CoefficientsDataType свойство для Custom.
ReflectionCoefficientsDataType - Коэффициенты отражения длины слов и дробейSame word length as input (по умолчанию) | CustomУкажите коэффициент отражения типа данных с фиксированной точкой как Same word length as input или Custom.
Это свойство применяется при установке ReflectionCoefficientsSource свойство для Property.
CustomReflectionCoefficientsDataType - Пользовательские коэффициенты отражения длины слов и дробейnumerictype(true,16,15) (по умолчанию) | numerictypeУкажите фиксированный тип коэффициента отражения как подписанный или неподписанный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке ReflectionCoefficientsDataType свойство для Custom.
ProductDataType - Длины словосочетаний и дробейFull precision (по умолчанию) | Same as input | CustomУкажите тип данных продукта с фиксированной точкой как Full precision, Same as input, или Custom.
CustomProductDataType - Пользовательские длины слов и дробей продуктаnumerictype(true,32,30) (по умолчанию) | numerictypeУкажите тип фиксированной точки продукта как подписанный или неподписанный масштабированный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке ProductDataType свойство для Custom.
AccumulatorDataType - Длины слов и дробей аккумулятораFull precision (по умолчанию) | Same as input | Same as product | CustomУкажите тип данных с фиксированной точкой в накопителе для Full precision, Same as input, Same as product, или Custom.
CustomAccumulatorDataType - Пользовательские длины слов и дробей накопителяnumerictype(true,32,30) (по умолчанию) | numerictypeУкажите тип фиксированной точки накопителя как подписанный или неподписанный масштабированный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке AccumulatorDataType свойство для Custom.
StateDataType - Длина слов и дробей состоянияSame as accumulator (по умолчанию) | Same as input | CustomУкажите тип данных с фиксированной точкой в качестве одного из Same as input, Same as accumulator, или Custom.
Это свойство не применяется ни к одной из структур фильтра прямой формы или прямой формы I.
CustomStateDataType - Длина слов и дробей пользовательского состоянияnumerictype(true,16,15) (по умолчанию) | numerictypeУкажите тип фиксированной точки состояния как подписанный или неподписанный масштабированный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке StateDataType свойство для Custom.
OutputDataType - Длина выходного слова и дробиSame as accumulator (по умолчанию) | Same as input | CustomУкажите выходной тип данных с фиксированной точкой как один из Same as input, Same as accumulator, или Custom.
CustomOutputDataType - Пользовательские длины выходных слов и дробейУкажите выходной тип с фиксированной точкой как подписанный или неподписанный масштабированный numerictype (Конструктор фиксированных точек).
Это свойство применяется при установке для свойства OutputDataType значения Custom.
x - Ввод данныхВвод данных, заданный как вектор или матрица. Если входные данные имеют тип с фиксированной точкой, они должны быть подписаны, если для структуры установлено значение Direct form symmetric или Direct form antisymmetric. Объект КИХ-фильтра работает на каждом канале входного сигнала независимо по последовательным вызовам объекта.
Этот объект System поддерживает ввод переменного размера.
Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fi
Поддержка комплексного номера: Да
coeff - Коэффициенты фильтраИзменяющиеся во времени коэффициенты фильтра, заданные как вектор строки. Входные данные и коэффициенты должны иметь один и тот же тип данных.
Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fi
Поддержка комплексного номера: Да
y - Отфильтрованные выходные данныеОтфильтрованные выходные данные, возвращаемые в виде вектора или матрицы. Выходные данные имеют тот же размер и тип данных, что и входные данные.
Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | fi
Поддержка комплексного номера: Да
Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:
release(obj)
dsp.FIRFilterfreqz | Частотная характеристика объекта системы дискретно-временного фильтра |
fvtool | Визуализация частотной характеристики фильтров DSP |
impz | Импульсная характеристика объекта системы дискретно-временного фильтра |
info | Сведения об объекте filter System |
coeffs | Возвращает коэффициенты объекта System фильтра в структуре |
cost | Оценка затрат на внедрение фильтра Объект системы |
grpdelay | Ответ групповой задержки объекта System дискретно-временного фильтра |
generatehdl | Создание кода HDL для квантованного фильтра DSP (требуется кодер HDL конструкции фильтра) |
Используйте фильтр FIR для применения фильтра нижних частот к сигналу с двумя синусоидальными компонентами.
t = (0:1000)'/8e3; xin = sin(2*pi*0.3e3*t)+sin(2*pi*3e3*t); sr = dsp.SignalSource; sr.Signal = xin; sink = dsp.SignalSink; fir = dsp.FIRFilter(fir1(10,0.5)); sa = dsp.SpectrumAnalyzer('SampleRate',8e3,... 'PlotAsTwoSidedSpectrum',false,... 'OverlapPercent', 80, 'PowerUnits','dBW',... 'YLimits', [-150 -10]); while ~isDone(sr) input = sr(); filteredOutput = fir(input); sink(filteredOutput); sa(filteredOutput) end filteredResult = sink.Buffer; fvtool(fir,'Fs',8000)


Создайте фильтр FIR как объект System.
N = 10; Fc = 0.4; B = fir1(N,Fc); fir1 = dsp.FIRFilter(B); fvtool(fir1)

Это также может быть достигнуто с помощью fdesign как конструктор и design для проектирования фильтра.
N = 10; Fc = 0.4; specLowpass = fdesign.lowpass('N,Fc',N,Fc); fir2 = design(specLowpass,'systemobject',true) fvtool(fir2);
fir2 =
dsp.FIRFilter with properties:
Structure: 'Direct form'
NumeratorSource: 'Property'
Numerator: [1x11 double]
InitialConditions: 0
Use get to show all properties

Этот объект реализует алгоритм, входы и выходы, описанные на странице ссылки на блок дискретного КИХ-фильтра (Simulink). Свойства объекта соответствуют параметрам блока.
Примечания и ограничения по использованию:
Только Numerator настраивается для создания кода.
См. Системные объекты в создании кода MATLAB (кодер MATLAB).
dsp.FIRFilter Системный объект поддерживает создание кода SIMD с использованием технологии Intel AVX2 при следующих условиях:
Для структуры фильтра установлено значение 'Direct form' или 'Direct form transposed'.
Входной сигнал является действительным с действительными коэффициентами фильтра.
Входной сигнал является комплекснозначным с вещественными или комплексными коэффициентами фильтра.
Входной сигнал имеет тип данных single или double.
Технология SIMD значительно повышает производительность генерируемого кода.
coeffs | cost | designFracDelayFIR | freqz | fvtool | generatehdl | grpdelay | impz | infoИмеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.