dsp.DigitalDownConverter

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

Описание

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

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

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

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

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

Создание

Описание

dwnConv = dsp.DigitalDownConverter возвращает цифровой понижающий преобразователь (DDC) Система 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 th элемент вектора задает фактор децимации для i th фильтрующий этап. Первые и вторые элементы DecimationFactor вектор должен быть больше один, и третий элемент должен быть 1 или 2.

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

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

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

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

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

Зависимости

Это свойство применяется, когда вы устанавливаете 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, объект выполняет преобразование частоты вниз с помощью комплексного сигнала генератора, 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единственный, целое число со знаком или подписанная фиксированная точка (fi объекты.

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

Сигнал генератора, используемый к частоте вниз, преобразует входной сигнал в виде вектор-столбца или матрицы. Этот вход должен быть комплексным. Длина z должно быть равно длине xZ может быть doubleединственный, целое число со знаком или подписанная фиксированная точка (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 object. The axes object 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 object. The axes object 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 object. The axes object 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 object and other objects of type uitoolbar, uimenu. The axes object 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.

Алгоритмы

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

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

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

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

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

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