dsp. FIRDecimator

Многофазный КИХ decimator

Описание

Система dsp.FIRDecimator object™ передискретизирует векторные или матричные входные параметры по первому измерению. Объект передискретизирует на уровне времена M медленнее, чем входной уровень выборки, где M является фактором субдискретизации с целочисленным знаком. Десятикратное уменьшение комбинирует КИХ-фильтр сглаживания с субдискретизацией. КИХ decimator объект использует многофазную реализацию КИХ-фильтра.

Передискретизировать вектор или матрицу вводит по первому измерению:

  1. Создайте объект dsp.FIRDecimator и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

firdecim = dsp.FIRDecimator
firdecim = dsp.FIRDecimator(decimFactor,num)
firdecim = dsp.FIRDecimator(___,Name,Value)

Описание

пример

firdecim = dsp.FIRDecimator возвращает КИХ decimator, firdecim, который применяет КИХ-фильтр с частотой среза радианов/выборки 0.4*pi к входу и субдискретизирует фильтр, выведенный фактором 2.

firdecim = dsp.FIRDecimator(decimFactor,num) возвращает КИХ decimator с набором свойств DecimationFactor с целочисленным знаком к decimFactor и набором свойств Numerator к num.

firdecim = dsp.FIRDecimator(___,Name,Value) возвращает КИХ decimator объект с каждым заданным набором свойств к заданному значению. Заключите каждое имя свойства в кавычки. Можно использовать этот синтаксис с любыми предыдущими комбинациями входных аргументов.

Свойства

развернуть все

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

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Фактор десятикратного уменьшения, заданный как положительное целое число. КИХ decimator уменьшает уровень выборки входа этим фактором. Количество входных строк должно быть кратным фактору десятикратного уменьшения.

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

КИХ-содействующий источник фильтра, заданный как также:

  • Свойство Коэффициенты числителя заданы через свойство Numerator.

  • 'Input port' – Коэффициенты числителя заданы как вход к объектному алгоритму.

Укажите, что коэффициенты числителя КИХ просачиваются степени z–1. Следующее уравнение задает системную функцию для фильтра длины L:

H(z)=l=0L1blzl

Чтобы предотвратить искажение в результате субдискретизации, передаточная функция фильтра должна иметь нормированную частоту среза, не больше, чем 1/DecimationFactor. Можно задать коэффициенты фильтра как вектор в поддерживаемых типах данных.

Зависимости

Это свойство применяется, когда NumeratorSource установлен в 'Property'.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Задайте реализацию КИХ-фильтра или как Direct form или как Direct form transposed.

Свойства фиксированной точки

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

  • tRUE Объект вычисляет все внутренние типы арифметических и выходных данных, использующие правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. В этом режиме не применяются другие свойства фиксированной точки. Никакое квантование не происходит в объекте. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.

  • ложь Типами данных с фиксированной точкой управляют посредством отдельных настроек свойства фиксированной точки.

Для получения дополнительной информации смотрите Полную точность для Fixed-Point System Objects and Set System Object Fixed-Point Properties.

Округление метода для операций фиксированной точки. Для получения дополнительной информации смотрите округление режима.

Зависимости

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

  • Набор FullPrecisionOverride к true.

  • Набор FullPrecisionOverride к false, набор ProductDataType к 'Full precision', набор AccumulatorDataType к 'Full precision' и набор OutputDataType к 'Same as accumulator'.

При этих условиях объект действует в режиме максимальной точности.

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

  • 'Wrap' – Объект переносит результат своих операций фиксированной точки.

  • 'Saturate' – Объект насыщает результат своих операций фиксированной точки.

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

Зависимости

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

  • Набор FullPrecisionOverride к true.

  • Набор FullPrecisionOverride к false, набор OutputDataType к 'Same as accumulator', набор ProductDataType к 'Full precision' и набор AccumulatorDataType к 'Full precision'

При этих условиях объект действует в режиме максимальной точности.

Тип данных КИХ фильтрует коэффициенты, заданные как:

  • Same word length as input – Размер слова коэффициентов совпадает с размером слова входа. Дробная длина вычисляется, чтобы дать самую лучшую точность.

  • Custom – Содействующий тип данных задан как пользовательский числовой тип через свойство CustomCoefficientsDataType.

Word и дробные длины содействующего типа данных, заданного как numerictype автосо знаком с размером слова 16 и дробной длиной 15.

Зависимости

Это свойство применяется, когда вы устанавливаете свойство CoefficientsDataType на Custom.

Тип данных продукта вывод в этом объекте, заданном как одно из следующего:

  • 'Full precision' – Тип выходных данных продукта имеет полную точность.

  • 'Same as input' – Объект задает тип выходных данных продукта, чтобы совпасть с тем из типа входных данных.

  • 'Custom' – Тип выходных данных продукта задан как пользовательский числовой тип через свойство CustomProductDataType.

Для получения дополнительной информации о типе выходных данных продукта смотрите Типы данных Умножения.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride на false.

Word и дробные длины типа данных продукта, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 30.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride на false и ProductDataType к 'Custom'.

Тип данных операции накопления в этом объекте, заданном как одно из следующего:

  • 'Full precision' – Операция накопления имеет полную точность.

  • 'Same as product' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из типа выходных данных продукта.

  • 'Same as input' – Объект задает тип данных аккумулятора, чтобы совпасть с тем из типа входных данных.

  • 'Custom' – Тип данных аккумулятора задан как пользовательский числовой тип через свойство CustomAccumulatorDataType.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride на false.

Word и дробные длины типа данных аккумулятора, заданного как числовой тип автосо знаком с размером слова 32 и дробной длиной 30.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride на false и AccumulatorDataType к 'Custom'.

Тип данных объектного вывода, заданного как одно из следующего:

  • 'Same as accumulator' – Тип выходных данных совпадает с типом типа выходных данных аккумулятора.

  • 'Same as input' – Тип выходных данных совпадает с типом типа входных данных.

  • 'Same as product' – Тип выходных данных совпадает с типом типа выходных данных продукта.

  • 'Custom' – Тип выходных данных задан как пользовательский числовой тип через свойство CustomOutputDataType.

Зависимости

Это свойство применяется, когда вы устанавливаете FullPrecisionOverride на false.

Word и дробные длины типа выходных данных, заданного как числовой тип автосо знаком с размером слова 16 и дробной длиной 15.

Зависимости

Это свойство применяется только, когда вы устанавливаете FullPrecisionOverride на false и OutputDataType к 'Custom'.

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить алгоритм Системного объекта. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

y = firdecim(x)
y = firdecim(x,num)

Описание

пример

y = firdecim(x) выводит отфильтрованные и субдискретизируемые значения, y, входного сигнала, x.

y = firdecim(x,num) использует КИХ-фильтр, num, чтобы десятикратно уменьшить входной сигнал. Эта настройка допустима только, когда свойство 'NumeratorSource' установлено в 'Input port'.

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

развернуть все

Ввод данных, заданный как вектор-столбец или матрица размера Ki-by-N. Количество входных строк, Ki, должно быть кратным свойству DecimationFactor. Входные столбцы представляют N независимые каналы.

Этот вход переменного размера поддержки объектов и не поддерживает комплексные входные параметры фиксированной точки без знака.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

КИХ-коэффициенты фильтра, заданные как вектор - строка.

Зависимости

Этот вход принят только, когда свойство 'NumeratorSource' установлено в 'Input port'.

Типы данных: double
Поддержка комплексного числа: Да

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

развернуть все

КИХ десятикратно уменьшил выходной параметр, возвращенный как вектор-столбец или матрица размера Ki/M-by-N, где M является фактором десятикратного уменьшения.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fi
Поддержка комплексного числа: Да

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

freqzЧастотная характеристика фильтра
fvtoolВизуализируйте частотную характеристику фильтров DSP
infoИнформация о Системном объекте фильтра
costОценка стоится за реализацию Системных объектов фильтра
polyphaseМногофазное разложение многоскоростного фильтра
generatehdlСгенерируйте HDL-код для квантованного фильтра DSP (требует Filter Design HDL Coder),
impzИмпульсный ответ дискретного времени фильтрует Системный объект
coeffsОтфильтруйте коэффициенты
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step. Например, myObject (x) становится шагом (myObject, x).

Этот пример показывает, как десятикратно уменьшить сумму синусоид с угловыми частотами пи/4 и 2pi/3 радианов/выборки фактором два. Чтобы предотвратить искажение, КИХ decimator отфильтровывает 2pi/3 компонент радианов/выборки перед субдискретизацией.

x = cos(pi/4*(0:95)')+sin(2*pi/3*(0:95)');
firdecim = dsp.FIRDecimator;
y = firdecim(x);

Просмотрите групповую задержку КИХ-фильтра по умолчанию

fvtool(fir1(35,0.4),1,'analysis','grpdelay');

Групповая задержка КИХ-фильтра линейной фазы по умолчанию является 17,5 выборками. Субдискретизация фактором два ожидает приблизительно 8,75 демонстрационных задержек вывода y с начальными состояниями фильтра нуля

subplot(211);
stem(x(1:length(x)/2),'b','markerfacecolor',[0 0 1]);
title('Input Signal');
subplot(212);
stem(y,'b','markerfacecolor',[0 0 1]);
title('Output--Lowpass filtered and downsampled by 2');

Примечание: Если вы используете R2016a или более ранний релиз, заменяете каждый вызов объекта с эквивалентным синтаксисом step . Например, obj(x) становится step(obj,x).

Примечание: dsp.AudioFileReader и Системные объекты audioDeviceWriter не поддержаны в MATLAB Online.

Этот пример показывает, как уменьшать уровень выборки звукового сигнала на 1/2 и проигрывает его.

afr = dsp.AudioFileReader('OutputDataType',...
  'single');
adw = audioDeviceWriter(22050/2);
firdecim = dsp.FIRDecimator;

while ~isDone(afr)
     frame = afr();
     y = firdecim(frame);
     adw(y);
end

release(afr); 
pause(0.5);
release(adw);

Больше о

развернуть все

Алгоритмы

Этот объект реализует алгоритм, входные параметры и выходные параметры, описанные на странице с описанием блока FIR Decimation. Свойства объектов соответствуют параметрам блоков, кроме:

  • Framing – КИХ decimator возражает, только поддерживает Maintain input frame rate

  • Output buffer initial conditions – КИХ decimator объект не поддерживает этот параметр.

  • Rate options – КИХ decimator объект не поддерживает этот параметр.

  • Input processing КИХ decimator объект не поддерживает этот параметр.

Расширенные возможности

Преобразование фиксированной точки
Преобразуйте алгоритмы с плавающей точкой в фиксированную точку с помощью Fixed-Point Designer™.

Представленный в R2012a