Числовой задающий генератор (NCO)
Генерирует вещественные или комплексные синусоидальные сигналы.
Тип: NCO
Путь в библиотеке:
|
Описание
Блок Числовой задающий генератор (NCO) генерирует многоканальный вещественный или комплексный синусоидальный сигнал с независимой частотой и фазой в каждом выходном канале. Амплитуда созданного сигнала всегда равна 1
. Все выходы являются вещественными, за исключением exp – выходного сигнала формируемого в режиме Комплексная экспонента
, который включается путем выбора соответствующего пункта в выпадающем списке Выходной сигнал. Более подробную информацию о том, как блок вычисляет выходной сигнал, см. в Алгоритмы.
Чтобы получить многоканальный выход, задайте параметры Приращение фазы и Смещение фазы в виде векторов. Оба параметра должны иметь одинаковую размерность, которая определяет количество выходных каналов. Каждый элемент каждого вектора применяется к отдельному выходному каналу.
Порты
Выход
#
sin
—
синусоидальный выход
скаляр
| вектор
| матрица
Details
Синусоидальный выходной сигнал, заданный в виде скаляра, вектора или матрицы. Можно указать тип данных сигнала с помощью параметра Тип данных.
Зависимости
Чтобы использовать этот порт, установите для параметра Выходной сигнал значение Синус
или Синус и косинус
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
Qerr
—
ошибка квантования фазы
скаляр
| вектор
| матрица
Details
Ошибка квантования фазы, заданная в виде скаляра, вектора или матрицы.
Зависимости
Чтобы использовать этот порт, установите флажок Показывать порт ошибки квантования фазы.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
cos
—
косинусоидальный выход
скаляр
| вектор
| матрица
Details
Косинусоидальный выходной сигнал, заданный в виде скаляра, вектора или матрицы. Можно указать тип данных сигнала с помощью параметра Тип данных.
Зависимости
Чтобы использовать этот порт, установите для параметра Выходной сигнал значение Косинус
или Синус и косинус
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
exp
—
комплексный экспоненциальный выход
скаляр
| вектор
| матрица
Details
Комплексный экспоненциальный выход, заданный в виде скаляра, вектора или матрицы. Можно указать тип данных сигнала с помощью параметра Тип данных.
Зависимости
Чтобы использовать этот порт, установите Выходной сигнал в значение Комплексная экспонента
.
Типы данных |
|
Поддержка комплексных чисел |
Да |
Вход
#
offset
—
сдвиг фазы
скаляр
| вектор
| матрица
Details
Сигнал сдвига фазы, заданный в виде вещественного скаляра, вектора или полной матрицы. Входные данные должны иметь целочисленный тип или тип данных с фиксированной точкой с нулевой длиной дроби. Блок рассматривает каждый столбец входных данных порта смещения как независимый канал. Количество каналов в сигнале сдвига фазы должно соответствовать количеству каналов во входных данных. Для каждого кадра входных данных блок может применять различные фазовые смещения к каждому образцу и каналу.
Зависимости
Чтобы использовать этот порт, установите для параметра Источник смещения фазы значение Входной порт
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
#
inc
—
приращение фазы
скаляр
| вектор
Details
Сигнал приращения фазы, заданный в виде скаляра или вектора с вещественным значением. Вход должен иметь целочисленный тип данных или тип данных с фиксированной точкой с нулевой длиной дроби. Размеры сигнала приращения фазы зависят от того, как вы решили указать параметр Смещение фазы:
-
Когда вы указываете Смещение фазы в диалоговом окне блока, параметр Приращение фазы должен быть скаляром или вектором с той же длиной, что и значение Смещение фазы. Блок применяет каждый элемент вектора к отдельному каналу, поэтому длина вектора определяет количество выходных каналов.
-
Когда вы указываете Смещение фазы через входной порт, порт offset рассматривает каждый столбец входа как независимый канал. Длина Приращение фазы должна быть равна количеству столбцов на входе в порт offset.
Зависимости
Чтобы использовать этот порт, установите для параметра Источник приращения фазы значение Входной порт
.
Типы данных |
|
Поддержка комплексных чисел |
Нет |
Параметры
Параметры фазового сумматора
#
Источник приращения фазы —
способ задания приращения фазы
Из поля для ввода
| Входной порт
Details
Выберите способ задания приращения фазы:
-
Входной порт
— значение приращения фазы будет поступать на входной порт inc; -
Из поля для ввода
— значение приращения фазы можно задать в параметре Приращение фазы.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
# Приращение фазы — значение приращения фазы
Details
Укажите приращение фазы в виде скаляра или вектора с целочисленным значением. Допускаются только целочисленные типы данных, включая типы данных с фиксированной точкой и нулевой длиной дроби. Размерность приращения фазы зависит от размерности сдвига фазы:
-
Когда вы указываете сдвиг фазы в параметре блока Смещение фазы, приращение фазы должно быть скаляром или вектором с той же размерностью, что и сдвиг фазы. Блок применяет каждый элемент вектора к отдельному каналу, поэтому длина вектора определяет количество выходных каналов.
-
Когда вы указываете сдвиг фазы через входной порт offset, порт сдвига рассматривает каждый столбец входа как независимый канал. Длина приращения фазы должна быть равна количеству столбцов на входе порта сдвига.
Зависимости
Чтобы использовать этот параметр, установите для параметра Источник приращения фазы значение Из поля для ввода
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Источник смещения фазы —
способ задания сдвига фазы
Из поля для ввода
| Входной порт
Details
Выберите способ задания сдвига фазы:
-
Входной порт
— значение сдвига фазы будет поступать на входной порт offset; -
Из поля для ввода
— значение сдвига фазы можно задать в параметре Смещение фазы.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
# Смещение фазы — значение сдвига фазы
Details
Укажите сдвииг фазы в виде скаляра или вектора с целочисленным значением. Допускаются только целочисленные типы данных, включая типы данных с фиксированной точкой и нулевой длиной дроби. Когда вы указываете сдвиг фазы с помощью этого параметра, оно должно быть скаляром или вектором с той же размерностью, что и приращение фазы. Скаляры разворачиваются в вектор с той же размерностью, что и приращение фазы. Каждый элемент вектора сдвига фазы применяется к отдельному каналу входа, поэтому длина вектора определяет количество выходных каналов.
Зависимости
Чтобы использовать этот параметр, установите для параметра Источник смещения фазы значение Из поля для ввода
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Добавить внутреннее дрожание —
добавить внутренний шум
Логический тип
Details
Установите этот флажок, чтобы добавить сглаживание в алгоритм NCO. Сглаживание добавляется с помощью алгоритма, применяемого в блоке Генератор PN последовательности последовательности.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Количество бит дрожания —
количество битов сглаживания
Вещественное число
Details
Укажите количество битов сглаживания в виде целого положительного числа.
Зависимости
Чтобы использовать этот порт, установите флажок Добавить внутреннее дрожание.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Квантовать фазу —
включить квантование накопленной фазы
Логический тип
Details
Чтобы включить квантование накопленной фазы, установите этот флажок.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Количество бит квантованного аккумулятора —
количество квантованных битов накопителя
Вещественное число
Details
Укажите количество квантованных битов накопителя в виде целого скаляра, который больше единицы и меньше длины слова накопителя. Это значение определяет количество записей в таблице поиска.
Зависимости
Чтобы использовать этот параметр, установите флажок Квантовать фазу.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Показывать порт ошибки квантования фазы —
вывод ошибки квантования фазы
Логический тип
Details
Выберите вывод ошибки квантования фазы. Когда вы устанавливаете этот флажок, то порт Qerr появляется на значке блока.
Зависимости
Чтобы включить этот параметр, установите флажок Квантовать фазу.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Параметры выхода
#
Выходной сигнал —
выходной сигнал
Синус
| Косинус
| Комплексная экспонента
| Синус и косинус
Details
Выберите, какой сигнал выводит блок: Синус
, Косинус
, Комплексная экспонента
или два сигнала Синус и косинус
. Если вы выберете Синус и косинус
, то сигналы будут выводиться на разные порты.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Период дискретизации —
период дискретизации
Вещественное число
Details
Если блок выступает в качестве источника, укажите период дискретизации в секундах в виде положительного скаляра.
Зависимости
Чтобы использовать этот параметр, для обоих параметров Источник приращения фазы и Источник смещения фазы должно быть установлено значение Из поля для ввода
. Когда приращение фазы или сдвиг фазы поступают через входной порт блока, период дискретизации наследуется, и этот параметр не используется.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Отсчётов на кадр —
отсчеты на кадр
Вещественное число
Details
Укажите количество отсчетов на кадр в виде положительного целого числа. Если это значение больше единицы, то приращение фазы и сдвиг фазы могут меняться от канала к каналу и от кадра к кадру, но они постоянны для каждого канала в данном кадре.
Когда используется входной порт сдвига фазы offset, он имеет тот же статус кадра, что и любой выходной порт. Когда используется входной порт приращения фазы inc, кадры не поддерживаются.
Зависимости
Чтобы использовать этот параметр, установите для параметра Источник приращения фазы и/или для параметра Источник смещения фазы значение Из поля для ввода
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
Операционные параметры в виде фиксированной точки
#
Режим округления —
метод округления
Округление вниз
Details
Этот параметр доступен только для чтения.
Когда на входе тип данных с фиксированной точкой, блок Числовой задающий генератор (NCO) всегда использует метод округления Округление вниз
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Режим переполнения —
метод при переполнении
Циклический
Details
Этот параметр доступен только для чтения.
Когда на входе тип данных с фиксированной точкой, блок Числовой задающий генератор (NCO) всегда использует метод при переполнении Циклический
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Аккумулятор
#
Тип данных —
тип данных накопителя
Масштабирование по двоичной точке
Details
Указывает тип данных накопителя.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Знаковый —
знаковый тип данных накопителя
да
Details
Указывает, что тип данных накопителя является знаковым.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Длина слова —
длина слова накопителя
Вещественное число
Details
Укажите длину слова накопителя в виде положительного целого числа от 2
до 128
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Длина дробной части —
длина дроби данных накопителя
0
Details
Указывает, что тип данных накопителя всегда имеет длину дробной части, равную 0
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
Выход
#
Тип данных —
тип выходных данных
Масштабирование по двоичной точке
| Float64
| Float32
Details
Укажите тип выходных данных:
-
Выберите
Float64
илиFloat32
для реализации с плавающей точкой. -
Когда вы выбираете
Binary point scaling
, вы можете указать длину слова и длину дроби для выходных данных, в битах.
Примечание
Таблица поиска для этого блока строится из значений с плавающей точкой двойной точности. Таким образом, максимальная точность, которой вы можете достичь в выводе, составляет 53 бита. Установка длины слова типа данных Выход в значения, превышающие 53 бита, не улучшит точность вывода.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Знаковый —
знаковый тип выходных данных
да
Details
Указывает, является ли тип выходных данных знаковым.
Зависимости
Чтобы использовать этот параметр, установите для параметра Тип данных значение Масштабирование по двоичной точке
.
Значения |
|
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Нет |
#
Длина слова —
длина слова выходных данных
Вещественное число
Details
Укажите длину слова выходных данных в виде положительного целого числа от 2
до 128
.
Зависимости
Чтобы использовать этот параметр, установите для параметра Тип данных значение Масштабирование по двоичной точке
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
#
Длина дробной части —
длина дроби выходных данных
Вещественное число
Details
Укажите длину дроби выходных данных в виде скалярного целого числа.
Зависимости
Чтобы использовать этот параметр, установите для параметра Тип данных значение Масштабирование по двоичной точке
.
Значение по умолчанию |
|
Имя для программного использования |
|
Настраиваемый |
Нет |
Вычисляемый |
Да |
Алгоритмы
На схеме ниже показан алгоритм, который реализует блок.
Реализация генератора с числовым управлением (numerically controlled oscillator, NCO) состоит из двух отдельных частей. Во-первых, фазовый накопитель накапливает приращение фазы и добавляет сдвиг фазы. На этом этапе также может быть добавлен дополнительный внутренний сигнал сглаживания (шум). Затем выход Числовой задающий генератор (NCO) вычисляется путем квантования результатов секции фазового накопителя и использования их для выбора значений из таблицы поиска. Поскольку таблица поиска содержит конечный набор записей, в нормальном режиме работы блок Числовой задающий генератор (NCO) допускает переполнение числовых значений в сумматоре и позволяет им замыкаться в пределах доступного диапазона.
Учитывая желаемую выходную частоту , рассчитайте значение параметра блока Приращение фазы следующим образом:
где — длина слова накопителя, а
Частотное разрешение NCO в Гц определяется как:
Учитывая желаемый сдвиг фазы (в радианах), рассчитайте параметр блока Смещение фазы следующим образом:
Динамический диапазон без помех (spurious free dynamic range, SFDR) для таблицы поиска с записей, где — количество квантованных битов накопителя, оценивается следующим образом:
-
дБ, без шумов;
-
дБ, c шумами.
Блок Числовой задающий генератор (NCO) использует метод четвертьволновой таблицы поиска, в которой хранятся значения от 0
до π/2
. Блок вычисляет другие значения по запросу, используя тип данных накопителя, а затем переводит их в тип выходных данных. Это может привести к эффектам квантования на границах диапазона данного типа данных. Например, рассмотрим случай, когда ожидается, что значение синусоиды будет равно -1
в точке π
. Поскольку значение таблицы поиска в этой точке должно быть вычислено, блок может дать значение, отличное от -1
, в зависимости от точности типов данных накопителя и выходного сигнала.