reorder

Переупорядочить секции второго порядка биквадратичного фильтра Системного объекта

Описание

reorder(sysobj,order) переставляет разделы biquadratic filter System object™ используя вектор индексов, представленных в order.

пример

sysobjnew = reorder(sysobj,order) генерирует новую биквадратичную фильтрующий Системный объект, которая содержит переупорядоченные разделы. В этом случае исходный фильтр sysobj не меняется.

reorder(sysobj,numorder,denorder) переупорядочивает числитель и знаменатель фильтра отдельно с помощью вектора индексов в numorder и denorder, соответственно. Эти векторы должны быть одинаковой длины.

reorder(sysobj,numorder,denorder,svorder) независимо переупорядочивает значения шкалы биквадратичного Системного объекта фильтра. Если svorder не задан, значения шкалы биквадратичного фильтра переупорядочены так же, как и числитель. Значение выход шкалы всегда остается в конце и numorder используется для изменения порядка значений шкалы.

пример

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

reorder(sysobj,dir_flag) переставляет секции в соответствии с близостью к источнику полюсов секций.

reorder(sysobj,dir_flag,sv) переупорядочивает значения шкалы после изменения порядка полюсов при sv установлено в 'poles', или следуя переупорядочению нулей, когда sv установлено в 'zeros'. Значения шкалы не переупорядочиваются при использовании dir_flag опция, если только sv задан.

reorder(___,'Arithmetic',arithType) принимает, что арифметика фильтра равна arithType.

Примеры

свернуть все

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

Сначала используйте опцию автоматического заказа на 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');

Figure Filter Visualization Tool - Filter Coefficients contains objects of type uitoolbar, uimenu, uicontrol.

Удалите третью, четвертую и седьмую секции.

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

Figure Filter Visualization Tool - Filter Coefficients contains objects of type uitoolbar, uimenu, uicontrol.

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

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

Figure Filter Visualization Tool - Filter Coefficients contains objects of type uitoolbar, uimenu, uicontrol.

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

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

Figure Filter Visualization Tool - Filter Coefficients contains objects of type uitoolbar, uimenu, uicontrol.

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

свернуть все

Объект биквадратичного фильтра, заданный как dsp.BiquadFilter или dsp.SOSFilter объекты.

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

Когда order является вектором логик, функция удаляет разделы фильтра, которые соответствуют значениям индекса где order равно false.

Типы данных: double | logical

Вектор индексов, используемых для переупорядочивания числителя фильтра. The numorder и denorder векторы должны иметь одинаковую длину.

Когда numorder является вектором логик, функция удаляет коэффициенты числителя, которые соответствуют значениям индекса где numorder равно false.

Типы данных: double | logical

Вектор индексов, используемых для переупорядочивания знаменателя фильтра. The numorder и denorder векторы должны иметь одинаковую длину.

Когда denorder является вектором логик, функция удаляет коэффициенты знаменателя, которые соответствуют значениям индекса где denorder равно false.

Типы данных: double | logical

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

Когда svorder является вектором логик, функция удаляет значения шкалы, которые соответствуют значениям индекса где svorder равно false.

Типы данных: double | logical

Тип фильтра. Автоматическое переупорядочивание применяется только при sysobj была получена с использованием fdesign. С 'auto' опция как входной параметр, reorder автоматически переставляет секции фильтра в зависимости от типа отклика спецификации проекта (lowpass, highpass и т.д.).

Флаг направления шеста, заданный как:

  • 'up' - Первая секция фильтра содержит полюса, ближайшие к источнику, и последняя секция содержит полюса, ближайшие к модулю кругу.

  • 'down' - Разделы упорядочены в противоположном направлении. Нули всегда в паре с ближайшими к ним полюсами.

Опции значения шкалы, заданные как:

  • 'poles' - Значения шкалы переупорядочиваются после изменения порядка полюсов.

  • 'zeros' - Значения шкалы переупорядочиваются после изменения порядка нули.

Значения шкалы не переупорядочиваются при использовании dir_flag опция, если только sv задан.

Арифметический тип reorder функция принимает, заданную как одно из следующего:

  • 'double' - Функция принимает фильтр двойной точности, когда вход арифметики не задан, и Системный объект фильтра находится в разблокированном состоянии.

  • 'single' - Функция принимает один фильтр точности.

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

Выходные аргументы

свернуть все

Объект биквадратичного фильтра с переупорядоченными секциями второго порядка, возвращенный как dsp.BiquadFilter или dsp.SOSFilter объект. Матрицы SOS и соответствующие значения шкалы в выходном объекте соответствуют reorder аргументы выполняются на входе sysobj.

См. также

| | | |

Введенный в R2011a