NCO

Сгенерируйте действительный или объедините синусоидальные сигналы

  • Библиотека:
  • DSP System Toolbox / Операции Сигнала

    DSP System Toolbox / Источники

  • NCO blockNCO block

Описание

Блок NCO генерирует многоканальное действительное, или объедините синусоидальный сигнал с независимой частотой и фазой в каждом выходном канале. Амплитудой созданного сигнала всегда является 1. Блок NCO поддерживает действительные входные параметры только. Все выходные параметры действительны за исключением выходного сигнала в Complex exponential режим. Для получения дополнительной информации о том, как блок вычисляет выход, см. Алгоритмы.

Чтобы произвести многоканальный выход, задайте векторное количество для параметров Phase offset и Phase increment. Оба параметра должны иметь ту же длину, которая задает количество выходных каналов. Каждый элемент каждого вектора применяется к различному выходному каналу.

Порты

Входной параметр

развернуть все

Сигнал шага фазы в виде скаляра с действительным знаком или вектора. Вход должен иметь целочисленный тип данных или тип данных с фиксированной точкой с нулевой дробной длиной. Размерности сигнала шага фазы зависят от того, как вы принимаете решение задать параметр Phase offset:

  • Когда вы задаете Phase offset на диалоговом окне блока, Phase increment должен быть скаляром или вектором с той же длиной как значение Phase offset. Блок применяет каждый элемент вектора к различному каналу, и поэтому длина вектора задает количество выходных каналов.

  • Когда вы задаете Phase offset через входной порт, порт offset обрабатывает каждый столбец входа как независимый канал. Длина Phase increment должна равняться количеству столбцов во входе к порту offset.

Зависимости

Чтобы включить этот порт, установите Phase increment source на Input port.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Смещение фазы сигнализирует в виде скаляра с действительным знаком, вектора или полной матрицы. Вход должен иметь целочисленный тип данных или тип данных с фиксированной точкой с нулевой дробной длиной. Блок обрабатывает каждый столбец входа к порту смещения как независимый канал. Количество каналов в смещении фазы должно совпадать с количеством каналов во вводе данных. Для каждой системы координат входа блок может применить различные смещения фазы к каждой выборке и каналу.

Зависимости

Чтобы включить этот порт, установите Phase offset source на Input port.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Вывод

развернуть все

Синусоидальный выходной сигнал, заданный как скаляр, вектор или матрица. Можно задать тип данных сигнала с помощью параметра типа данных Output.

Зависимости

Чтобы включить этот порт, установите Output signal на Sine или Sine and cosine.

Типы данных: single | double | fixed point

Косинусоидальный выходной сигнал, заданный как скаляр, вектор или матрица. Можно задать тип данных сигнала с помощью параметра Output Data Type.

Зависимости

Чтобы включить этот порт, установите Output signal на Cosine или Sine and cosine.

Типы данных: single | double | fixed point

Комплексная экпонента выход в виде скаляра, вектора или матрицы. Можно задать тип данных сигнала с помощью параметра Output Data Type.

Зависимости

Чтобы включить этот порт, установите Output signal на Complex exponential.

Типы данных: single | double | fixed point
Поддержка комплексного числа: Да

Ошибка квантования фазы, заданная как скаляр, вектор или матрица.

Зависимости

Чтобы включить этот порт, установите флажок Show phase quantization error port.

Типы данных: int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | fixed point

Параметры

развернуть все

Основной

Параметры сумматора фазы

Выберите, как вы задаете шаг фазы. Шаг фазы может прибыть из входного порта или из параметра диалогового окна.

  • Если вы выбираете Input port, входной порт inc появляется на значке блока.

  • Если вы выбираете Specify via dialog, параметр Phase increment появляется.

Зависимости

Когда блок прибывает из библиотеки Signal Operations, значением по умолчанию параметра Phase increment Source является Input port.

Когда блок прибывает из библиотеки Sources, значением по умолчанию параметра Phase increment Source является Specify via dialog.

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

  • Когда вы задаете смещение фазы на диалоговом окне блока, шаг фазы должен быть скаляром или вектором с той же длиной как смещение фазы. Блок применяет каждый элемент вектора к различному каналу, и поэтому длина вектора задает количество выходных каналов.

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

Зависимости

Чтобы включить этот параметр, установите Phase increment source на Specify via dialog.

Выберите, как вы задаете смещение фазы. Смещение фазы может прибыть из входного порта или из диалогового окна.

  • Если вы выбираете Input port, порт offset появляется на значке блока.

  • Если вы выбираете Specify via dialog, параметр Phase offset появляется.

Задайте смещение фазы как скаляр с целочисленным знаком или вектор. Только целочисленные типы данных, включая типы данных с фиксированной точкой с нулевой дробной длиной, позволены. Когда вы задаете смещение фазы с помощью этого параметра диалогового окна, это должен быть скаляр или вектор с той же длиной как шаг фазы. Скаляры расширены до вектора с той же длиной как шаг фазы. Каждый элемент вектора смещения фазы применяется к различному каналу входа, и поэтому длина вектора задает количество выходных каналов.

Зависимости

Чтобы включить этот параметр, установите Phase offset source на Specify via dialog.

Выберите, чтобы добавить внутреннее размывание в алгоритм NCO. Размывание добавляется с помощью PN Sequence Generator (Communications Toolbox) от продукта Communications Toolbox™.

Задайте количество битов dither как положительное целое число.

Зависимости

Чтобы включить этот порт, установите флажок Add internal dither.

Чтобы включить квантование накопленной фазы, установите этот флажок.

Задайте количество квантованных двоичных разрядов аккумулятора как скалярное целое число, больше, чем одно и меньше, чем размер слова аккумулятора. Это значение определяет количество записей в интерполяционной таблице.

Зависимости

Чтобы включить этот порт, установите флажок Quantize phase.

Выберите, чтобы вывести ошибку квантования фазы. Когда вы устанавливаете этот флажок, порт Qerr появляется на значке блока.

Зависимости

Чтобы включить этот параметр, установите флажок Quantize phase.

Выходные параметры

Выберите, выводит ли блок Sine, CosineКомплексный экспоненциал, или оба Sine and cosine сигналы. Если вы выбираете Sine and cosine, два сигнала выводятся на различных портах.

Когда блок будет действовать как источник, задайте шаг расчета в секундах как положительная скалярная величина.

Зависимости

Чтобы включить этот параметр, и Phase increment source и Phase offset source должны быть установлены в Specify via dialog. Когда или шаг фазы или смещение фазы, прибывшее на пути входной порт блока, шаг расчета наследован, и этот параметр не отображается.

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

То, когда фаза возместила входной порт, существует, это имеет то же состояние системы координат как любой существующий выходной порт. Когда входной порт шага фазы существует, он не делает опорных рам.

Зависимости

Включить этому набору параметров Phase increment source и/или Phase offset source к Specify via dialog.

Типы данных

Это свойство доступно только для чтения.

Когда вход является фиксированной точкой, блок NCO всегда использует округляющийся режим Floor.

Это свойство доступно только для чтения.

Когда вход является фиксированной точкой, блок NCO всегда использует режим переполнения Wrap.

Задайте Word length для Accumulator как положительное целое число от 2 до 128. Data Type всегда является Binary point scaling, и Fraction length всегда является 0.

Задайте Data Type для блока Output.

  • Выберите double или single для реализации с плавающей точкой.

  • Когда вы выбираете Binary point scaling, можно ввести размер слова и дробная продолжительность выхода в битах.

Примечание

Интерполяционная таблица для этого блока создается из значений с плавающей точкой с двойной точностью. Таким образом максимальная сумма точности, которой можно достигнуть в выходе, составляет 53 бита. Установка размера слова типа данных Output к значениям, больше, чем 53 бита, не улучшает точность вашего выхода.

Задайте Word length для блока Output как положительное целое число от 2 до 128.

Зависимости

Чтобы включить этот параметр, установите Data Type для Output к Binary point scaling.

Задайте Fraction length для блока Output как скалярное целое число.

Зависимости

Чтобы включить этот параметр, установите Data Type для Output к Binary point scaling.

Характеристика NCO

Панель NCO Characterization предоставляет вам детали только для чтения о сигнале NCO, в настоящее время реализовываемом блоком:

Интерполяционная таблица реализована как таблица синуса волны четвертью. Количество точек данных интерполяционной таблицы задано

2количество  квантованных  двоичных разрядов аккумулятора2+1

Пример: 1025

Размер интерполяционной таблицы синуса волны четверти задан

(number of data points for lookup table)(output word length)8 байты

Пример: 2 050 байтов

Свободный от паразитных составляющих динамический диапазон (SFDR) вычисляется можно следующим образом для интерполяционной таблицы с 2P записи:

SFDR=(6P) дБ           без ditherSFDR=(6P+12) дБ    с dither

Пример: 84 дБн

Разрешение частоты является самым маленьким инкрементным изменением в частоте и задано:

Δf=1Ts2NГц

Пример: 15.2588 uHz

Зависимости

Разрешение частоты только появляется, когда вы устанавливаете Phase increment source и Phase offset source к Specify via dialog.

Характеристики блока

Типы данных

fixed point | integer

Прямое сквозное соединение

no

Многомерные сигналы

no

Сигналы переменного размера

no

Обнаружение пересечения нулем

no

Алгоритмы

Блок реализует алгоритм как показано в следующей схеме:

Реализация генератора с программным управлением (NCO) имеет две отличных части. Во-первых, аккумулятор фазы накапливает шаг фазы и добавляет в смещении фазы. На этом этапе может также быть добавлен дополнительный внутренний сигнал dither. NCO выход затем вычисляется путем квантования результатов раздела аккумулятора фазы и использования их, чтобы выбрать значения из интерполяционной таблицы. Поскольку интерполяционная таблица содержит конечное множество записей в его режиме normal mode операции, блок NCO позволяет числовым значениям сумматора переполняться и повторяться. Инфраструктура Фиксированной точки затем вызывает предупреждения переполнения появиться на командной строке. Это переполнение не имеет никакого значения.

Учитывая желаемую выходную частоту F 0, вычислите значение параметров блоков Phase increment с

phase increment=(F02NFs)

где N является размером слова аккумулятора и

Fs=1Ts=1sample time

Разрешение частоты NCO задано

Δf=1Ts2NГц

Учитывая желаемое смещение фазы (в радианах), вычислите параметры блоков Phase offset с

phase offset=2Ndesired phase offset2π

Свободный от паразитных составляющих динамический диапазон (SFDR) оценивается можно следующим образом для интерполяционной таблицы с 2P записи, где P является количеством квантованных двоичных разрядов аккумулятора:

SFDR=(6P) дБ           без ditherSFDR=(6P+12) дБ    с dither

Блок NCO использует метод интерполяционной таблицы волны четвертью, который хранит табличные значения от 0 до π/2. Блок вычисляет другие значения по требованию с помощью типа данных аккумулятора, затем бросает их в тип выходных данных. Это может привести к эффектам квантования в пределах области значений типа определенных данных. Например, рассмотрите случай, где вы ожидали бы, что значение синусоиды будет –1 в π. Поскольку значение интерполяционной таблицы в той точке должно быть вычислено, блок не может уступить точно –1, в зависимости от точности типов выходных данных и аккумулятора.

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

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

Блоки

Объекты

Представлено до R2006a