Перейти к содержанию
    

IPcore NCO Altera

Коллеги, в корке есть выбор одного из четырёх алгоритмов:

Small ROM

Large ROM

CORDIC and

Multiplier-Based

Есть интерес к последнему варианту - Multiplier-Based. Подскажите какую нибудь литературу по реализации этого алгоритма, поиски в сети ничего не дали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И врядли дадут.

Это ж типа ноухау разработчиков.

Кое что можно понять, если использовать матлаб. Я в симулинке выбираю именно синтезируемое альтеровское ядро - тогда и можно примерно понять, что получается в итоге.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И врядли дадут.

Это ж типа ноухау разработчиков.

Кое что можно понять, если использовать матлаб. Я в симулинке выбираю именно синтезируемое альтеровское ядро - тогда и можно примерно понять, что получается в итоге.

Спасибо! Нашёл я здесь один интересный документ, но хозяин хочет за него денег. Ну на нет и суда нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Multiplier-Based это случайно не Тейлоровская коррекция?

Multiplier-Based это скорее всего что-нибудь вроде

 

   Инициализация:
   X = 1; 
   R = exp(j*2*pi/Fs*Fc)
    Рекурсия:
   X = X * R

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По смыслу очень похоже на то. А как у него с устойчивостью?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По смыслу очень похоже на то. А как у него с устойчивостью?

Устойчивость так себе. В 16ти битной арифметике более-менее можно пользоваться. В float расходится. В double - не расходится ( ну или расходится ну очень медленно :) ).

 

В древней интеловской либе NSP такой генератор косинуса был:

Application Notes: The contents of the structures NSP?ToneState
and the particular equations used to calculate the tone are
implementation-dependent. The tone is calculated using a structure that
implements the following second-order transfer function:

X(z)  = z^–1/ (1 - az^–1 + z^–2),  a = 2cos(2pi × rfreq)

This system has two complex conjugate poles on the unit circle. The angle
of the poles is determined by rfreq. There are several possible equations
to implement this system. The particular equation used is
implementation-dependent because the relative speed and harmonic
distortion depends on the particular processor.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Устойчивость так себе.

Ясно,спасибо! Но на мой взгляд этот алгоритм можно применять если просто нужен синус. А реализовать ЧМ или ФМ очень уж некрасиво получается...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ЛЧМ сделал на 1.6 ГГц - и нормально работает в железе ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я ЛЧМ сделал на 1.6 ГГц - и нормально работает в железе ;)

Нисколько не сомневаюсь;)

Я к тому что алгоритм приведенный alex_os для генерации синуса требует всего одну константу R, а для модуляции уже потребуется массив R(i).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...