dsp.DigitalDownConverter

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

Описание

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

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

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

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

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

Создание

Описание

dwnConv = dsp.DigitalDownConverter возвращает цифровой преобразователь DDC System object™, 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/ <reservedrangesplaceholder0>/2 Гц, где M - общий коэффициент десятикратного уменьшения, который вы задаете в DecimationFactor свойство. Объект вычисляет частоту диапазона остановок следующим 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 | 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, ряд dither бит заданных в NumDitherBits свойство будет использоваться, чтобы применить dither к сигналу NCO.

Зависимости

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

Задайте это свойство как целочисленный скаляр, меньше количества двоичных разрядов аккумулятора, которое вы задаете в NumAccumulatorBits свойство.

Зависимости

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

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

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

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

Задайте входной тип данных с фиксированной точкой на входе фильтров как масштабированный numerictype (Fixed-Point Designer) объект со Сигнальностью Auto.

Зависимости

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

Задайте тип выходных данных следующим Same as input | Custom.

Задайте тип данных с фиксированной точкой на выходе как масштабированный numerictype (Fixed-Point Designer) объект со Сигнальностью 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
Поддержка комплексного числа: Да

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

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

release(obj)

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

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

Примеры

свернуть все

Создайте объект цифрового преобразователя частоты для увеличения выборок синусоидального сигнала 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 function, получите коэффициенты десятикратного уменьшения каждого каскада объекта.

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

The 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 компенсатора и третьего КИХ десятикратного уменьшения каскада. Следующий блок показывает архитектуру цифрового преобразователя частоты.

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

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

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

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

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