Сгенерируйте действительный или объедините синусоидальные сигналы — оптимизированный для генерации HDL-кода
Система NCO HDL object™ генерирует действительный, или объедините синусоидальные сигналы при обеспечении благоприятных для оборудования управляющих сигналов. Объект использует то же накопление фазы и алгоритм интерполяционной таблицы, как реализовано в Системном объекте NCO. Объектное использование квантовало целочисленное накопление, чтобы создать сигнал синусоиды.
Системный объект NCO HDL обеспечивает эти функции.
Дополнительный основанный на системе координат выход.
Опция сжатия интерполяционной таблицы, чтобы уменьшать размер интерполяционной таблицы. Это сжатие приводит меньше чем к одной потере LSB в точности. Смотрите Сжатие Интерполяционной таблицы для получения дополнительной информации.
Дополнительный входной параметр для внешнего dither.
Дополнительный аргумент сброса, который сбрасывает аккумулятор фазы к его начальному значению.
Дополнительный выходной аргумент в пользу текущей фазы NCO.
Учитывая шаг расчета, T s, и желаемое выходное разрешение частоты, Δf, вычисляет необходимый размер аккумулятора .
Предположение, что ваша желаемая выходная частота F o намного ниже, чем частота Найквиста, можно использовать приближение для шума на бит в дБ, на основе свободного от паразитных составляющих динамического диапазона (SFDR), и определить, насколько можно квантовать выход аккумулятора. Квантованный размер слова, чтобы достигнуть заданного SFDR .
Для желаемой выходной частоты F o, вычислите использование phase increment , где Nacc является квантованным размером слова аккумулятора. Можно задать шаг фазы использование свойства или входного параметра.
Учитывая желаемое смещение фазы (в радианах), вычислите использование phase offset. Можно задать смещение фазы с помощью свойства или входного параметра.
Сгенерировать действительный или объединить синусоидальные сигналы:
Создайте dsp.HDLNCO
объект и набор его свойства.
Вызовите объект с аргументами, как будто это была функция.
Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты?.
создает Системный объект генератора с программным управлением (NCO), hdlnco
= dsp.HDLNCOhdlnco
, это генерирует действительное, или объедините синусоидальный сигнал. Амплитуда сгенерированного сигнала всегда равняется 1.
свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в одинарные кавычки. Например, hdlnco
= dsp.HDLNCO(Name,Value
)
hdlnco = dsp.HDLNCO('NumQuantizerAccumulatorBits',12, ... 'AccumulatorWL',16);
создает NCO с hdlnco
= dsp.HDLNCO(Inc
,'PhaseIncrementSource','Property')PhaseIncrement
набор свойств к Inc
, целочисленный скаляр. Чтобы использовать свойство PhaseIncrement, установите свойство PhaseIncrementSource на 'Property'
. Можно добавить другой Name,Value
пары прежде или после PhaseIncrementSource
.
Объект возвращает значение формы волны, Y
, как значение синуса, значение косинуса, значение комплексной экпоненты, или [Sine,Cosine
] пара значений, в зависимости от свойства Waveform.
[
возвращает форму волны, Y
,ValidOut
]
= hdlnco (ValidIn
)Y
, использование параметров формы волны из свойств, а не входных параметров.
Чтобы использовать этот синтаксис, установите PhaseIncrementSource, PhaseOffsetSource и свойства DitherSource к 'Property'
. Эти свойства независимы друг от друга. Например:
hdlnco = dsp.HDLNCO('PhaseIncrementSource','Property', ... 'PhaseIncrement',phIncr,... 'PhaseOffset',phOffset,... 'NumDitherBits',4)
[
возвращает форму волны, Y
,ValidOut
]
= hdlnco(Inc
,Offset
,Dither
,ValidIn
)Y
, с шагом фазы, Inc
, смещение фазы, Offset
, и dither, Dither
.
Этот синтаксис применяется, когда вы устанавливаете PhaseIncrementSource, PhaseOffsetSource и свойства DitherSource к 'Input port'
. Эти свойства независимы друг от друга. Вы можете смешивание и подгонка активация этих аргументов. PhaseIncrementSource
'Input port'
по умолчанию. Например:
hdlnco = dsp.HDLNCO('PhaseOffsetSource','Input port',... 'DitherSource','Input port') for k = 1:1/Ts y(k) = hdlnco(phIncr,phOffset,ditherBits,true); end
[___] = hdlnco(___,
сбрасывает значение аккумулятора, но не сбрасывает выходные выборки в конвейере. Если ResetAccum
,ValidIn
)ValidIn
true
, затем объект продолжает генерировать выходную форму волны, начинающую со значения аккумулятора сброса.
Чтобы использовать этот синтаксис, установите свойство ResetAction на 1
TRUE
). Этот синтаксис может включать любой из аргументов от других синтаксисов.
Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj
, используйте этот синтаксис:
release(obj)
[1] Cordesses, L., "Прямой цифровой синтез: Инструмент для Периодической Генерации Волны (Часть 1)". Журнал Обработки сигналов IEEE. Объем 21, Выпуск 4, июль 2004, стр 50–54.