dsp.DigitalUpConverter

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

Описание

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

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

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

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

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

Создание

Описание

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 Используя Системные объекты.

Установите это свойство на значение положительной скалярной величины. Значение этого свойства, умноженного на общий коэффициент интерполяции, должно быть больше или быть равно дважды значению 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 Объект (Fixed-Point Designer) с 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')

Figure contains an axes. The axes with title Spectrum of baseband signal x contains an object of type line.

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

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

Figure contains an axes. The axes with title Spectrum of upconverted signal xUp contains an object of type line.

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

 visualizeFilterStages(upConv)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 5 objects of type line. These objects represent Halfband interpolator, Interpolation factor = 2, CIC compensator, Interpolation factor = 2, CIC interpolator, Interpolation factor = 5, Cascade response.

Алгоритмы

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

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

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

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

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

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