dsp.DigitalUpConverter

Интерполируйте цифровой сигнал и переведите его от основной полосы до полосы IF

Описание

dsp.DigitalUpConverter Система object™ интерполирует цифровой сигнал и переводит его от основной полосы до полосы промежуточной частоты (IF).

К в цифровой форме upconvert входной сигнал:

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

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

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

Создание

Описание

upConv = dsp.DigitalUpConverter возвращает Системный объект цифрового повышающего преобразователя (DUC), upConv.

пример

upConv = dsp.DigitalUpConverter(Name,Value) возвращает Системный объект DUC с заданным свойством Name установите на заданное значение Value. Можно задать один или несколько аргументов пары "имя-значение" в любом порядке как (Name1, Value1..., NameN, ValueN). Заключите каждое имя свойства в одинарные кавычки. Например, создайте объект, который сверхдискретизировал входной сигнал фактором 20, с помощью фильтра с заданными качествами.

upConv = dsp.DigitalUpConverter('InterpolationFactor',20,...
'SampleRate',Fs,...
'Bandwidth',2e3,...
'StopbandAttenuation',55,...
'PassbandRipple',0.2,...
'CenterFrequency',50e3);

Свойства

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

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

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

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

Установите это свойство на значение положительной скалярной величины. Значение этого свойства, умноженного на общий коэффициент интерполяции, должно быть больше или быть равно дважды значению CenterFrequency свойство.

Типы данных: single | double

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

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

Когда вы устанавливаете это свойство на 1 2 вектор, объект обходит первый этап фильтра и устанавливает коэффициент интерполяции вторых и третьих этапов фильтрации к значениям в первых и вторых векторных элементах, соответственно. Оба элемента этого InterpolationFactor вектор должен быть больше 1.

Когда вы устанавливаете это свойство на 1 3 вектор, i th элемент вектора задает коэффициент интерполяции для i th фильтрующий этап. Вторые и третьи элементы этого InterpolationFactor вектор должен быть больше 1, и первый элемент должен равняться 1 или 2.

Типы данных: double

Проект фильтра минимального порядка, заданный как true или false.

Когда вы устанавливаете это свойство на true, объект проектирует фильтры с минимальным порядком, который соответствует неравномерности в полосе пропускания, затуханию в полосе задерживания, частоте полосы пропускания и спецификациям частоты полосы задерживания, что вы устанавливаете использование PassbandRipple, StopbandAttenuationпропускная способность, StopbandFrequencySource, и StopbandFrequency свойства.

Когда вы устанавливаете это свойство на false, объект проектирует фильтры с порядками, которые вы задаете в FirstFilterOrder, SecondFilterOrder, и NumCICSections свойства. Проекты фильтра соответствуют полосе пропускания и спецификациям частоты полосы задерживания, что вы устанавливаете использование Bandwidth, StopbandFrequencySource, и StopbandFrequency свойства.

Типы данных: логический

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

Зависимости

Чтобы включить это свойство, установите MinimumOrderDesign свойство к false.

Типы данных: double

Порядок первого этапа фильтра, заданного как положительное даже целое число.

Зависимости

Чтобы включить это свойство, установите MinimumOrderDesign свойство к false. Когда вы устанавливаете InterpolationFactor свойство к 1 2 вектору, объект игнорирует FirstFilterOrder свойство, потому что первый этап фильтра исключен.

Типы данных: double

Количество разделов интерполятора CIC, заданного как положительное целое число.

Зависимости

Чтобы включить это свойство, установите MinimumOrderDesign свойство к false.

Типы данных: double

Двухсторонняя ширина спектра входного сигнала в Гц, заданном как положительное целое число. Объект устанавливает частоту полосы пропускания каскада фильтров к половине значения, которое вы задаете в этом Bandwidth свойство.

Типы данных: double

Источник частоты полосы задерживания, заданной как Auto или Property. Когда вы устанавливаете это свойство на Auto, объект помещает частоту среза каскадного ответа фильтра приблизительно в F c = SampleRate/2 Гц и вычисляет частоту полосы задерживания как остановку F = F c + TW/2. TW является пропускной способностью перехода каскадного ответа, вычисленного как 2× (F c–Fp). F p является частотой полосы пропускания, вычисленной Bandwidth/2.

Частота полосы задерживания в Гц, заданном как положительная скалярная величина.

Зависимости

Чтобы включить это свойство, установите StopbandFrequencySource свойство к Property.

Типы данных: double

Неравномерность в полосе пропускания каскадного ответа в дБ, заданном как положительная скалярная величина. Когда вы устанавливаете MinimumOrderDesign свойство к true, объект проектирует фильтры так, чтобы каскадный ответ соответствовал неравномерности в полосе пропускания, которую вы задаете в этом PassbandRipple свойство.

Зависимости

Чтобы включить это свойство, установите MinimumOrderDesign свойство к true.

Типы данных: double

Затухание в полосе задерживания каскадного ответа в дБ, заданном как положительная скалярная величина. Когда вы устанавливаете MinimumOrderDesign свойство к true, объект проектирует фильтры так, чтобы каскадный ответ соответствовал затуханию в полосе задерживания, которое вы задаете в этом StopbandAttenuation свойство.

Зависимости

Чтобы включить это свойство, установите MinimumOrderDesign свойство к true.

Типы данных: double

Тип генератора, заданного как Sine wave или NCO. Когда вы устанавливаете это свойство на Sine wave, объектная частота-upconverts выход интерполяции фильтрует каскад при помощи сигнала комплексной экпоненты, полученного из отсчетов синусоидальной тригонометрической функции. Когда вы устанавливаете это свойство на NCO, объектная частота-upconverts выход при помощи комплексной экпоненты получена из генератора с программным управлением (NCO).

Центральная частота выходного сигнала в Гц, заданном как положительная скалярная величина. Значение этого свойства должно быть меньше чем или равно половине продукта SampleRate свойство и общий коэффициент интерполяции. Объект преобразует входной сигнал так, чтобы выходной спектр центрировался на этой частоте, которую вы задаете в CenterFrequency свойство.

Типы данных: double

Свойства NCO

Количество двоичных разрядов аккумулятора NCO, заданных как целое число в области значений [1, 128]. Для получения дополнительной информации смотрите dsp.NCO Системный объект.

Зависимости

Чтобы включить это свойство, установите Oscillator свойство к NCO.

Типы данных: double

Количество двоичных разрядов аккумулятора NCO, заданных как целое число в области значений [1, 128]. Значение, которое вы задаете для этого свойства, должно быть меньше значения, которое вы задаете в NumAccumulatorBits свойство. Для получения дополнительной информации смотрите dsp.NCO Системный объект.

Зависимости

Чтобы включить это свойство, установите Oscillator свойство к NCO.

Типы данных: double

Размойте управление для NCO, заданного как true или false. Когда вы устанавливаете это свойство на true, объект использует количество битов dither, заданных в NumDitherBits свойство при применении dither к сигналу NCO. Когда этим свойством является false, NCO не применяет dither к сигналу. Для получения дополнительной информации смотрите dsp.NCO Системный объект.

Зависимости

Чтобы включить это свойство, установите Oscillator свойство к NCO.

Типы данных: логический

Количество NCO размывает биты, заданные как положительный целочисленный скаляр, меньший, чем количество двоичных разрядов аккумулятора, которые вы задаете в NumAccumulatorBits свойство. Для получения дополнительной информации смотрите dsp.NCO Системный объект.

Зависимости

Чтобы включить это свойство, установите Oscillator свойство к NCO и Dither свойство к true.

Типы данных: double

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

Тип данных при выходе первого (если это не было исключено), во-вторых, и фильтры третьего каскада, задал как Same as input или Custom. Объект бросает данные при выходе каждого этапа фильтра согласно значению, которое вы устанавливаете в этом свойстве. Для этапа CIC сделан кастинг после того, как сигнал масштабируется коэффициентом нормализации.

Тип данных с фиксированной точкой при выходе каждого этапа фильтра, заданного как масштабированный numerictype объект с Signedness набор свойств к Auto.

Зависимости

Чтобы включить это свойство, установите FiltersOutputDataType свойство к Custom.

Тип данных выхода, заданного как Same as input или Custom.

Тип данных с фиксированной точкой выхода, заданного как масштабированный numerictype возразите Signedness набор свойств к Auto.

Зависимости

Чтобы включить это свойство, установите OutputDataType свойство к Custom.

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

Синтаксис

Описание

пример

y = upConv(x)возвращает сверхдискретизированный, и частота-upconverted сигнализируют о y, для действительного или комплексного входного вектор-столбца x.

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

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

Входной сигнал, заданный как вектор-столбец действительных или комплексных чисел. Длина входа x должен быть кратным фактору децимации. Когда тип данных x double или single, тип данных y совпадает с тем из x. Когда тип данных x имеет фиксированную точку, тип данных y задан OutputDataType свойство.

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

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

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

Upconverted и сверхдискретизированный сигнал, возвращенный как вектор-столбец. Длина y равно длине x разделенный на InterpolationFactor. Когда тип данных x double или single, тип данных y совпадает с тем из x. Когда тип данных x имеет фиксированную точку, тип данных y задан OutputDataType свойство.

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

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

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

release(obj)

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

getInterpolationFactorsПолучите коэффициенты интерполяции каждого этапа фильтра цифрового повышающего преобразователя
getFilterOrdersПолучите порядки цифровых вниз конвертер или цифровой каскад фильтра конвертера
getFiltersПолучите указатели на цифровой вниз конвертер или цифровой каскадные объекты фильтра конвертера
fvtoolВизуализируйте частотную характеристику цифровых вниз конвертер или цифровой каскад фильтра конвертера
groupDelayГрупповая задержка цифровых вниз конвертер или цифровой каскад фильтра конвертера
visualizeFilterStagesОтобразите ответ цифровых вниз конвертер или цифровой каскад фильтра конвертера
generatehdlСгенерируйте HDL-код для квантованного фильтра DSP (требует Filter Design HDL Coder),
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

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

Создайте Систему DUC object™, который сверхдискретизировал синусоидальный сигнал на 1 кГц фактором 20 и upconverts она к 50 кГц.

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

Создайте генератор синусоиды, чтобы получить синусоидальный сигнал на 1 кГц с частотой дискретизации 6 кГц.

 Fs = 6e3; % Sample rate
 sine = dsp.SineWave('Frequency',1000,'SampleRate',Fs,'SamplesPerFrame',1024);
 x = sine(); % generate signal

Создайте Системный объект DUC. Используйте проекты фильтра минимального порядка и установите неравномерность в полосе пропускания на 0,2 дБ и затухание в полосе задерживания к 55 дБ. Установите двустороннюю пропускную способность сигнала на 2 кГц.

upConv = dsp.DigitalUpConverter(... 
     'InterpolationFactor',20,...
     'SampleRate',Fs,...
     'Bandwidth',2e3,...
     'StopbandAttenuation',55,...
     'PassbandRipple',0.2,...
     'CenterFrequency',50e3);

Создайте средство оценки спектра, чтобы визуализировать спектр сигнала до и после upconverting.

window = hamming(floor(length(x)/10));
figure; pwelch(x,window,[],[],Fs,'centered')
title('Spectrum of baseband signal x')

Upconvert сигнал и визуализируют спектр.

 xUp = upConv(x); 
 window = hamming(floor(length(xUp)/10));
 figure; pwelch(xUp,window,[],[],20*Fs,'centered')
 title('Spectrum of upconverted signal xUp')

Визуализируйте ответ фильтров интерполяции.

 visualizeFilterStages(upConv)

Алгоритмы

Объект производит входной сигнал с помощью каскада трех фильтров интерполяции. Эта объектная частота-upconverts сверхдискретизированный сигнал путем умножения его на комплексную экпоненту с центральной частотой равняется значению в CenterFrequency свойство. В этом случае каскад фильтра состоит из КИХ-этапа интерполяции, второго этапа для компенсации CIC и интерполятора CIC. Блок-схема показывает архитектуру цифрового конвертер.

Масштабирующийся раздел нормирует усиление CIC и степень генератора. Это может также содержать поправочный коэффициент, чтобы достигнуть желаемой спецификации пульсации. В зависимости от установки InterpolationFactor свойство, вы можете смочь обойти первый этап фильтра. Когда тип входных данных является плавающей точкой, объект реализует N - фильтр интерполяции раздела CIC как КИХ-фильтр с ответом, который соответствует каскаду фильтров серии длинных импульсов N. CIC-фильтр эмулирован с КИХ-фильтром так, чтобы можно было запустить симуляции с данными с плавающей точкой. Когда входные данные являются фиксированной точкой, объект реализует истинный CIC-фильтр с фактической расческой и разделами интегратора.

Схема представляет арифметику DUC с входными параметрами с плавающей точкой.

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

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

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