dsp. FIRRateConverter

Конвертер частоты дискретизации

Описание

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

Выполнять преобразование уровня выборки:

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

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

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

Создание

Синтаксис

firrc = dsp.FIRRateConverter
firrc = dsp.FIRRateConverter(L,M,NUM)
firrc = dsp.FIRRateConverter(___,Name,Value)

Описание

пример

firrc = dsp.FIRRateConverter возвращает КИХ-конвертер частоты дискретизации, firrc, который передискретизирует входной сигнал на уровне 3/2 времена исходный уровень выборки.

пример

firrc = dsp.FIRRateConverter(L,M,NUM) возвращает КИХ-конвертер частоты дискретизации, firrc, с набором свойств InterpolationFactor к L, набором свойств DecimationFactor к M и набором свойств Numerator к NUM.

firrc = dsp.FIRRateConverter(___,Name,Value) возвращает КИХ-конвертер частоты дискретизации, с дополнительными свойствами, заданными одним или несколькими аргументами пары Name,Value.

Пример: firrc = dsp.FIRRateConverter('FullPrecisionOverride','false') позволяет типам данных с фиксированной точкой управляться посредством отдельных настроек свойства фиксированной точки.

Свойства

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

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

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

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

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

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

Фактор десятикратного уменьшения, заданный как положительное целое число.

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

Задайте КИХ-коэффициенты фильтра в степенях z-1. Длина коэффициентов фильтра должна превысить коэффициент интерполяции. Используйте lowpass с нормированной частотой среза, не больше, чем min(1/InterpolationFactor, 1/DecimationFactor). Все начальные состояния фильтра являются нулем.

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

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

Задайте, использовать ли правила полной точности. Если вы устанавливаете FullPrecisionOverride на true, который является значением по умолчанию, объект вычисляет все внутренние типы арифметических и выходных данных, использующие правила полной точности. Эти правила обеспечивают самые точные численные данные фиксированной точки. Это также выключает отображение других свойств фиксированной точки, потому что они не применяются индивидуально. Эти правила гарантируют, что никакое квантование не происходит в объекте. Биты добавляются, по мере необходимости, чтобы гарантировать, что никакое округление или переполнение не происходят. Если вы устанавливаете FullPrecisionOverride на false, типами данных с фиксированной точкой управляют посредством отдельных настроек свойства фиксированной точки. Для получения дополнительной информации смотрите Полную точность для Системных объектов Фиксированной точки.

Задайте метод округления как один из | Ceiling | Convergent | Floor | Nearest | Round | Simplest | Zero |.

Зависимости

Это свойство применяется, только если объект не находится в режиме максимальной точности.

Задайте действие переполнения как один из | Wrap | Saturate |.

Зависимости

Это свойство применяется, только если объект не находится в режиме максимальной точности.

Задайте содействующий тип данных с фиксированной точкой фильтра как один из | Same word length as input | Custom |.

Задайте содействующую фиксированную точку фильтра как объект numerictype с Signedness Auto.

Зависимости

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

Задайте тип данных с фиксированной точкой продукта как один из | Full precision | Same as input | Custom |.

Задайте фиксированную точку продукта как масштабированный объект numerictype с Signedness Auto.

Зависимости

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

Задайте тип данных с фиксированной точкой аккумулятора как один из | Full precision | Same as product | Same as input | Custom |.

Задайте фиксированную точку аккумулятора как масштабированный объект numerictype с Signedness Auto.

Зависимости

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

Задайте выходной тип данных с фиксированной точкой как один из | Same as accumulator | Same as product | Same as input | Custom |.

Задайте выходную фиксированную точку как масштабированный объект numerictype с Signedness Auto.

Зависимости

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

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

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

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

Синтаксис

y = firrc(x)

Описание

пример

y = firrc(x) передискретизирует вход x и возвращает передискретизируемый y сигнала.

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

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

Ввод данных, заданный как вектор-столбец или матрица. Количество входных строк должно быть кратным фактору десятикратного уменьшения. M-by-N матричный вход обработан как N независимые каналы.

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

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

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

Передискретизируемый выходной параметр, возвращенный как вектор-столбец или матрица. Количество строк в выходном сигнале дано MI/D, где M является количеством входных строк, I является коэффициентом интерполяции, и D является фактором десятикратного уменьшения.

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

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

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

release(obj)

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

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

Примеры

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

Этот пример показывает, как передискретизировать синусоидальный сигнал на 100 Гц фактором 3:2.

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

sine = dsp.SineWave(1, 100,'SampleRate', 5000,'SamplesPerFrame', 50);

Создайте КИХ-фильтр конвертера уровня. Коэффициент интерполяции по умолчанию равняется 3, и фактор десятикратного уменьшения равняется 2.

firrc = dsp.FIRRateConverter; 
input = sine();
output = firrc(input);

Постройте исходные и передискретизируемые сигналы.

ndelay = round(length(firrc.Numerator)/2/firrc.DecimationFactor);
indx = ndelay+1:length(output);
x = (0:length(indx)-1)/sine.SampleRate*firrc.DecimationFactor/firrc.InterpolationFactor;
stem((0:38)/sine.SampleRate, input(1:39)); hold on;
stem(x, firrc.InterpolationFactor*output(indx),'r');
legend('Original','Resampled');

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

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

Этот пример показывает, как передискретизировать и проигрывать звуковой сигнал от 48 кГц до 32 кГц на платформе Windows®.

afr = dsp.AudioFileReader('audio48kHz.wav', ...
    'OutputDataType', 'single', ...
    'SamplesPerFrame', 300);
adw = audioDeviceWriter(32000);

Создайте Системный объект FIRRateConverter с коэффициентом интерполяции = 2, фактор десятикратного уменьшения = 3. КИХ-коэффициенты фильтра по умолчанию задают фильтр lowpass с нормированной частотой среза 1/3.

firrc = dsp.FIRRateConverter(2,3);

while ~isDone(afr)
    audio1 = afr();
    audio2 = firrc(audio1);
    adw(audio2);
end

release(afr);
release(adw);

Алгоритмы

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

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

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

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