Проектирование цифровых фильтров
проектирует d
= designfilt(resp
,Name,Value
)digitalFilter
объект, d
, с типом отклика resp
. Задайте фильтр далее, используя набор Name,Value
пар. Разрешенные наборы спецификаций зависят от типа отклика, resp
, и состоят из комбинаций:
Частотные ограничения соответствуют частотам, на которых фильтр показывает желаемое поведение. Примеры включают '
PassbandFrequency
'
и '
CutoffFrequency
'
. (Полный список см. в разделе Аргументы в виде пар имя-значение.) Необходимо всегда задавать частотные ограничения.
Ограничения величины описывают поведение фильтра в конкретных частотных областях значений. Примеры включают '
PassbandRipple
'
и '
StopbandAttenuation
'
. (Полный список см. в разделе Аргументы в виде пар имя-значение.) designfilt
задает значения по умолчанию для ограничений величины, не заданных. В проектах произвольной амплитуды вы должны всегда задавать векторы желаемых амплитуд.
'
FilterOrder
'
. Некоторые методы проекта позволяют вам задать порядок. Другие производят проекты минимального порядка. То есть они генерируют наименьшие фильтры, которые удовлетворяют заданным ограничениям.
'
DesignMethod
'
- алгоритм, используемый для разработки фильтра. Примеры включают методы наименьших квадратов с ограничениями ('cls'
) и Кайзер оконная ('kaiserwin'
). Для некоторых наборов спецификаций существует несколько методов проекта, доступных для выбора. В других случаях можно использовать только один метод, чтобы соответствовать желаемым спецификациям.
Опции проекта являются параметрами, специфичными для данного метода проектирования. Примеры включают '
Window
'
для 'window'
метод и ' оптимизации
Weights
'
для проектов равнодействия произвольной величины. (Полный список см. в разделе Аргументы в виде пар имя-значение.) designfilt
задает значения по умолчанию для опций проекта, не заданных.
'
SampleRate
'
- частота, с которой работает фильтр. designfilt
имеет частоту выборки по умолчанию 2 Гц. Использование этого значения эквивалентно работе с нормированными частотами.
Примечание
Если вы задаете неполный или несогласованный набор пар "имя-значение" в командной строке, designfilt
предлагает открыть ассистента по созданию фильтра. Помощник помогает вам проектировать фильтр и паст исправленный MATLAB® код в командной строке.
Если вы звоните designfilt
из скрипта или функции с неправильным набором спецификаций, designfilt
выдает сообщение об ошибке со ссылкой для открытия помощника по созданию фильтра. Ассистент помогает вам проектировать фильтр, комментирует неисправный код в функции или скрипте и вставляет исправленный код MATLAB в следующую линию.
Использовать filter
в форме dataOut = filter(d,dataIn)
для фильтрации сигнала с помощью digitalFilter
, d
. Для БИХ, filter
функция использует реализацию II прямой формы.
Используйте FVTool, чтобы визуализировать digitalFilter
, d
.
Тип d.Coefficients
для получения коэффициентов digitalFilter
, d
. Для БИХ коэффициенты выражаются как секции второго порядка.
См. digitalFilter
список функций фильтрации и анализа, доступных для использования с digitalFilter
объекты.
designfilt(
позволяет редактировать существующий цифровой фильтр, d
)d
. Откроется помощник по созданию фильтра, заполненный спецификациями фильтра, которые можно затем изменить. Это единственный способ редактирования digitalFilter
объект. Его свойства в противном случае доступны только для чтения.
Проектируйте lowpass конечную импульсную характеристику фильтр минимального порядка с нормализованной частотой полосы пропускания рад/с, частота диапазона остановок рада/с, неравномерность в полосе пропускания 0,5 дБ и затухание в полосе задерживания 65 дБ. Для разработки фильтра используйте окно Кайзера. Визуализируйте его величину ответ. Используйте его для фильтрации вектора случайных данных.
lpFilt = designfilt('lowpassfir','PassbandFrequency',0.25, ... 'StopbandFrequency',0.35,'PassbandRipple',0.5, ... 'StopbandAttenuation',65,'DesignMethod','kaiserwin'); fvtool(lpFilt)
dataIn = rand(1000,1); dataOut = filter(lpFilt,dataIn);
Проектируйте lowpass БИХ фильтр с порядком 8, частотой полосы пропускания 35 кГц и неравномерность в полосе пропускания 0,2 дБ. Задайте частоту дискретизации 200 кГц. Визуализируйте амплитудную характеристику фильтра.
lpFilt = designfilt('lowpassiir','FilterOrder',8, ... 'PassbandFrequency',35e3,'PassbandRipple',0.2, ... 'SampleRate',200e3); fvtool(lpFilt)
Используйте фильтр, который вы разработали, чтобы фильтровать 1000-выборочный случайный сигнал.
dataIn = randn(1000,1); dataOut = filter(lpFilt,dataIn);
Вывод коэффициентов фильтра, выраженных как секции второго порядка.
sos = lpFilt.Coefficients
sos = 4×6
0.2666 0.5333 0.2666 1.0000 -0.8346 0.9073
0.1943 0.3886 0.1943 1.0000 -0.9586 0.7403
0.1012 0.2023 0.1012 1.0000 -1.1912 0.5983
0.0318 0.0636 0.0318 1.0000 -1.3810 0.5090
Спроектируйте фильтр конечной импульсной характеристики high-pass минимального порядка с нормализованной частотой полосы остановок рад/с, частота полосы пропускания рада/с, неравномерность в полосе пропускания 0,5 дБ и затухание в полосе задерживания 65 дБ. Для разработки фильтра используйте окно Кайзера. Визуализируйте его величину ответ. Используйте его для фильтрации 1000 выборок случайных данных.
hpFilt = designfilt('highpassfir','StopbandFrequency',0.25, ... 'PassbandFrequency',0.35,'PassbandRipple',0.5, ... 'StopbandAttenuation',65,'DesignMethod','kaiserwin'); fvtool(hpFilt)
dataIn = randn(1000,1); dataOut = filter(hpFilt,dataIn);
Проектируйте высокочастотный БИХ-фильтр с 8 порядка, частотой полосы пропускания 75 кГц и неравномерность в полосе пропускания 0,2 дБ. Задайте частоту дискретизации 200 кГц. Визуализируйте величину ответ фильтра. Применить фильтр к 1000-выборочному вектору случайных данных.
hpFilt = designfilt('highpassiir','FilterOrder',8, ... 'PassbandFrequency',75e3,'PassbandRipple',0.2, ... 'SampleRate',200e3); fvtool(hpFilt)
dataIn = randn(1000,1); dataOut = filter(hpFilt,dataIn);
Проектируйте полосно- конечную импульсную характеристику фильтр 20-го порядка с более низкой частотой отключения 500 Гц и более высокой частотой отключения 560 Гц. Частота дискретизации составляет 1500 Гц. Визуализируйте амплитудную характеристику фильтра. Используйте его для фильтрации случайного сигнала, содержащего 1000 выборки.
bpFilt = designfilt('bandpassfir','FilterOrder',20, ... 'CutoffFrequency1',500,'CutoffFrequency2',560, ... 'SampleRate',1500); fvtool(bpFilt)
dataIn = randn(1000,1); dataOut = filter(bpFilt,dataIn);
Вывод коэффициентов фильтра.
b = bpFilt.Coefficients
b = 1×21
-0.0113 0.0067 0.0125 -0.0445 0.0504 0.0101 -0.1070 0.1407 -0.0464 -0.1127 0.1913 -0.1127 -0.0464 0.1407 -0.1070 0.0101 0.0504 -0.0445 0.0125 0.0067 -0.0113
Проектируйте полосно- БИХ фильтр 20-го порядка с более низкой частотой 3-dB 500 Гц и более высокой частотой 3-dB 560 Гц. Частота дискретизации составляет 1500 Гц. Визуализируйте частотную характеристику фильтра. Используйте его для фильтрации 1000-выборочного случайного сигнала.
bpFilt = designfilt('bandpassiir','FilterOrder',20, ... 'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ... 'SampleRate',1500); fvtool(bpFilt)
dataIn = randn(1000,1); dataOut = filter(bpFilt,dataIn);
Проектируйте полосно-заграждающий конечная импульсная характеристика 20-го порядка с более низкой частотой отключения 500 Гц и более высокой частотой отключения 560 Гц. Частота дискретизации составляет 1500 Гц. Визуализируйте амплитудную характеристику фильтра. Используйте его для фильтрации 1000 выборок случайных данных.
bsFilt = designfilt('bandstopfir','FilterOrder',20, ... 'CutoffFrequency1',500,'CutoffFrequency2',560, ... 'SampleRate',1500); fvtool(bsFilt)
dataIn = randn(1000,1); dataOut = filter(bsFilt,dataIn);
Проектируйте полосно-заграждающий БИХ 20-го порядка с более низкой частотой 3-dB 500 Гц и более высокой частотой 3-dB 560 Гц. Частота дискретизации составляет 1500 Гц. Визуализируйте амплитудную характеристику фильтра. Используйте его для фильтрации 1000 выборок случайных данных.
bsFilt = designfilt('bandstopiir','FilterOrder',20, ... 'HalfPowerFrequency1',500,'HalfPowerFrequency2',560, ... 'SampleRate',1500); fvtool(bsFilt)
dataIn = randn(1000,1); dataOut = filter(bsFilt,dataIn);
Создайте полнополосный дифференцирующий фильтр порядка 7. Отобразите его нулевую фазовую характеристику. Используйте его, чтобы фильтровать 1000-выборочный вектор случайных данных.
dFilt = designfilt('differentiatorfir','FilterOrder',7); fvtool(dFilt,'MagnitudeDisplay','Zero-phase')
dataIn = randn(1000,1); dataOut = filter(dFilt,dataIn);
Проектируйте трансформатор Гильберта порядка 18. Задайте нормированную ширину перехода рад/с. Отображение в линейном режиме модулей величины характеристику фильтра. Используйте его, чтобы фильтровать 1000-выборочный вектор случайных данных.
hFilt = designfilt('hilbertfir','FilterOrder',18,'TransitionWidth',0.25); fvtool(hFilt,'MagnitudeDisplay','magnitude')
dataIn = randn(1000,1); dataOut = filter(hFilt,dataIn);
Выдается сигнал, дискретизированный с частотой дискретизации 1 кГц. Создайте фильтр, который останавливает частоты от 100 Гц до 350 Гц и частоты более 400 Гц. Задайте порядок фильтра 60. Визуализируйте частотную характеристику фильтра. Используйте его для фильтрации 1000-выборочного случайного сигнала.
mbFilt = designfilt('arbmagfir','FilterOrder',60, ... 'Frequencies',0:50:500,'Amplitudes',[1 1 1 0 0 0 0 1 1 0 0], ... 'SampleRate',1000); fvtool(mbFilt)
dataIn = randn(1000,1); dataOut = filter(mbFilt,dataIn);
resp
- Фильтрация отклика и типа'lowpassfir'
| 'lowpassiir'
| 'highpassfir'
| 'highpassiir'
| 'bandpassfir'
| 'bandpassiir'
| 'bandstopfir'
| 'bandstopiir'
| 'differentiatorfir'
| 'hilbertfir'
| 'arbmagfir'
Фильтруйте ответ и тип, заданные как вектор символов или строковый скаляр. Щелкните одно из возможных значений resp
чтобы развернуть таблицу допустимых наборов спецификаций.
Выберите эту опцию, чтобы спроектировать lowpass с конечной импульсной характеристикой (КИХ). Этот пример использует пятый набор спецификаций из следующей таблицы.
d = designfilt('lowpassfir', ... % Response type 'FilterOrder',25, ... % Filter order 'PassbandFrequency',400, ... % Frequency constraints 'StopbandFrequency',550, ... 'DesignMethod','ls', ... % Design method 'PassbandWeight',1, ... % Design method options 'StopbandWeight',2, ... 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| Н/Д | ||
| ||||
Н/Д |
| Н/Д | ||
Н/Д |
|
| ||
| ||||
Н/Д |
| |||
|
Выберите эту опцию, чтобы спроектировать lowpass с бесконечной импульсной характеристикой (БИХ). Этот пример использует первый набор спецификаций из следующей таблицы.
d = designfilt('lowpassiir', ... % Response type 'PassbandFrequency',400, ... % Frequency constraints 'StopbandFrequency',550, ... 'PassbandRipple',4, ... % Magnitude constraints 'StopbandAttenuation',55, ... 'DesignMethod','ellip', ... % Design method 'MatchExactly','passband', ... % Design method options 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| |||
| ||||
| ||||
| ||||
Н/Д |
| Н/Д | ||
| Н/Д | |||
| Н/Д | |||
| Н/Д | |||
Н/Д |
| Н/Д |
Выберите эту опцию, чтобы спроектировать фильтр highpass с конечной импульсной характеристикой (КИХ). Этот пример использует первый набор спецификаций из следующей таблицы.
d = designfilt('highpassfir', ... % Response type 'StopbandFrequency',400, ... % Frequency constraints 'PassbandFrequency',550, ... 'StopbandAttenuation',55, ... % Magnitude constraints 'PassbandRipple',4, ... 'DesignMethod','kaiserwin', ... % Design method 'ScalePassband',false, ... % Design method options 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| Н/Д | ||
| ||||
Н/Д |
|
| ||
| ||||
Н/Д |
| |||
|
Выберите эту опцию, чтобы спроектировать фильтр высокой частоты с бесконечной импульсной характеристикой (БИХ). Этот пример использует первый набор спецификаций из следующей таблицы.
d = designfilt('highpassiir', ... % Response type 'StopbandFrequency',400, ... % Frequency constraints 'PassbandFrequency',550, ... 'StopbandAttenuation',55, ... % Magnitude constraints 'PassbandRipple',4, ... 'DesignMethod','cheby1', ... % Design method 'MatchExactly','stopband', ... % Design method options 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| |||
| ||||
| ||||
| ||||
Н/Д |
| Н/Д | ||
| Н/Д | |||
| Н/Д | |||
| Н/Д | |||
Н/Д |
| Н/Д |
Выберите эту опцию, чтобы спроектировать полосно-пропускающий фильтр с конечной импульсной характеристикой (КИХ). Этот пример использует четвертый набор спецификаций из следующей таблицы.
d = designfilt('bandpassfir', ... % Response type 'FilterOrder',86, ... % Filter order 'StopbandFrequency1',400, ... % Frequency constraints 'PassbandFrequency1',450, ... 'PassbandFrequency2',600, ... 'StopbandFrequency2',650, ... 'DesignMethod','ls', ... % Design method 'StopbandWeight1',1, ... % Design method options 'PassbandWeight', 2, ... 'StopbandWeight2',3, ... 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| Н/Д | ||
| ||||
Н/Д |
|
| ||
| ||||
Н/Д |
| |||
|
Выберите эту опцию, чтобы спроектировать полосовой фильтр с бесконечной импульсной характеристикой (БИХ). Этот пример использует первый набор спецификаций из следующей таблицы.
d = designfilt('bandpassiir', ... % Response type 'StopbandFrequency1',400, ... % Frequency constraints 'PassbandFrequency1',450, ... 'PassbandFrequency2',600, ... 'StopbandFrequency2',650, ... 'StopbandAttenuation1',40, ... % Magnitude constraints 'PassbandRipple',1, ... 'StopbandAttenuation2',50, ... 'DesignMethod','ellip', ... % Design method 'MatchExactly','passband', ... % Design method options 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| |||
| ||||
| ||||
| ||||
Н/Д |
| Н/Д | ||
| Н/Д | |||
| Н/Д | |||
| Н/Д |
Выберите эту опцию, чтобы спроектировать полосно-заграждающий фильтр с конечной импульсной характеристикой (КИХ). Этот пример использует четвертый набор спецификаций из следующей таблицы.
d = designfilt('bandstopfir', ... % Response type 'FilterOrder',32, ... % Filter order 'PassbandFrequency1',400, ... % Frequency constraints 'StopbandFrequency1',500, ... 'StopbandFrequency2',700, ... 'PassbandFrequency2',850, ... 'DesignMethod','ls', ... % Design method 'PassbandWeight1',1, ... % Design method options 'StopbandWeight', 3, ... 'PassbandWeight2',5, ... 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| Н/Д | ||
| ||||
Н/Д |
|
| ||
| ||||
Н/Д |
| |||
|
Выберите эту опцию, чтобы спроектировать полосно-заграждающий фильтр с бесконечной импульсной характеристикой (БИХ). Этот пример использует первый набор спецификаций из следующей таблицы.
d = designfilt('bandstopiir', ... % Response type 'PassbandFrequency1',400, ... % Frequency constraints 'StopbandFrequency1',500, ... 'StopbandFrequency2',700, ... 'PassbandFrequency2',850, ... 'PassbandRipple1',1, ... % Magnitude constraints 'StopbandAttenuation',55, ... 'PassbandRipple2',1, ... 'DesignMethod','ellip', ... % Design method 'MatchExactly','both', ... % Design method options 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
(при необходимости), или любое из частотных ограничений, designfilt
выдает ошибку.
Если вы опускаете величину ограничения, designfilt
использует значения по умолчанию.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
N/A (проект минимального порядка) |
| |||
| ||||
| ||||
| ||||
Н/Д |
| Н/Д | ||
| Н/Д | |||
| Н/Д | |||
| Н/Д |
Выберите эту опцию, чтобы спроектировать дифференцирующий фильтр с конечной импульсной характеристикой (КИХ). Этот пример использует второй набор спецификаций из следующей таблицы.
d = designfilt('differentiatorfir', ... % Response type 'FilterOrder',42, ... % Filter order 'PassbandFrequency',400, ... % Frequency constraints 'StopbandFrequency',500, ... 'DesignMethod','equiripple', ... % Design method 'PassbandWeight',1, ... % Design method options 'StopbandWeight',4, ... 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
, или любое из частотных ограничений при разработке частотного дифференциатора, designfilt
выдает ошибку.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
Н/Д | Н/Д |
| Н/Д | |
| Н/Д | |||
Н/Д |
| |||
| Н/Д |
Выберите эту опцию, чтобы спроектировать фильтр трансформатора Гильберта с конечной импульсной характеристикой (КИХ). В этом примере используется набор спецификаций из следующей таблицы.
d = designfilt('hilbertfir', ... % Response type 'FilterOrder',12, ... % Filter order 'TransitionWidth',400, ... % Frequency constraints 'DesignMethod','ls', ... % Design method 'SampleRate',2000) % Sample rate
Если вы опускаете 'FilterOrder'
или 'TransitionWidth'
, designfilt
выдает ошибку.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для трансформаторов Гильберта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
Н/Д |
| Н/Д | ||
| Н/Д |
Выберите эту опцию, чтобы спроектировать фильтр с конечной импульсной характеристикой (КИХ) с произвольной амплитудной характеристикой. Этот пример использует второй набор спецификаций из следующей таблицы.
d = designfilt('arbmagfir', ... % Response type 'FilterOrder',88, ... % Filter order 'NumBands',4, ... % Frequency constraints 'BandFrequencies1',[0 20], ... 'BandFrequencies2',[25 40], ... 'BandFrequencies3',[45 65], ... 'BandFrequencies4',[70 100], ... 'BandAmplitudes1',[2 2], ... % Magnitude constraints 'BandAmplitudes2',[0 0], ... 'BandAmplitudes3',[1 1], ... 'BandAmplitudes4',[0 0], ... 'DesignMethod','ls', ... % Design method 'BandWeights1',[1 1]/10, ... % Design method options 'BandWeights2',[3 1], ... 'BandWeights3',[2 4], ... 'BandWeights4',[5 1], ... 'SampleRate',200) % Sample rate
Если вы опускаете 'FilterOrder'
, или любое из ограничений частоты или величины, designfilt
выдает ошибку.
Если вы опускаете 'DesignMethod'
, designfilt
использует метод проекта по умолчанию для набора спецификаций.
Если опускать опции метода проекта, designfilt
использует значения по умолчанию для выбранного метода проекта.
Если вы опускаете 'SampleRate'
, designfilt
устанавливает его на 2 Гц.
Имена аргумента порядка фильтрации | Имена аргумента ограничения частоты | Имена аргумента ограничения величины | ' DesignMethod ' Значения аргументов | Имена аргумента опции проекта |
---|---|---|---|---|
|
| |||
|
| |||
|
| |||
| … | … |
| … |
| … |
Типы данных: char
| string
d
- Цифровой фильтрdigitalFilter
объектЦифровой фильтр, заданный как digitalFilter
объект, сгенерированный designfilt
. Используйте этот вход для изменения спецификаций существующего digitalFilter
.
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
'FilterOrder',20,'CutoffFrequency',0.4
достаточно, чтобы задать lowpass конечную импульсную характеристику фильтр.Не все комбинации Name,Value
пары действительны. Допустимые комбинации зависят от нужной характеристики фильтра и от ограничений частоты и величины вашего проекта.
'FilterOrder'
- Порядок фильтрацииПорядок фильтра, заданный как разделенная разделенными запятой парами, состоящая из 'FilterOrder'
и положительный целочисленный скаляр.
Типы данных: double
'NumeratorOrder'
- Порядок числителяПорядок числителя БИХ проекта, заданный как разделенная запятой пара, состоящий из 'NumeratorOrder'
и положительный целочисленный скаляр.
Типы данных: double
'DenominatorOrder'
- Порядок знаменателяПорядок знаменателя проекта БИХ, заданный как разделенная разделенными запятой парами, состоящая из 'DenominatorOrder'
и положительный целочисленный скаляр.
Типы данных: double
'PassbandFrequency'
, 'PassbandFrequency1'
, 'PassbandFrequency2'
- Частота полосы пропусканияЧастота полосы пропускания, заданная как разделенная разделенными запятой парами, состоящая из 'PassbandFrequency'
и положительная скалярная величина. Значение частоты должно находиться в области значений Найквиста.
'PassbandFrequency1'
- нижняя ширина полосы пропускания для проекта полосы пропускания или полосы пропускания.
'PassbandFrequency2'
- более высокая ширина полосы пропускания для проекта полосы пропускания или полосы пропускания.
Типы данных: double
'StopbandFrequency'
, 'StopbandFrequency1'
, 'StopbandFrequency2'
- Частота полосы стопораЧастота стоп-полосы, заданная как разделенная разделенными запятой парами, состоящая из 'StopbandFrequency'
и положительная скалярная величина. Значение частоты должно находиться в области значений Найквиста.
'StopbandFrequency1'
- нижняя частота полосы остановки для проекта полосы пропускания или полосы пропускания
'StopbandFrequency2'
- более высокая частота полосы остановки для проекта полосы пропускания или полосы пропускания.
Типы данных: double
'CutoffFrequency'
, 'CutoffFrequency1'
, 'CutoffFrequency2'
- частота 6-dB6-dB частота, заданная как разделенная запятой пара, состоящая из 'CutoffFrequency'
и положительная скалярная величина. Значение частоты должно находиться в области значений Найквиста.
'CutoffFrequency1'
- более низкая частота 6-dB для проекта полосы пропускания или полосы пропускания.
'CutoffFrequency2'
- более высокая частота 6-dB для проекта полосы пропускания или полосы пропускания.
Типы данных: double
'HalfPowerFrequency'
, 'HalfPowerFrequency1'
, 'HalfPowerFrequency2'
- частота 3-dB3-dB частота, заданная как разделенная запятой пара, состоящая из 'HalfPowerFrequency'
и положительная скалярная величина. Значение частоты должно находиться в области значений Найквиста.
'HalfPowerFrequency1'
- более низкая частота 3-dB для проекта полосы пропускания или полосы пропускания.
'HalfPowerFrequency2'
- более высокая частота 3-dB для проекта полосы пропускания или полосы пропускания.
Типы данных: double
'TransitionWidth'
- Ширина переходной областиШирина переходной области между полосой пропускания и полосой упора для трансформатора Гильберта, заданная как разделенная разделенными запятой парами, состоящая из 'TransitionWidth'
и положительная скалярная величина.
Типы данных: double
'Frequencies'
- Частоты откликаЧастоты отклика, заданные как разделенная разделенными запятой парами, состоящая из 'Frequencies'
и вектор. Используйте эту переменную, чтобы перечислить частоты, на которых фильтр произвольной величины отклика имеет желаемые амплитуды. Частоты должны быть монотонно увеличены и лежать в области значений Найквиста. Первый элемент вектора должен быть либо 0, либо - fs/2, где fs - частота дискретизации, а его последний элемент должен быть fs/2. Если вы не задаете частоту дискретизации, designfilt
использует значение по умолчанию 2 Гц.
Типы данных: double
'NumBands'
- Количество полос пропусканияКоличество полос в многодиапазонном проекте, заданное как разделенная разделенными запятой парами, состоящая из 'NumBands'
и положительный целочисленный скаляр не более 10.
Типы данных: double
'BandFrequencies1'
, '...'
, 'BandFrequenciesN'
- Частоты многодиапазонного откликаМногополосные частоты отклика, заданные как разделенные запятыми пары, состоящие из 'BandFrequenciesi'
и числовой вектор. 'BandFrequenciesi'
, где i проходит от 1 до NumBands
, - вектор, содержащий частоты, на которых i-й полоса многодиапазонного проекта имеет желаемые значения, 'BandAmplitudesi'
. NumBands
может быть самое большее 10. Частоты должны лежать в области значений Найквиста и должны быть заданы в монотонно увеличивающемся порядке. Смежные полосы частот должны иметь одинаковую амплитуду при их соединении.
Типы данных: double
'PassbandRipple'
, 'PassbandRipple1'
, 'PassbandRipple2'
- Неравномерность в полосе пропусканияНеравномерность в полосе пропускания, заданная как разделенная запятой пара, состоящая из 'PassbandRipple'
и положительная скалярная величина, выраженная в децибелах.
'PassbandRipple1'
- нижняя полоса неравномерности в полосе пропускания для полосно-заграждающего проекта.
'PassbandRipple2'
- более высокий диапазон неравномерности в полосе пропускания для полосно-заграждающего проекта.
Типы данных: double
'StopbandAttenuation'
, 'StopbandAttenuation1'
, 'StopbandAttenuation2'
- Затухание в полосе задерживанияЗатухание в полосе задерживания, заданное как разделенная разделенными запятой парами, состоящая из 'StopbandAttenuation'
и положительная скалярная величина, выраженная в децибелах.
'StopbandAttenuation1'
- затухание в полосе задерживания нижней полосы для проекта полосы пропускания.
'StopbandAttenuation2'
- более высокий диапазон затухания в полосе задерживания для полосно-пропускающего проекта.
Типы данных: double
'Amplitudes'
- Желаемые амплитуды откликаЖелаемые амплитуды отклика фильтра произвольной величины, заданные как разделенная разделенными запятой парами, состоящая из 'Amplitudes'
и вектор. Выразите амплитуды в линейных модулях. Вектор должен иметь ту же длину, что и 'Frequencies'
.
Типы данных: double
'BandAmplitudes1'
, '...'
, 'BandAmplitudesN'
- Мультидиапазонные амплитуды откликаМультидиапазонные амплитуды отклика, заданные как разделенные запятыми пары, состоящие из 'BandAmplitudesi'
и числовой вектор. 'BandAmplitudesi'
, где i проходит от 1 до NumBands
, является вектором, содержащим желаемые амплитуды в i-й полосе многодиапазонного проекта. NumBands
может быть самое большее 10. Выразите амплитуды в линейных модулях. 'BandAmplitudesi'
должны иметь ту же длину, что и 'BandFrequenciesi'
. Смежные полосы частот должны иметь одинаковую амплитуду при их соединении.
Типы данных: double
'DesignMethod'
- Метод проекта'butter'
| 'cheby1'
| 'cheby2'
| 'cls'
| 'ellip'
| 'equiripple'
| 'freqsamp'
| 'kaiserwin'
| 'ls'
| 'maxflat'
| 'window'
Метод проектирования, заданный как разделенная разделенными запятой парами, состоящая из 'DesignMethod'
и вектор символов или строковый скаляр. Выбор метода проекта зависит от набора заданных вами ограничений по частоте и величине.
'butter'
проектирует фильтр БИХ Butterworth. Фильтры Баттерворта имеют плавную монотонную частотную характеристику, которая максимально плоская в полосе пропускания. Они жертвуют сходом крутизны для плоскостности.
'cheby1'
проектирует БИХ фильтр Чебышева I типа. Фильтры Чебышёва I типа имеют частотную характеристику, равновесную в полосе пропускания и максимально плоскую в полосе остановки. Их неравномерность в полосе пропускания увеличения с увеличением крутизны спуска.
'cheby2'
проектирует БИХ фильтр Чебышева типа II. Фильтры Чебышёва типа II имеют максимально плоскую частотную характеристику в полосе пропускания и равновесие в полосе остановки.
'cls'
проектирует конечную импульсную характеристику фильтр, используя метод наименьших квадратов с ограничениями. Метод минимизирует расхождение между заданной произвольной кусочно-линейной функцией и характеристикой величины фильтра. В то же время, это позволяет вам задать ограничения на неравномерность в полосе пропускания и затухание в полосе задерживания.
'ellip'
проектирует эллиптический БИХ. Эллиптические фильтры имеют частотную характеристику, которая равновесна как в полосе пропускания, так и в полосе упора.
'equiripple'
проектирует фильтр конечной импульсной характеристики equiripple с использованием алгоритма Паркса-Макклеллана. Фильтры Equiripple имеют частотную характеристику, которая минимизирует максимальную величину пульсации во всех полосах.
'freqsamp'
проектирует конечную импульсную характеристику фильтр с произвольной амплитудной характеристикой путем дискретизации частотной характеристики равномерно и взятия обратного преобразования Фурье.
'kaiserwin'
проектирует фильтр конечной импульсной характеристики с помощью метода Окна Кайзера. Метод обрезает импульсную характеристику идеального фильтра и использует окно Кайзера, чтобы ослабить получившиеся усеченные колебания.
'ls'
проектирует конечная импульсная характеристика с использованием методом наименьших квадратов. Метод минимизирует расхождение между заданной произвольной кусочно-линейной функцией и характеристикой величины фильтра.
'maxflat'
проектирует максимально плоский конечная импульсная характеристика. Эти фильтры имеют гладкую монотонную частотную характеристику, которая максимально плоская в полосе пропускания.
'window'
использует приближение методом наименьших квадратов, чтобы вычислить коэффициенты фильтра, а затем сглаживает импульсную характеристику с помощью '
Window
'
.
Типы данных: char
| string
'Window'
- ОкноОкно, заданное как разделенная разделенными запятой парами, состоящая из 'Window'
и вектор длины N + 1, где N является порядком фильтра. 'Window'
можно также использовать в паре с именем окна или указателем на функцию, которая задает функцию, используемую для генерации окна. Любая такая функция должна взять N + 1 как первый вход. Дополнительные входы могут быть переданы путем определения массива ячеек. По умолчанию 'Window'
является пустым вектором для 'freqsamp'
метод и @hamming
проекта для
'window'
метод проекта.
Список доступных окон см. в разделе Windows.
Пример: 'Window',hann(N+1)
и 'Window',(1-cos(2*pi*(0:N)'/N))/2
оба задают окно Ханна для использования с фильтром порядка N
.
Пример: 'Window','hamming'
задает окно Хэмминга необходимого порядка.
Пример: 'Window',@mywindow
позволяет вам задать свою собственную оконную функцию.
Пример: 'Window',{@kaiser,0.5}
задает окно Кайзера необходимого порядка с параметром формы 0,5.
Типы данных: double
| char
| string
| function_handle
| cell
'MatchExactly'
- Полоса, которая точно совпадает'stopband'
| 'passband'
| 'both'
Полоса, точно соответствующий, задаётся как разделенная разделенными запятой парами, состоящая из 'MatchExactly'
и любой из них 'stopband'
, 'passband'
, или 'both'
. 'both'
доступен только для метода эллиптического проекта, где это значение по умолчанию. 'stopband'
является значением по умолчанию для 'butter'
и 'cheby2'
методы. 'passband'
является значением по умолчанию для 'cheby1'
.
Типы данных: char
| string
'PassbandOffset'
- Смещение полосы пропусканияСмещение полосы пропускания, заданное как разделенная разделенными запятой парами, состоящая из 'PassbandOffset'
и положительная скалярная величина, выраженная в децибелах. 'PassbandOffset'
задает коэффициент усиления фильтра в полосе пропускания.
Пример: 'PassbandOffset',0
приводит к фильтру с единичным усилением в полосе пропускания.
Пример: 'PassbandOffset',2
в результате получают фильтр с коэффициентом усиления полосы пропускания 2 дБ или 1,259.
Типы данных: double
'ScalePassband'
- Шкала полосы пропусканияtrue
(по умолчанию) | false
Шкала полосы пропускания, заданное как разделенная разделенными запятой парами, состоящая из 'ScalePassband'
и логический скаляр. Когда вы задаете 'ScalePassband'
на true
полосу пропускания масштабируют после оконной обработки так, чтобы фильтр имел единичный коэффициент усиления на нулевой частоте.
Пример: 'Window',{@kaiser,0.1},'ScalePassband',true
помогают задать фильтр, характеристика величины которого на нулевой частоте составляет в точности 0 дБ. Это не тот случай, когда вы задаете 'ScalePassband',false
. Чтобы проверить, визуализируйте фильтр с fvtool
и масштабирование.
Типы данных: logical
'ZeroPhase'
- Нулевая фазаfalse
(по умолчанию) | true
Нулевая фаза, заданная как разделенная разделенными запятой парами, состоящая из 'ZeroPhase'
и логический скаляр. Когда вы задаете 'ZeroPhase'
на true
, нулевая фазовая характеристика полученного фильтра всегда положительная. Это позволяет вам выполнить спектральное факторизация на результате и получить от него фильтр с минимальной фазой.
Типы данных: logical
'PassbandWeight'
, 'PassbandWeight1'
, 'PassbandWeight2'
- Вес оптимизации полосы пропусканияВес оптимизации полосы пропускания, заданный как разделенная разделенными запятой парами, состоящая из 'PassbandWeight'
и положительная скалярная величина.
'PassbandWeight1'
- вес оптимизации полосы пропускания нижней полосы для полосы пропускания конечной импульсной характеристики проекта.
'PassbandWeight2'
- вес оптимизации полосы пропускания более высокой полосы для полосы пропускания конечной импульсной характеристики проекта.
Типы данных: double
'StopbandWeight'
, 'StopbandWeight1'
, 'StopbandWeight2'
- Вес оптимизации полосы стопораВес оптимизации пробки, заданный как разделенная разделенными запятой парами, состоящая из 'StopbandWeight'
и положительная скалярная величина.
'StopbandWeight1'
- вес оптимизации полосы стопора нижней полосы для полосы пропускания конечной импульсной характеристики проекта.
'StopbandWeight2'
- оптимизационный вес полосы стопора с более высоким диапазоном для полосы пропускания конечной импульсной характеристики проекта.
Типы данных: double
'Weights'
- Оптимизационные весаОптимизационные веса, заданные как разделенная разделенными запятой парами, состоящая из 'Weights'
и положительная скалярная величина или вектор той же длины, что и 'Amplitudes'
.
Типы данных: double
'BandWeights1'
, '...'
, 'BandWeightsN'
- Многодиапазонные весаМногодиапазонные веса, заданные как разделенные запятыми пары, состоящие из 'BandWeightsi'
и набор положительных скалярных величин или векторов. 'BandWeightsi'
, где i проходит от 1 до NumBands
, является скаляром или вектором, содержащим оптимизационные веса i-го полосы многодиапазонного проекта. Если задан как вектор, 'BandWeightsi'
должны иметь ту же длину, что и 'BandAmplitudesi'
.
Типы данных: double
'SampleRate'
- Частота дискретизацииЧастота дискретизации, заданная как разделенная разделенными запятой парами, состоящая из 'SampleRate'
и положительная скалярная величина, выраженная в герцах. Чтобы работать с нормированными частотами, установите 'SampleRate'
в 2, или просто опускать его.
Типы данных: double
d
- Цифровой фильтрdigitalFilter
объектЦифровой фильтр, возвращенный как digitalFilter
объект.
Если вы задаете неполный или несогласованный набор расчётных параметров, designfilt
предлагает открыть ассистента по созданию фильтра.
(В описании аргумента для resp
существует полный список действительных наборов спецификаций для всех доступных типов отклика.)
Ассистент ведет себя по-разному, если вы вызываете designfilt
в командной строке или в рамках скрипта или функции.
Выдается сигнал, дискретизированный с частотой дискретизации 2 кГц. Вас просят спроектировать lowpass конечная импульсная характеристика, который подавляет частотные составляющие выше 650 Гц. «Частота отсечения» звучит как хороший кандидат для параметра спецификации. В командной строке MATLAB вы вводите следующее.
Fsamp = 2e3; Fctff = 650; dee = designfilt('lowpassfir','CutoffFrequency',Fctff, ... 'SampleRate',Fsamp);
Что-то кажется неладным, потому что это диалоговое окно появляется на вашем экране.
Вы нажимаете Yes и получаете новое диалоговое окно, которое предлагает сгенерировать код. Вы видите, что переменные, которые вы определили ранее, были вставлены, где ожидалось.
Изучив некоторые предлагаемые опции, вы решите протестировать исправленный фильтр. Вы нажимаете OK и получаете следующий код в командной строке.
dee = designfilt('lowpassfir', 'FilterOrder', 10, ... 'CutoffFrequency', Fctff, 'SampleRate', Fsamp);
Ввод имени фильтра повторяет информацию из диалогового окна.
dee
dee = digitalFilter with properties: Coefficients: [1x11 double] Specifications: FrequencyResponse: 'lowpass' ImpulseResponse: 'fir' SampleRate: 2000 FilterOrder: 10 CutoffFrequency: 650 DesignMethod: 'window' Use fvtool to visualize filter Use filter function to filter data
Вы вызываете FVTool и получаете график dee
частотная характеристика.
fvtool(dee)
Срез выглядит не особенно остро. Для большинства частот ответ выше 40 дБ. Вы помните, что у ассистента была опция задать «ограничение амплитуды», называемое «ослабление полосы остановки». Откройте ассистента, позвонив designfilt
с именем фильтра в качестве входов.
designfilt(dee)
Нажмите на Magnitude constraints
раскрывающееся меню и выберите Passband ripple and stopband attenuation
. Вы видите, что метод проекта изменился с Window
на FIR constrained least-squares
. Значение по умолчанию для ослабления составляет 60 дБ, что выше 40. Щелкните OK и визуализируйте полученный фильтр.
dee = designfilt('lowpassfir', 'FilterOrder', 10, ... 'CutoffFrequency', Fctff, ... 'PassbandRipple', 1, 'StopbandAttenuation', 60, ... 'SampleRate', Fsamp); fvtool(dee)
Срез все еще не выглядит резким. Затухание действительно составляет 60 дБ, но для частот выше 900 Гц.
Снова активируйте designfilt
с вашим фильтром в качестве входных данных.
designfilt(dee)
Помощник появляется снова.
Чтобы сузить различие между принятыми и отклоненными частотами, увеличьте порядок фильтра или измените Frequency constraints
от Cutoff (6dB) frequency
на Passband and stopband frequencies
. Если вы измените порядок фильтра с 10 на 50, вы получите более резкий фильтр.
dee = designfilt('lowpassfir', 'FilterOrder', 50, ... 'CutoffFrequency', 650, ... 'PassbandRipple', 1, 'StopbandAttenuation', 60, ... 'SampleRate', 2000); fvtool(dee)
Небольшие эксперименты показывают, что можно получить подобный фильтр, установив частоты полосы пропускания и полосы остановки на 600 Гц и 700 Гц соответственно.
dee = designfilt('lowpassfir', 'PassbandFrequency', 600, ... 'StopbandFrequency', 700, ... 'PassbandRipple', 1, 'StopbandAttenuation', 60, ... 'SampleRate', 2000); fvtool(dee)
Выдается сигнал, дискретизированный с частотой дискретизации 2 кГц. Вас просят спроектировать фильтр высокой частоты, который останавливает частоты ниже 700 Гц. Вам плевать на фазу сигнала, и нужно работать с фильтром низкого порядка. Таким образом, БИХ представляется адекватным. Вы не уверены, какой порядок фильтра лучше всего, поэтому вы пишете функцию, которая принимает порядок как вход. Откройте РЕДАКТОРА MATLAB и создайте файл.
function dataOut = hipassfilt(N,dataIn) hpFilter = designfilt('highpassiir','FilterOrder',N); dataOut = filter(hpFilter,dataIn); end
Чтобы протестировать свою функцию, создайте сигнал, состоящий из двух синусоидов с частотами 500 и 800 Гц и сгенерируйте выборки для 0,1 с. Фильтр 5-го порядка кажется разумным как исходное предположение. Создайте скрипт под названием driveHPfilt.m
.
% script driveHPfilt.m
Fsamp = 2e3;
Fsm = 500;
Fbg = 800;
t = 0:1/Fsamp:0.1;
sgin = sin(2*pi*Fsm*t)+sin(2*pi*Fbg*t);
Order = 5;
sgout = hipassfilt(Order,sgin);
Когда вы запускаете скрипт в командной строке, вы получаете сообщение об ошибке.
Сообщение об ошибке дает вам выбор открытия помощника для исправления кода MATLAB. Нажмите Click here
чтобы получить помощника по созданию фильтра на экране.
Вы видите задачу: Вы не указали ограничение частоты. Вы также забыли установить частоту дискретизации. После экспериментов вы обнаруживаете, что можете задать Frequency units как Hz
, Passband frequency равен 700 Гц, и Input Fs равен 2000 Гц. Значение Design method изменяется с Butterworth
на Chebyshev type I
. Вы нажимаете OK и получаете следующее.
Помощник правильно определил файл, куда вы звоните designfilt
. Щелкните Yes, чтобы принять изменение. Функция имеет исправленный код MATLAB.
function dataOut = hipassfilt(N,dataIn) % hpFilter = designfilt('highpassiir','FilterOrder',N); hpFilter = designfilt('highpassiir', 'FilterOrder', N, ... 'PassbandFrequency', 700, 'PassbandRipple', 1, ... 'SampleRate', 2000); dataOut = filter(hpFilter,dataIn); end
Теперь можно запустить скрипт с различными значениями порядка фильтра. В зависимости от ограничений проекта, можно изменить набор спецификаций.
Можно задать designfilt
никогда не предлагать помощника по созданию фильтра. Это действие устанавливает выбор MATLAB, которое можно отменить с setpref
:
Использование setpref('dontshowmeagain','filterDesignAssistant',false)
быть предложенным помощником каждый раз. С помощью этой команды можно снова получить помощника после его отключения.
Использование setpref('dontshowmeagain','filterDesignAssistant',true)
отключение помощника на постоянной основе. Можно также щелкнуть Do not show this message again в начальном диалоговом окне.
Можно задать designfilt
всегда исправлять неисправные спецификации, не спрашивая. Это действие устанавливает выбор MATLAB, которое можно отменить при помощи setpref
:
Использование setpref('dontshowmeagain','filterDesignAssistantCodeCorrection',false)
иметь designfilt
исправить код MATLAB, не запрашивая подтверждения. Можно также щелкнуть Always accept в диалоговом окне подтверждения.
Использование setpref('dontshowmeagain','filterDesignAssistantCodeCorrection',true)
для обеспечения того, чтобы designfilt
исправляет код MATLAB только тогда, когда вы подтверждаете, что хотите внести изменения. С помощью этой команды можно отменить эффект клика по Always accept в диалоговом окне подтверждения.
Существуют некоторые образцы, в которых, учитывая недопустимый набор спецификаций, designfilt
не предлагает помощник по созданию фильтра ни через диалоговое окно, ни через ссылку в сообщении об ошибке.
Вам не предлагается помощник, если вы используете оценку секции кода, либо из MATLAB Toolstrip, либо путем нажатия Ctrl+Enter. (Смотрите Разделение файла на Секции кода для получения дополнительной информации.)
Если код содержит несколько вызовов для designfilt
, по крайней мере, один из этих вызовов является неправильным, и
Вы вставляете код в командную строку и выполняете его нажатием Enter.
Вы выбираете код в редакторе и выполняете его нажатием F9.
Вам не предлагают ассистента, если вы запускаете designfilt
использование анонимной функции. (Для получения дополнительной информации см. раздел Анонимные функции.) Для примера этот вход предлагает помощника.
d = designfilt('lowpassfir','CutoffFrequency',0.6)
myFilterDesigner = @designfilt; d = myFilterDesigner('lowpassfir','CutoffFrequency',0.6)
Вам не предлагают ассистента, если вы запускаете designfilt
использование eval
. Для примера этот вход предлагает помощника.
d = designfilt('lowpassfir','CutoffFrequency',0.6)
myFilterDesigner = ... sprintf('designfilt(''%s'',''CutoffFrequency'',%f)', ... 'lowpassfir',0.6); d = eval(myFilterDesigner)
Помощнику по созданию фильтра требуется Java® программное обеспечение и рабочий стол MATLAB для запуска. Он не поддерживается, если вы запускаете MATLAB с -nojvm
, -nodisplay
, или -nodesktop
опции.
digitalFilter
| double
| fftfilt
| filt2block
| filter
| filtfilt
| filtord
| firtype
| freqz
| FVTool | grpdelay
| impz
| impzlength
| info
| isallpass
| isdouble
| isfir
| islinphase
| ismaxphase
| isminphase
| issingle
| isstable
| phasedelay
| phasez
| single
| ss
| stepz
| tf
| zerophase
| zpk
| zplane
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.