Интерполируйте цифровой сигнал и переведите его от основной полосы до полосы Intermediate Frequency (IF)
Объект dsp.DigitalUpConverter
интерполирует цифровой сигнал и переводит его от основной полосы до полосы Intermediate Frequency (IF).
К в цифровой форме преобразовывают входной сигнал:
Создайте объект dsp.DigitalUpConverter
и установите его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.
upConv = dsp.DigitalUpConverter
upConv = dsp.DigitalUpConverter(Name,Value)
возвращает Систему цифрового повышающего преобразователя (DUC) object™, upConv
= dsp.DigitalUpConverterupConv
.
возвращает объект DUC, upConv
= dsp.DigitalUpConverter(Name,Value
)upConv
, с заданным набором свойства Name
к заданному значению Value
. Можно задать дополнительные аргументы пары "имя-значение" в любом порядке как (Name1
, Value1
..., NameN
, ValueN
).
Для версий ранее, чем R2016b, используйте функцию step
, чтобы запустить алгоритм Системного объекта. Аргументы к step
являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.
Например, y = step(obj,x)
и y = obj(x)
выполняют эквивалентные операции.
y = upConv(x)
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
Создайте цифровое объект конвертера, который сверхдискретизировал синусоидальный сигнал на 1 кГц фактором 20, и преобразовывает его в 50 кГц.
Примечание: Этот пример запускается только в R2016b или позже. Если вы используете более ранний релиз, заменяете каждый вызов функции с эквивалентным синтаксисом step
. Например, myObject (x) становится шагом (myObject, x).
Инициализация
Создайте генератор синусоиды, чтобы получить синусоидальный сигнал на 1 кГц с частотой дискретизации 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')
Upconvert сигнал и визуализируют спектр
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')
Визуализируйте ответ фильтров интерполяции
visualizeFilterStages(upConv)
Объект выбирает входной сигнал с помощью каскада трех фильтров интерполяции. Эта объектная частота-upconverts сверхдискретизированный сигнал путем умножения его с комплексным экспоненциалом с центральной частотой равняется значению в свойстве CenterFrequency
. В этом случае каскад фильтра состоит из первого КИХ-этапа интерполяции, второго этапа для компенсации CIC и интерполятора CIC. Блок-схема показывает архитектуру цифрового конвертер.
Масштабирующийся раздел нормирует усиление CIC и степень осциллятора. Это может также содержать поправочный коэффициент, чтобы достигнуть желаемой спецификации пульсации. В зависимости от установки свойства InterpolationFactor
можно смочь обойти первый этап фильтра. Когда тип входных данных с плавающей точкой, объект реализует N - фильтр интерполяции раздела CIC как КИХ-фильтр с ответом, который соответствует каскаду фильтров серии длинных импульсов N. CIC-фильтр эмулирован с КИХ-фильтром так, чтобы можно было запустить симуляции с данными с плавающей точкой. Когда входные данные являются фиксированной точкой, объект реализует истинный CIC-фильтр с фактической расческой и разделами интегратора.
Следующая схема представляет арифметику DUC с одними или входными параметрами с плавающей точкой, с двойной точностью.
Для получения дополнительной информации операции фиксированной точки, смотрите Фиксированную точку.
fvtool
| generatehdl
| getDecimationFactors
| getFilterOrders
| getFilters
| groupDelay
| visualizeFilterStages