exponenta event banner

dsp. DigitalDownConverter

Преобразование цифрового сигнала из полосы промежуточной частоты (IF) в полосу модулирующих сигналов и его прореживание

Описание

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

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

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

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

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

Создание

Описание

dwnConv = dsp.DigitalDownConverter возвращает системный object™ цифрового понижающего преобразователя (DDC), dwnConv.

пример

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

Свойства

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

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

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

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

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

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

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

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

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

При установке для этого свойства вектора 1 на 3 i-й элемент вектора задает коэффициент прореживания для i-ой ступени фильтрации. Первый и второй элементы DecimationFactor вектор должен быть больше единицы, а третий элемент должен быть 1 или 2.

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

Порядок третьей ступени фильтра, определяемый как четный целочисленный скаляр. При установке DecimationFactor для вектора 1 на 2, объект игнорирует ThirdFilterOrder свойство, поскольку третий этап фильтра обходится.

Зависимости

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

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

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

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

Укажите источник частоты полосы останова как один из Auto | Property. При установке для этого свойства значения Auto, объект размещает частоту отсечки отклика каскадного фильтра приблизительно на Fc = SampleRate/M/2 Гц, где M - общий коэффициент прореживания, указанный в DecimationFactor собственность. Объект вычисляет частоту полосы останова как Fstop = Fc + TW/2. TW - полоса пропускания перехода каскадного ответа, вычисленная как 2×(FcFp)и частота полосы пропускания, Fp, равна Bandwidth/2.

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

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

Укажите генератор как один из Sine wave | NCO | Input port | None. При установке для этого свойства значения Sine wave, частота объекта с понижением частоты преобразует входной сигнал с использованием комплексной экспоненты, полученной из выборок синусоидальной тригонометрической функции. При установке для этого свойства значения NCO, объект выполняет преобразование с понижением частоты с комплексным экспоненциальным значением, полученным с использованием генератора с числовым управлением (NCO). При установке для этого свойства значения Input port, объект выполняет преобразование с понижением частоты с использованием сигнала комплексного генератора, z, который вы передаете в качестве ввода в объект. При установке для этого свойства значения Noneстадия смесителя в объекте отсутствует, и объект действует как трехступенчатый каскадный прореживатель.

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

Зависимости

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

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

Количество битов-накопителей NCO, указанное как положительное целое число в диапазоне [1 128].

Зависимости

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

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

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

Зависимости

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

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

При установке для этого свойства значения true, число битов сглаживания, указанное в NumDitherBits используется для применения сглаживания к сигналу NCO.

Зависимости

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

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

Зависимости

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

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

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

Укажите тип данных на входе первой, второй и третьей (если они не были пропущены) ступеней фильтра в качестве одного из Same as input | Custom. Объект выдает данные на вход каждой ступени фильтра в соответствии со значением, заданным в этом свойстве.

Укажите тип входных фильтров с фиксированной точкой как масштабированный numerictype (Конструктор фиксированных точек) объект с подписью Auto.

Зависимости

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

Укажите тип данных вывода как Same as input | Custom.

Укажите тип выходной фиксированной точки как масштабированный numerictype (Конструктор фиксированных точек) объект с подписью Auto.

Зависимости

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

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

Синтаксис

Описание

пример

y = dwnConv(x) принимает входные данные x и выдает сигнал, y это частота, преобразованная с понижением частоты и дискретизированная с понижением частоты.

y = dwnConv(x,z) использует комплексный ввод, z, в качестве сигнала генератора, используемого для преобразования частоты с понижением частоты на вход x при установке Oscillator свойство для Input port.

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

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

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

Вход может иметь несколько каналов, только если его тип данных double или single. Входные данные могут иметь тип данных double, single, целое число со знаком или фиксированная точка со знаком (fi объекты).

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

Сигнал генератора, используемый для преобразования с понижением частоты входного сигнала, заданного как вектор столбца или матрица. Эти входные данные должны быть сложными. Длина z должно быть равно длине x. z может быть double, single, целое число со знаком или фиксированная точка со знаком (fi объекты).

Зависимости

Этот ввод применяется при установке Oscillator свойство для Input port.

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

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

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

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

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

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

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

release(obj)

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

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

Примеры

свернуть все

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

Примечание.При использовании R2016a или более ранней версии замените каждый вызов объекта синтаксисом эквивалентного шага. Например, obj(x) становится step(obj,x).

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

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

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

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

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

dwnConv = dsp.DigitalDownConverter(...
  'DecimationFactor',20,...
  'SampleRate', Fs*20,...
  'Bandwidth', 3e3,...
  '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); % up convert
window = hamming(floor(length(xUp)/10));
figure; pwelch(xUp,window,[],[],20*Fs,'centered');
title('Spectrum of up converted signal xUp')

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

Преобразование сигнала вниз и визуализация спектра

xDown = dwnConv(xUp); % down convert
window = hamming(floor(length(xDown)/10));
figure; pwelch(xDown,window,[],[],Fs,'centered')
title('Spectrum of down converted signal xDown')

Figure contains an axes. The axes with title Spectrum of down converted signal xDown contains an object of type line.

Визуализация отклика прореживающих фильтров

visualizeFilterStages(dwnConv)

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 CIC decimator, Decimation factor = 5, CIC compensator, Decimation factor = 2, Halfband decimator, Decimation factor = 2, Cascade response.

Получить коэффициенты прореживания каждой ступени фильтра dsp.DigitalDownConverter object™ системы.

Создать dsp.DigitalDownConverter Системный объект с настройками по умолчанию. Использование getDecimationFactors получить коэффициенты прореживания каждого этапа объекта.

dwnConv = dsp.DigitalDownConverter
dwnConv = 
  dsp.DigitalDownConverter with properties:

           DecimationFactor: 100
         MinimumOrderDesign: true
                  Bandwidth: 200000
    StopbandFrequencySource: 'Auto'
             PassbandRipple: 0.1000
        StopbandAttenuation: 60
                 Oscillator: 'Sine wave'
            CenterFrequency: 14000000
                 SampleRate: 30000000

  Show all properties

M = getDecimationFactors(dwnConv) %#ok
M = 1×3

    25     2     2

DecimationFactor свойство объекта имеет значение 100. Продукция M по умолчанию является вектором 1 на 3, где каждый элемент в векторе является коэффициентом общего коэффициента прореживания.

При установке DecimationFactor для вектора 1 на 2 объект обходит третью ступень фильтра и устанавливает коэффициент прореживания первой и второй ступеней фильтрации на значения в первом и втором векторных элементах соответственно.

dwnConv.DecimationFactor = [10 10]
dwnConv = 
  dsp.DigitalDownConverter with properties:

           DecimationFactor: [10 10]
         MinimumOrderDesign: true
                  Bandwidth: 200000
    StopbandFrequencySource: 'Auto'
             PassbandRipple: 0.1000
        StopbandAttenuation: 60
                 Oscillator: 'Sine wave'
            CenterFrequency: 14000000
                 SampleRate: 30000000

  Show all properties

M = getDecimationFactors(dwnConv)
M = 1×2

    10    10

Выходные данные getDecimationFactors теперь функция является вектором 1 на 2.

Алгоритмы

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

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

Следующая блок-схема представляет арифметику DDC со входами с одинарной или двойной точностью с плавающей запятой.

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

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

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