dsp. DigitalDownConverter

Переведите цифровой сигнал из полосы промежуточной частоты (IF) к основной полосе и десятикратно уменьшите его

Описание

Объект dsp.DigitalDownConverter переводит цифровой сигнал из полосы промежуточной частоты (IF) к основной полосе и десятикратно уменьшает его.

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

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

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

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

Создание

Синтаксис

dwnConv = dsp.DigitalDownConverter
dwnConv = dsp.DigitalDownConverter(Name,Value)

Описание

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

пример

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

Зависимости

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

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

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

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

Задайте источник частоты полосы задерживания как один из Auto | Property. Когда вы устанавливаете это свойство на Auto, объект помещает частоту среза каскадного ответа фильтра на уровне approximately Fc = SampleRate/M/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, объект выполняет частоту вниз преобразование с помощью комплексного сигнала, что вы устанавливаете как вход на метод шага. Когда вы устанавливаете это свойство на None, этап микшера в объекте не присутствует и объектные действия, когда три подготавливают расположенный каскадом decimator.

Центральная частота входного сигнала в Гц, заданном как положительная скалярная величина, которая меньше чем или равна половине значения свойства 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 с Со знаком из Auto.

Зависимости

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

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

Задайте выходную фиксированную точку как масштабированный объект numerictype с Со знаком из Auto.

Зависимости

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

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

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

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

Синтаксис

y = dwnConv(x)
y = dwnConv(x,z)

Описание

пример

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

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')

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

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')

Вниз преобразуйте сигнал и визуализируйте спектр

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

Визуализируйте ответ децимирующих фильтров

visualizeFilterStages(dwnConv)

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

Алгоритмы

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

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

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

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

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

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