exponenta event banner

dsp. DigitalUpConverter

Интерполяция цифрового сигнала и его преобразование из полосы частот модулирующих сигналов в полосу IF

Описание

dsp.DigitalUpConverter Система object™ интерполирует цифровой сигнал и преобразует его из полосы модулирующих частот в полосу промежуточной частоты (ПЧ).

Для цифрового преобразования входного сигнала:

  1. Создать dsp.DigitalUpConverter и задайте его свойства.

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

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

upConv = dsp.DigitalUpConverter возвращает системный объект digital up-converter (DUC), upConv.

пример

upConv = dsp.DigitalUpConverter(Name,Value) возвращает объект DUC System с указанным свойством 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-й элемент вектора задает коэффициент интерполяции для i-го этапа фильтрации. Второй и третий элементы этого InterpolationFactor вектор должен быть больше 1, а первый элемент должен быть равен 1 или 2.

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

Конструкция фильтра минимального порядка, указанная как true или false.

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

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

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

Порядок этапа фильтра компенсации 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, указанное как целое число в диапазоне [1, 128]. Значение, указанное для этого свойства, должно быть меньше значения, указанного в NumAccumulatorBits собственность. Дополнительные сведения см. в разделе dsp.NCO Системный объект.

Зависимости

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

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

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

Зависимости

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

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

Число разрядов сглаживания 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)возвращает сигнал с повышенной дискретизацией и с повышением частоты y, для вектора вещественного или комплексного входного столбца x.

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

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

Входной сигнал, определяемый как вектор столбца вещественных или комплексных значений. Длина входа 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
Поддержка комплексного номера: Да

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте Систему 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 System. Используйте конструкции фильтров минимального порядка и установите пульсацию полосы пропускания 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')

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

Преобразование сигнала с повышением частоты и визуализация спектра.

 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.

Алгоритмы

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

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

Диаграмма представляет арифметику DUC со входами с плавающей запятой.

Дополнительные сведения об операции с фиксированной точкой см. в разделе Фиксированная точка.

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

.
Представлен в R2012a