Вычислите шаг фазы с плавающей точкой для оптимизированного HDL NCO

В этом примере показано, как использовать блок NCO HDL Optimized с входом с плавающей точкой. Генератор с программным управлением (NCO) спроектирован, чтобы работать над квантованными типами данных. Чтобы считать из-за отсутствия квантования фазы при использовании входных параметров с плавающей точкой, необходимо настроить шаг фазы с плавающей точкой.

Когда вы используете NCO с квантованными типами данных, значение шага фазы зависит от размера аккумулятора. Для фиксированной точки, N- битный аккумулятор, чтобы сгенерировать выходные выборки с желаемой выходной частотой F0 и демонстрационная частота Fs, шаг фазы должен быть:

Phase_increment = (F0*2^N)/Fs

Если вы используете смещение фазы, оно также должно быть квантовано размером аккумулятора. Например, для смещения пи/2:

Phase_offset = (pi/2)*2^N/(2*pi)

Когда вход с блоком является плавающей точкой, блок игнорирует параметры, связанные с настройками фиксированной точки: Количество битов dither, фазы Quantize, Количества двоичных разрядов аккумулятора квантизатора, Включает, ищут табличный метод сжатия и вкладку Data Types.

Когда вы используете инкрементный фазой вход с плавающей точкой, необходимо настроить значение шага, чтобы считать из-за отсутствия квантования фазы. Для аккумулятора с плавающей точкой, чтобы сгенерировать выходные выборки с желаемой выходной частотой F0 и демонстрационная частота Fs, шаг фазы должен быть:

Phase_increment = 2*pi*F0/Fs

Смещение фазы для NCO с плавающей точкой является прямым. Например, для смещения пи/2:

Phase_offset = pi/2

Модель в качестве примера показывает две версии блока NCO HDL Optimized. NCO Фиксированной точки использует квантованные типы данных во входном шаге фазы и возмещенной фазе. Шаг и значения смещения вычисляются для 22-битного аккумулятора. Выходной тип установлен в double, даже при том, что блок внутренне работает с типами данных с фиксированной точкой.

NCO С плавающей точкой использует double тип данных для входного шага фазы и фазы возмещен. double входные сигналы обеспечивают блок, чтобы использовать внутренние вычисления с плавающей точкой. Шаг и значения смещения вычисляются, чтобы работать с double аккумулятор типа данных.

После симуляции осциллограф показывает, что сгенерированные формы волны от блока фиксированной точки и блока с плавающей точкой и достигают целевой выходной частоты и смещения фазы.

modelname = 'HDLNCO_FloatingPointPhaseIncr';
open_system(modelname)
sim(modelname)

Тот же входной шаг фазы и вычисления смещения фазы применяются при использовании dsp.HDLNCO Система object™.

Смотрите также

Блоки

Системные объекты