dsp. DigitalUpConverter

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

Описание

Объект dsp.DigitalUpConverter интерполирует цифровой сигнал и переводит его от основной полосы до полосы Intermediate Frequency (IF).

К в цифровой форме преобразовывают входной сигнал:

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

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

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

Создание

Синтаксис

upConv = dsp.DigitalUpConverter
upConv = dsp.DigitalUpConverter(Name,Value)

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

Когда вы устанавливаете это свойство на true, объектные фильтры проектов с минимальным заказом, который соответствует пульсации полосы пропускания, затуханию полосы задерживания, частоте полосы пропускания и спецификациям частоты полосы задерживания, что вы устанавливаете использование PassbandRipple, StopbandAttenuation, Bandwidth, 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, объект помещает частоту среза каскадного ответа фильтра приблизительно на уровне Гц Fc = SampleRate/2 и вычисляет частоту полосы задерживания как Fstop = Fc + TW/2. TW является пропускной способностью перехода каскадного ответа, вычисленного как 2×(Fc–Fp), и частота полосы пропускания, Fp, равняется Bandwidth/2.

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

Зависимости

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

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство MinimumOrderDesign на true.

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство MinimumOrderDesign на true.

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

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

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

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

Свойства NCO

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство Oscillator на NCO.

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство Oscillator на NCO.

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство Oscillator на NCO.

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете свойство Oscillator на NCO и свойство Dither к true.

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Синтаксис

y = upConv(x)

Описание

пример

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

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

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

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

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

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

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

Преобразованный и выбранный сигнал, возвращенный как вектор-столбец. Длина 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Сбросьте внутренние состояния Системного объекта

Примеры

Upconvert синусоидальный сигнал

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

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

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

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

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

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

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

 visualizeFilterStages(upConv)

Алгоритмы

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

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

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

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

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

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