dsp. FIRInterpolator

Многофазный КИХ-интерполятор

Описание

Система dsp.FIRInterpolator object™ сверхдискретизировала вход целочисленным фактором повышающей дискретизации, L, сопровождаемым КИХ-реконструкционным фильтром. Коэффициенты фильтра масштабируются коэффициентом интерполяции. Многофазная структура интерполяции реализует фильтр. Получившийся сигнал дискретного времени имеет уровень выборки времена L исходный уровень выборки.

Сверхдискретизировать вход:

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

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

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

Создание

Синтаксис

firinterp = dsp.FIRInterpolator
firinterp = dsp.FIRInterpolator(interpFactor,num)
firinterp = dsp.FIRInterpolator(___,Name,Value)

Описание

firinterp = dsp.FIRInterpolator возвращает КИХ-интерполятор, firinterp, который сверхдискретизировал входной сигнал фактором 3 и применяет КИХ-фильтр, чтобы интерполировать вывод.

пример

firinterp = dsp.FIRInterpolator(interpFactor,num) возвращает КИХ-интерполятор с набором свойств InterpolationFactor с целочисленным знаком к interpFactor и набором свойств Numerator к num.

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

Свойства

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

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

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

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

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

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

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

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

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

Задайте коэффициенты числителя КИХ-реконструкционного фильтра как коэффициенты полинома в z–1. Индексируя от нуля, коэффициенты фильтра:

H(z)=n=0N1b(n)zn

Чтобы действовать как эффективный реконструкционный фильтр, коэффициенты должны соответствовать фильтру lowpass с нормированной частотой среза, не больше, чем обратная величина InterpolationFactor. Коэффициенты фильтра масштабируются значением свойства InterpolationFactor прежде, чем отфильтровать сигнал. Чтобы сформировать L многофазные подфильтры, Numerator добавлен с нулями при необходимости.

Зависимости

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

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

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

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

  • 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 = firinterp(x)
y = firinterp(x,num)

Описание

пример

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

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

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

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

Ввод данных, заданный как вектор или матрица. Ki-by-N входная матрица обработан как N независимые каналы, и Системный объект интерполирует каждый канал по первой размерности и генерирует Ki*L-by-N выходная матрица, где L является коэффициентом интерполяции.

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

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

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

Зависимости

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

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

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

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

КИХ-выходной параметр интерполятора, возвращенный как вектор или матрица размера Ki*L-by-N, где L является коэффициентом интерполяции.

Типы данных: 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Сбросьте внутренние состояния Системного объекта

Примеры

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

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

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

Этот пример показывает, как удвоить уровень выборки звукового сигнала от 22,05 кГц до 44,1 кГц и проигрывать аудио.

afr = dsp.AudioFileReader('OutputDataType',...
   'single');
adw = audioDeviceWriter(44100);
firinterp = dsp.FIRInterpolator(2, ...
   firpm(30, [0 0.45 0.55 1], [1 1 0 0]));
 
while ~isDone(afr)
     frame = afr();
     y = firinterp(frame);
     adw(y);
end

pause(1);
release(afr); 
release(adw);

Алгоритмы

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

  • Объект FIRInterpolator не имеет свойства, которое соответствует параметру Input processing блока FIR Interpolation.

  • Параметры блоков Rate options не поддержаны объектом FIRInterpolator.

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

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

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