переупорядочивание

Перестройте разделы в фильтре SOS

Синтаксис

reorder(hs,order)
reorder(hs,numorder,denorder)
reorder(hs,numorder,denorder,svorder)
reorder(hs,filter_type)
reorder(hs,dir_flag)
reorder(hs,dir_flag,sv)
reorder(hs,...)
reorder(hs,...,Name,Value)

Описание

reorder(hs,order) перестраивает разделы фильтра hd с помощью вектора индексов, обеспеченных в order.

reorder(hs,numorder,denorder) переупорядочивает числитель и знаменатель отдельно с помощью векторов индексов в numorder и denorder.

reorder(hs,numorder,denorder,svorder) указывает, что значения шкалы могут быть независимо переупорядочены.

reorder(hs,filter_type) переупорядочивание hd, в некотором роде подходящий для заданного типа фильтра. Этот режим переупорядочения может быть особенно полезным для реализаций фиксированной точки, где порядок разделов фильтра может значительно влиять на вашу производительность фильтра.

reorder(hs,dir_flag) задает перестраивает разделы согласно близости к источнику полюсов разделов.

reorder(hs,dir_flag,sv) переупорядочивание масштабирует значения в дополнение к реорганизации разделов согласно близости источника полюса.

reorder(hs,...) перестраивает разделы Системы фильтра object™ hs согласно любому из предыдущих входных параметров.

reorder(hs,...,Name,Value) перестраивает разделы Системного объекта фильтра hs с дополнительными опциями, заданными одним или несколькими аргументами пары Name,Value.

Входные параметры

свернуть все

Системный объект фильтра dsp.BiquadFilter с одной из следующих структур фильтра:

СтруктураОписание
df1sosПрямая форма I объектов фильтра с разделами второго порядка.
df1tsosПрямая форма я транспонировал фильтр с разделами второго порядка.
df2sosПрямая форма II объектов фильтра с разделами второго порядка.
df2tsosПрямая форма II транспонированных фильтров с разделами второго порядка.

Вектор индексов раньше переупорядочивал разделы фильтра. order не должен содержать все индексы фильтра. Исключение одного или нескольких индексов раздела фильтра удаляет не использованные разделы из фильтра. Можно использовать логический массив, чтобы удалить разделы из фильтра, но не переупорядочить его.

Вектор индексов раньше переупорядочивал числитель. numorder и denorder должны быть той же длиной.

Вектор индексов раньше переупорядочивал числитель. numorder и denorder должны быть той же длиной.

Независимое переупорядочение значений шкалы. Когда svorder не задан, значения шкалы переупорядочиваются с числителем. Выходное значение шкалы всегда остается на конце, когда вы используете аргумент numorder, чтобы переупорядочить значения шкалы.

Отфильтруйте тип. Опция 'auto' и автоматическое упорядоченное расположение только применяются к фильтрам, которые вы использовали fdesign, чтобы создать. С опцией 'auto' как входной параметр reorder автоматически перестраивает разделы фильтра в зависимости от типа ответа спецификации проекта.

Флаг направления полюса. Когда dir_flag является 'up', первый раздел фильтра содержит полюса, самые близкие к источнику, и последний раздел содержит полюса, самые близкие к модульному кругу. Когда ir_flag является 'down', разделы упорядочены в противоположном направлении. reorder всегда нули пар с полюсами, самыми близкими к ним.

Переупорядочьте значения шкалы согласно полюсам или нулям. По умолчанию значения шкалы не переупорядочиваются, когда вы используете входной параметр dir_flag.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Для фильтра Системный объект вводит только, задайте арифметику, используемую во время анализа. Когда вы задаете 'double' или 'single', функция выполняет дважды - или анализ с одинарной точностью. Когда вы задаете 'fixed', арифметические изменения в зависимости от установки свойства CoefficientDataType и заблокирован ли Системный объект или разблокирован.

 Детали для вычислений с фиксированной точкой

Когда вы не задаете арифметику, функция использует арифметику с двойной точностью, если Системный объект фильтра находится в разблокированном состоянии. Если Системный объект заблокирован, функция выполняет анализ на основе заблокированного типа входных данных.

Примеры

свернуть все

Способность перестроить порядок разделов в фильтре может быть мощным инструментом для управления процессом фильтра. Этот пример использует переупорядочивание, чтобы изменить разделы фильтра df2sos. Позвольте переупорядочиванию сделать переупорядочение автоматически в первом примере. Во втором используйте переупорядочивание, чтобы задать новый порядок для разделов.

Сначала используйте автоматическую опцию переупорядочения на фильтре lowpass.

d = fdesign.lowpass('n,f3db',15,0.75);
biquad = design(d,'butter','SystemObject',true);
biquadreorder = reorder(biquad,'auto');

Для другого примера использования переупорядочивания создайте SOS, просачиваются прямая форма II реализаций.

biquad2sos = design(d,'butter', 'FilterStructure', 'df2sos',...
    'SystemObject',true);
biquad2sosreorder = reorder(biquad2sos,[1 3:7 2 8]);
fvt = fvtool(biquad2sos,biquad2sosreorder,'analysis','coefficients');

Удалите третьи, четвертые, и седьмые разделы.

biquad2sosclone1 = clone(biquad2sos);
reorder(biquad2sosclone1, logical([1 1 0 0 1 1 0 1]));
setfilter(fvt, biquad2sosclone1);

Переместите первый фильтр в конец и удалите восьмой раздел.

biquad2sosclone2 = clone(biquad2sos);
reorder(biquad2sosclone2, [2:7 1]);
setfilter(fvt, biquad2sosclone2);

Переместите числитель и знаменатель независимо.

biquad2sosclone3 = clone(biquad2sos);
reorder(biquad2sosclone3, [1 3:8 2], (1:8));
setfilter(fvt, biquad2sosclone3);

Ссылки

Schlichthärle, Дитрих, цифровые основы фильтров и проект, Springer-Verlag Берлин Гейдельберг, 2000.

Смотрите также

| |

Введенный в R2011a