В этом примере показано, как использовать блок 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™.