Фильтр дискретного времени
hd = dfilt.
structure
(input1,...)
hd = [dfilt.structure
(input1,...),
dfilt.structure
(input1,...),...]
hd = design(d,'designmethod')
hd = dfilt.
возвращает фильтр дискретного времени, structure
(input1,...)hd
, из типа structure
. Каждая структура берет одни или несколько входных параметров. Когда вы задаете dfilt
Структура
без входных параметров создается фильтр по умолчанию.
Примечание
Необходимо использовать 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 = проект (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-файл. Файл может содержать один фильтр или вектор из объектов. Именем файла по умолчанию является
|
| Возвращает коэффициенты частотного диапазона, используемые при фильтрации с a |
| Выполняет фильтрацию с помощью |
Возвращает тип (1-4) КИХ-фильтра линейной фазы. | |
Строит частотную характеристику в | |
Строит групповую задержку | |
Строит импульсную характеристику в | |
| Возвращает длину импульсной характеристики. |
| Отображения |
| Возвращает логический |
Возвращает логический | |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает логический |
| Возвращает количество разделов в фильтре секций второго порядка. Если многоступенчатый фильтр содержит этапы с несколькими разделами, с помощью |
| Возвращает количество этапов фильтра, где этап является отдельным, модульным фильтром. |
| Возвращает количество состояний для объекта. |
| Возвращает порядка фильтра. Если |
| Возвращает параллельную комбинацию двух |
| Строит фазовый отклик в |
| (Доступный только с 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
возвращает a 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