exponenta event banner

масштаб

Масштабировать разделы второго порядка

Описание

scale(sysobj) масштабирует биквадратическую систему object™, sysobj, используя масштабирование отклика пиковой величины (L-бесконечность, 'Linf'). Это масштабирование уменьшает возможность переполнения, когда объект фильтра работает в арифметическом режиме с фиксированной точкой.

sysobjnew = scale(sysobj) создает новый объект System фильтра, sysobjnew, с масштабированными секциями второго порядка. Исходный объект System фильтра, sysobj, не изменяется.

scale(sysobj,pnorm) задает норму, используемую для масштабирования фильтра. Переменная pnorm может быть либо нормой дискретной временной области, либо нормой частотной области. Допустимые нормы временной области: 'l1', 'l2', и 'linf'. Допустимые нормы частотной области: 'L1', 'L2', и 'Linf'. Заметим, что L2-norm равно l2-norm (теорема Парсеваля), но то же самое не верно для других норм.

Различные нормы могут быть упорядочены с точки зрения того, насколько строгими они являются: 'l1' >= 'Linf' >= 'L2' = 'l2' >= 'L1' >= 'linf'.

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

scale(sysobj,pnorm,opts) использует объект options для задания необязательных параметров масштабирования вместо указания пар параметр-значение. opts объект может быть создан с помощью scaleopts функция: opts = scaleopts(sysobj).

пример

scale(sysobj,pnorm,Name,Value) задает необязательные параметры масштабирования с помощью одного или нескольких Name,Value аргументы пары.

Примеры

свернуть все

Продемонстрируйте масштабирование Linf-norm биквадного фильтра с помощью scale функция.

Fs = 8000; Fcutoff = 2000;
[z,p,k] = butter(10,Fcutoff/(Fs/2)); [s,g] = zp2sos(z,p,k);
biquad = dsp.BiquadFilter('Structure', 'Direct form I', ...
    'SOSMatrix', s,'ScaleValues', g);
scale(biquad,'linf','scalevalueconstraint','none','maxscalevalue',2)

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

свернуть все

Входной фильтр, указанный как один из следующих системных объектов:

Пример: biquad = dsp.BiquadFilter('Structure', 'Direct form I', ...'SOSMatrix', s,'ScaleValues', g);

Допустимые значения нормы временной области для pnorm являются 'l1', 'l2', и 'linf'. Допустимые значения нормы частотной области: 'L1', 'L2', и 'Linf' . 'L2' норма равна 'l2' норма (по теореме Парсеваля), но эта эквивалентность не имеет значения для других норм - 'l1' не совпадает с 'L1' и 'Linf' не совпадает с 'linf'.

Нормы фильтрации можно упорядочить с точки зрения того, насколько строгими они являются: 'l1', 'Linf', 'l2' ('L2'), 'linf'. Используя 'l1', наиболее жесткое масштабирование, создает фильтр, который с наименьшей вероятностью перетекает, но имеет худшую производительность отношения сигнал/шум. Масштаб по умолчанию 'Linf' (по умолчанию) - наиболее часто используемая норма масштабирования.

Можно создать fdopts.sosscaling объект, opts, с использованием scaleopts функция.

В следующей таблице перечислены свойства opts:

Параметр

Дефолт

Описание и допустимое значение

sosReorder

'auto'

Переупорядочить секцию перед масштабированием.

Допустимые параметры: 'auto' (по умолчанию), 'none', 'up', 'down', 'lowpass', 'highpass', 'bandpass', и 'bandstop'.

MaxNumerator

2

Максимально допустимое значение коэффициентов числителя.

NumeratorConstraint

'none'

Указывает, следует ли и как ограничивать значения числительных коэффициентов. Опции: 'none' (по умолчанию), 'unit', 'normalize', и 'po2'.

OverflowMode

'wrap'

Задает способ обработки фильтром ситуаций арифметического переполнения во время масштабирования. Допустимые параметры: 'wrap' (по умолчанию), 'saturate', и 'satall'.

ScaleValueConstraint

'unit'

Укажите, следует ли ограничивать значения масштаба фильтра и как их ограничивать. Допустимые параметры: 'unit' (по умолчанию), 'none', и 'po2'.

MaxScaleValue

'Not used'

Максимально допустимые значения шкалы. Фильтр применяет MaxScaleValue ограничение только при установке ScaleValueConstraint в значение, отличное от unit. Настройка MaxScaleValue на числовое значение автоматически изменяет ScaleValueConstraint установка для none.

Пример: opts = scaleopts(biquad)

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

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: [z,p,k] = butter(10,2000/(8000/2)); [s,g] = zp2sos(z,p,k); biquad = dsp.BiquadFilter('Structure','Direct form I','SOSMatrix',s,'ScaleValues',g); scale(biquad,'linf','scalevalueconstraint','none','maxscalevalue',2)

Арифметический тип, используемый при анализе, указанный как один из 'double', 'single', или 'fixed'. Метод масштабирования предполагает использование фильтра двойной точности, если арифметический ввод не задан и объект «Система фильтра» находится в разблокированном состоянии. Если объект System заблокирован, функция выполняет анализ на основе заблокированного типа входных данных. Если 'Arithmetic' является 'double' или 'single', значения по умолчанию используются для всех параметров масштабирования, которые не указаны как входные scale функция. Если 'Arithmetic' является 'fixed'значения, используемые для параметров масштабирования, задаются в соответствии с настройками объекта «Система фильтров». Однако, если указана опция масштабирования, которая отличается от настроек в sysobj, эта опция используется для масштабирования, но не изменяет настройки в sysobj. Например, если не указать 'OverflowMode' параметр масштабирования, scale метод предполагает, что 'OverflowMode' равно значению в OverflowAction свойства объекта фильтра. Если указать 'OverflowMode' параметр масштабирования, затем scale функция использует это значение режима переполнения независимо от значения в OverflowAction свойства объекта System.

Переупорядочить разделы фильтра перед применением масштабирования. Возможные варианты:

  • 'auto'

  • 'none'

  • 'up'

  • 'down'

  • 'lowpass'

  • 'highpass'

  • 'bandpass'

  • 'bandstop'

Автоматическое изменение порядка вступает в силу, когда sysobj получается в результате проектирования с использованием fdesign. Разделы автоматически переупорядочиваются в зависимости от типа отклика проекта.

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

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Метод ограничения значений числительных коэффициентов, указанный как одно из следующих:

  • 'none'

  • 'normalized'

  • 'po2'

  • 'unit'

Задает способ обработки фильтром ситуаций арифметического переполнения во время масштабирования. Если устройство не имеет доступных защитных битов и для фильтрации используется арифметика насыщения, используйте 'satall' вместо 'saturate'. Значение по умолчанию: 'wrap'.

Укажите, следует ли ограничивать значения масштаба фильтра и как их ограничивать. Выбор 'unit' для ограничения отключает MaxScaleValue параметр свойства. 'po2' ограничивает значения масштаба степенями 2, в то время как 'none' удаляет любое ограничение значений масштаба. 'unit' является значением по умолчанию.

Максимально допустимые значения шкалы. Фильтр применяет MaxScaleValue ограничение только при установке ScaleValueConstraint в значение, отличное от unit (настройка по умолчанию). Настройка MaxScaleValue на любое числовое значение автоматически изменяет ScaleValueConstraint установка для none.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

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

свернуть все

Масштабированный объект биквадратического фильтра, возвращенный как один из следующих системных объектов:

Возвращенный объект содержит масштабированные разделы второго порядка.

Ссылки

[1] Dehner, G.F. «Дизайн цифрового фильтра с оптимизированным шумом: учебное пособие и некоторые новые аспекты». Обработка сигналов. Том 83, номер 8, 2003, стр. 1565-1582.

Представлен в R2011a