Фильтр дискретного времени
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