dsp.FIRDecimator

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

Описание

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

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

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

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

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

Создание

Описание

пример

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

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

  • 'Property' – Коэффициенты числителя заданы через 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 – Объект вычисляет все внутренние типы арифметических и выходных данных, использующие правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. В этом режиме не применяются другие свойства фиксированной точки. Никакое квантование не происходит в объекте. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят.

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

Для получения дополнительной информации смотрите Полную точность для 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'.

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

Описание

пример

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