Фильтр дискретного времени
hd = dfilt.
structure
(input1,...)
hd = [dfilt.structure
(input1,...),
dfilt.structure
(input1,...),...]
hd = design(d,'designmethod')
hd = dfilt.
возвращает фильтр дискретного времени, structure
(input1,...)hd
, типа structure
. Каждая структура берет одни или несколько входных параметров. Когда вы задаете dfilt
.structure
без входных параметров, фильтр по умолчанию создается.
Необходимо использовать structure
с dfilt
.
hd = [dfilt.
возвращает вектор, содержащий фильтры structure
(input1,...),
dfilt.structure
(input1,...),...]dfilt
.
Структуры для dfilt.structure
задают тип структуры фильтра. Доступные типы структур для dfilt
показывают ниже.
dfilt.structure | Описание | Содействующая Поддержка Отображения в realizemdl |
---|---|---|
Фильтр Allpass | Поддерживаемый | |
Каскад allpass фильтрует разделы | Поддерживаемый | |
Каскад allpass цифровых фильтров волны | Поддерживаемый | |
Задержка | Не поддерживаемый | |
Прямая форма I | Поддерживаемый | |
Прямая форма I, разделы второго порядка | Поддерживаемый | |
Прямая форма я транспонировал | Поддерживаемый | |
Прямая форма я транспонировал, разделы второго порядка | Поддерживаемый | |
Прямая форма II | Поддерживаемый | |
Прямая форма II, разделы второго порядка | Поддерживаемый | |
Прямая форма II транспонированный | Поддерживаемый | |
Прямая форма II транспонированных, разделов второго порядка | Поддерживаемый | |
КИХ прямой формы | Поддерживаемый | |
КИХ прямой формы транспонирован | Поддерживаемый | |
Прямая форма симметричный КИХ | Поддерживаемый | |
Прямая форма антисимметричный КИХ | Поддерживаемый | |
Типичная дробная задержка фильтр Фэрроу | Поддерживаемый | |
Линейная дробная задержка фильтр Фэрроу | Не поддерживаемый | |
Перекрытие - добавляет КИХ | Не поддерживаемый | |
Образуйте решетку allpass | Поддерживаемый | |
Образуйте решетку авторегрессивный (AR) | Поддерживаемый | |
Образуйте решетку авторегрессивное скользящее среднее значение (ARMA) | Поддерживаемый | |
Образуйте решетку скользящее среднее значение (MA) для максимальной фазы | Поддерживаемый | |
Образуйте решетку скользящее среднее значение (MA) для минимальной фазы | Поддерживаемый | |
Двойной, allpass решетка | Поддерживаемый | |
Двойной, allpass образовывают решетку со степенью дополнительный вывод | Поддерживаемый | |
Пространство состояний | Поддерживаемый | |
Скалярный объект усиления | Поддерживаемый | |
Волна Allpass цифровой объект фильтра | Поддерживаемый | |
Фильтры располагаются последовательно | Поддерживаемый | |
Фильтры располагаются параллельно | Поддерживаемый |
Для получения дополнительной информации о каждой структуре обратитесь к ее странице с описанием.
hd = design(d,'designmethod')
возвращает объект dfilt
hd
, следующий из объекта спецификации фильтров d
и метод разработки, который вы задаете в designmethod
. Когда вы не используете аргумент designmethod
, design
использует метод оформления по умолчанию, чтобы создать фильтр из объекта d
.
С этим синтаксисом вы разрабатываете фильтры по:
Задавая спецификации фильтра, такие как форма ответа (возможно, highpass) и детали (ребра полосы пропускания и затухание).
Выбор метода (такого как equiripple
), чтобы разработать фильтр.
Применение метода к спецификациям возражает с design(d,'designmethod)
.
Используя основанный на спецификации метод может быть более эффективным, чем основанные на коэффициенте методы проектирования фильтра.
Когда вы используете синтаксис
, вы имеете область значений в наличии методов разработки в зависимости от hd = design(d,'designmethod')
d
, объекта спецификации фильтров. В следующей таблице перечислены все методы разработки в тулбоксе.
Метод разработки | Отфильтруйте результат проекта |
---|---|
БИХ Баттерворта | |
Чебышевский БИХ типа I | |
Чебышевский БИХ типа II | |
Эллиптический БИХ | |
Equiripple с той же пульсацией в передаче и полосах задерживания | |
КИХ наименьших квадратов | |
Выбранный частотой КИХ | |
Интерполированный КИХ | |
Наименьшее количество БИХ нормы Pth | |
БИХ наименьших квадратов | |
Оконный кайзером КИХ | |
Дробный фильтр задержки | |
Многоступенчатый КИХ | |
Оконный КИХ |
Когда объект d
спецификаций изменяется, доступные методы для разработки фильтров от d
также изменяются. Например, если d
является фильтром lowpass со спецификацией по умолчанию 'Fp,Fst,Ap,Ast'
, применимые методы:
% Create an object to design a lowpass filter. d=fdesign.lowpass; designmethods(d) % What design methods apply to object d?
Если вы изменяете спецификацию на 'N,F3dB'
, доступное изменение методов разработки:
d=fdesign.lowpass('N,F3dB'); designmethods(d)
Методы обеспечивают способы выполнить функции непосредственно на вашем объекте dfilt
, не имея необходимость задавать параметры фильтра снова. Можно применить эти методы непосредственно на переменную, которую вы присвоили своему объекту dfilt
.
Например, если вы создаете объект dfilt
, hd
, можно проверять, имеет ли он линейную фазу с islinphase(hd)
, просмотрите его график частотной характеристики с fvtool(hd)
или получите его значения частотной характеристики с h = freqz(hd)
. Можно использовать все методы, описанные здесь таким образом.
Если ваша переменная hd
является 1D массивом фильтров dfilt
, метод применяется к каждому объекту в массиве. Только freqz
, grpdelay
, impz
, is
*, order
и методы stepz
могут быть применены к массивам. Метод zplane
может быть применен к массиву, только если zplane
используется без выходных параметров.
Некоторые методы, перечисленные здесь, имеют то же имя как функции в программном обеспечении Signal Processing Toolbox™. Они ведут себя так же.
Метод | Описание |
---|---|
| Добавляет этап к объекту |
|
|
| Возвращает серийную комбинацию двух объектов |
| Возвращает коэффициенты фильтра в структуре, содержащей поля, которые используют те же имена свойства в качестве тех в исходном |
| Преобразовывает объект |
| Пишет коэффициент фильтра ASCII-файл. Файл может содержать один фильтр или вектор объектов. Именем файла по умолчанию является
|
| Возвращает коэффициенты частотного диапазона, используемые при фильтрации с |
Выполняет фильтрацию с помощью объекта | |
Возвращает тип (1-4) линейного фильтра фазы FIR. | |
Строит частотную характеристику в | |
Строит групповую задержку | |
Строит импульсный ответ в | |
| Возвращает продолжительность импульсного ответа. |
| Отображения информация |
| Возвращает логический |
Возвращает логический | |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает количество разделов в фильтре разделов второго порядка. Если многоступенчатый фильтр содержит этапы с несколькими разделами, использование |
| Возвращает количество этапов фильтра, где этап является отдельным, модульным фильтром. |
| Возвращает количество состояний для объекта. |
| Возвращает порядок фильтра. Если |
| Возвращает параллельную комбинацию двух фильтров |
| Строит фазовый отклик в |
| (Доступный только с Simulink.)
Следующие свойства доступны:
Следующие свойства оптимизируют блочную структуру. Определение
|
| Удаляет этап из каскадного или параллельного |
| Перезаписывает этап каскадного или параллельного |
| Преобразовывает
|
| Преобразовывает |
| Строит переходной процесс в
|
Преобразовывает | |
Преобразовывает | |
Строит нулевой фазовый отклик в | |
Преобразовывает | |
Строит нулевой полюсом график в |
Как с любым объектом, используйте get
, чтобы просмотреть dfilt
свойства. Чтобы видеть определенное свойство, использовать
get(hd,'property')
Чтобы видеть все свойства для объекта, использовать
get(hd)
Объекты dfilt
включают свойство arithmetic
. Можно изменить внутреннюю арифметику фильтра от двойной точности до использования с одинарной точностью: hd.arithmetic = 'single'
.
Если у вас есть программное обеспечение Fixed-Point Designer™, можно изменить свойство arithmetic
на использование фиксированной точки: hd.arithmetic = 'fixed'
Чтобы установить определенные свойства, использовать
set(hd,'property1',value,'property2',value,...)
Необходимо использовать одинарные кавычки вокруг имени свойства. Используйте одинарные кавычки вокруг аргумента value
, когда значение будет вектором символов, таким как specifyall
или fixed
.
Чтобы создать копию объекта, используйте метод copy
.
h2 = copy(hd)
Используя синтаксис H2 = hd
копирует только указатель на объект и не создает новый, независимый объект.
Чтобы изменить структуру фильтра объекта dfilt
hd
, использовать
hd2 = convert(hd,'structure_charactervector');
где structure_charactervector
является любым допустимым именем структуры в одинарных кавычках. Если hd
является cascade
или структура parallel
, каждый этап преобразован в новую структуру.
Два свойства управляют состояниями фильтра:
states
— Хранит текущие состояния фильтра. Прежде чем фильтр применяется, состояния соответствуют начальным условиям и после того, как фильтр применяется, состояния соответствуют итоговым условиям. Для df1
, df1t
, df1sos
и структур df1tsos
, states
возвращает объект filtstates
.
PersistentMemory
— Средства управления, сохранен ли фильтр states
. Значением по умолчанию является 'false'
, который заставляет начальные условия быть сброшенными, чтобы обнулить прежде, чем отфильтровать и выключает отображение информации о states
. Установка PersistentMemory
к 'true'
позволяет фильтру использовать ваши начальные условия или снова использовать итоговые условия от предыдущей операции фильтрации как начальные условия следующей операции фильтрации. Установка true
также отображает информацию о фильтре states
.
Если вы устанавливаете states
и хотите использовать их для фильтрации, необходимо установить PersistentMemory
на 'true'
, прежде чем вы будете использовать фильтр.
Создайте прямую форму, которую я фильтрую и использую метод, чтобы видеть, стабильно ли это.
[b,a] = butter(8,0.25); hd = dfilt.df1(b,a); isstable(hd)
Если значения числителя dfilt
не соответствуют на одной строке, описание вектора отображено. Чтобы видеть определенные значения числителя для этого примера, использовать
B = get(hd,'numerator'); % or B1 = hd.numerator;
Создайте массив, содержащий два объекта dfilt
, примените метод и проверьте, что метод действует на оба объекта. Используйте метод, чтобы протестировать, являются ли объекты КИХ-объектами.
b = fir1(5,.5); hd = dfilt.dffir(b); % Create an FIR filter object [b,a] = butter(5,.5); % Create IIR filter hd(2) = dfilt.df2t(b,a); % Create DF2T object and place % in the second column of hd. [h,w] = freqz(hd); test_fir = isfir(hd) % hd(1) is FIR and hd(2) is not.
Обратитесь к страницам с описанием для каждой структуры для большего количества примеров.
design
| dfilt
| dfilt.cascade
| dfilt.df1
| dfilt.df1t
| dfilt.df2
| dfilt.df2t
| dfilt.dfasymfir
| dfilt.dffir
| dfilt.dffirt
| dfilt.dfsymfir
| dfilt.latticeallpass
| dfilt.latticear
| dfilt.latticearma
| dfilt.latticemamax
| dfilt.latticemamin
| dfilt.parallel
| dfilt.statespace
| fdesign
| filter
| freqz
| grpdelay
| impz
| realizemdl
| sos
| stepz
| zplane