scale

Масштабируйте секции второго порядка

Описание

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

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

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

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

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

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

пример

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

Примеры

свернуть все

Продемонстрировать Linf-норму масштабирования биквадного фильтра с помощью 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' . The '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'. Метод шкалы принимает фильтр двойной точности, когда вход арифметики не задан, и Системный объект фильтра находится в разблокированном состоянии. Если системный объект заблокирован, функция выполняет анализ на основе типа заблокированных входных данных. Если 'Arithmetic' является 'double' или 'single', значения по умолчанию используются для всех опций масштабирования, которые не заданы как вход в scale функция. Если 'Arithmetic' является 'fixed'значения, используемые для опций масштабирования, устанавливаются в соответствии с настройками в Системный объект фильтра. Однако, если задана опция масштабирования, которая отличается от настроек в sysobj, эта опция используется в целях масштабирования, но не изменяет настройку в sysobj. Для примера, если вы не задаете 'OverflowMode' опция масштабирования, scale метод принимает, что 'OverflowMode' равно значению в OverflowAction свойство объекта фильтра. Если вы задаете 'OverflowMode' опция масштабирования, затем scale функция использует это значение режима переполнения независимо от значения в OverflowAction свойство Системного объекта.

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

  • '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. «Noise Optimized Digital Filter Design: Tutorial and Some New Aspects». Обработка сигналов. Том 83, № 8, 2003, стр. 1565-1582.

Введенный в R2011a