dsp.DigitalUpConverter

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

Описание

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

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

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

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

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

Создание

Описание

upConv = dsp.DigitalUpConverter возвращает цифровой преобразователь частоты (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объект помещает частоту среза отклика каскадного фильтра примерно на F c = SampleRate/ 2 Гц и вычисляет частоту диапазона остановок как F stop = F c + TW/2. TW - ширина полосы пропускания каскадного отклика, вычисленная как 2 × (F c- F p). F p - частота полосы пропускания, вычисленная 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

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

Зависимости

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

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

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

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

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

release(obj)

расширить все

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

Примеры

свернуть все

Создайте object™ системы DUC, которая увеличивает 1-kHz синусоидальный сигнал в 20 раз и преобразует его вверх до 50 кГц.

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

Создайте генератор синусоиды, чтобы получить 1-kHz синусоидальный сигнал со скоростью дискретизации 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')

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 и интерполятора CIC. На блок схеме показана архитектура цифрового преобразователя частоты.

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

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

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

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

.
Введенный в R2012a