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