|
NCO генератор и смесители |
|
|
|
May 24 2006, 10:50
|
Группа: Новичок
Сообщений: 12
Регистрация: 23-05-06
Пользователь №: 17 367

|
Не мог бы кто-нибудь подсказать или посоветовать, стоит ли игра свеч, в реализации генератора NCO и соответственно двух смесителей, для получения квадратурного сигнала. Иначе говоря, необходимо получить, разложить сигнал на sin и cos составляющие! Насколько проблемна задача, стоит ли браться за ее реализацию на ПЛИС (Альтера например)? Много ли объема занимает эта штука в логике? Если у кого есть реализации был бы очень благодарен за пример, или хотя бы советы! (Сижу в жутком цейтноте и кроме того плата спаяна уже. разрабатывать в виде каких-то других реализаций не имею возможности, плату не я разрабатывал!) Спасибо!
|
|
|
|
|
 |
Ответов
(1 - 6)
|
May 24 2006, 16:09
|

Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065

|
Цитата(Vital_100 @ May 24 2006, 14:50)  ...стоит ли игра свеч, в реализации генератора NCO и соответственно двух смесителей, для получения квадратурного сигнала... Однозначно стоит. Только так и делаю. Цитата Насколько проблемна задача, стоит ли браться за ее реализацию на ПЛИС (Альтера например)? Много ли объема занимает эта штука в логике? Не сильно проблемна. Все упирается в требуемые характеристики. Объем занимаемых ресурсов зависит опять же от требуемых характеристик, скорости поступления данных и требуемого коэффициента децимации. Реализация варианта DDC (Digital Down Conderter), когда на один период опорных сигналов (sin и cos) приходится 4 выборки, вообще смешной до коликов. Основная нагрузка - это фильтры. При фильтрах девятого порядка с единичными коэффициентами и разрядностью входного сигнала 12 (CIC фильтры не использовались) - около сотни логических элементов на такой микросхеме, как EP1K100 (Acex1K). Но могу соврать, так как было давно. Последний вариант планировался по-честному (NCO, CORDIC, фильтры). Около 400-500 логических элементов. Цитата Если у кого есть реализации был бы очень благодарен за пример, или хотя бы советы! Реализацию сложно, советы можно
|
|
|
|
|
May 24 2006, 19:35
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 30-04-06
Пользователь №: 16 628

|
Цитата(kst @ May 24 2006, 19:09)  Реализация варианта DDC (Digital Down Conderter), когда на один период опорных сигналов (sin и cos) приходится 4 выборки, вообще смешной до коликов. Основная нагрузка - это фильтры. При фильтрах девятого порядка с единичными коэффициентами и разрядностью входного сигнала 12 (CIC фильтры не использовались) - около сотни логических элементов на такой микросхеме, как EP1K100 (Acex1K). Но могу соврать, так как было давно. Последний вариант планировался по-честному (NCO, CORDIC, фильтры). Около 400-500 логических Интересует вопрос синхронизации NCO, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)???
|
|
|
|
|
May 25 2006, 14:25
|
Группа: Новичок
Сообщений: 12
Регистрация: 23-05-06
Пользователь №: 17 367

|
Спасибо! Очень вразумительный, толковый ответ. Я еще забегу сюда... Надо обдумать идею! Попутно вопрос если можно... На четыре выборки у меня никак не получается демодуляция - не настроить PLL для забитой уже тактовой частоты и скорости поступления данных. Придется умножение делать классическое. Хочу эту штуку написать на Veriloge, но не пробовал делать еще умножители так. Раньше делал все в схематике, а сейчас все больше в Veriloge клепаю. Не могли бы что-нибудь посоветовать по поводу построения умножителя в Veriloge, не предстваляю пока, как его сделать. Простой оператор "*" в один такт здесь очевидно не пройдет. Как тогда решить эту проблему. Входные данные 12 разрядов!
|
|
|
|
|
May 25 2006, 16:04
|

Частый гость
 
Группа: Свой
Сообщений: 141
Регистрация: 16-06-05
Из: Нижний Новгород
Пользователь №: 6 065

|
Цитата(Vital_100 @ May 25 2006, 18:25)  На четыре выборки у меня никак не получается демодуляция - не настроить PLL для забитой уже тактовой частоты и скорости поступления данных. Придется умножение делать классическое. Это не проблема. Цитата Хочу эту штуку написать на Veriloge, но не пробовал делать еще умножители так. Раньше делал все в схематике, а сейчас все больше в Veriloge клепаю. Не могли бы что-нибудь посоветовать по поводу построения умножителя в Veriloge, не предстваляю пока, как его сделать. Простой оператор "*" в один такт здесь очевидно не пройдет. Как тогда решить эту проблему. Входные данные 12 разрядов! Здесь помочь не могу. Сам только только слезаю со схематики и перехожу на VHDL. До верилога в ближайший год не доберусь. Однако все это сделать можно. Можно попробовать инструмент распределенной арифметики - разбить одно большое многоразрядное умножение на ряд более простых операций умножения/сложения с меньшей разрядностью операндов. К сожалению никаких ссылок пока дать не могу. Цитата(Serega_YSV @ May 24 2006, 23:35)  Интересует вопрос синхронизации NCO, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)??? Это из области ФАПЧ. Не силен. Такого пока еще не делал.
|
|
|
|
|
May 27 2006, 04:14
|
Группа: Новичок
Сообщений: 12
Регистрация: 23-05-06
Пользователь №: 17 367

|
Кое-что слепил на Verilog'е уже. В частности умножители-смесители. Симулировал в Quartus'e. Поразило то, что код (написанный для NCO, смесителей) занял очень мало места. Похоже в кристалл (Cyclone) войдет все, что задумано - фильтры и пр. скарб. Опыта пока не имею создания таких изделий (темы другие разрабатывал), но все больше вижу преимущества Verilog'a перед схематикой. Хотя разрабатываю чаще смешанный вариант - мелочь, детали в Verilog'e, а крупные блоки соединяю в схематике. Спасибо еще раз за дельные мысли! Может быть и я смогу, чем помочь при случае...
|
|
|
|
|
May 28 2006, 05:58
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 27-04-06
Пользователь №: 16 537

|
Цитата(Serega_YSV @ May 24 2006, 23:35)  Интересует вопрос синхронизации NCO, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)??? Сильно зависит от того, какой вид модуляции используется. Для фазоманипулированных сигналов - обычно какой-либо вариант схемы Костаса. У Спилкера в книжке "Цифровая спутниковая связь" про восстановление несущей хорошо написано. Если принимать автокорреляционно (сравнивать фазы сигнала на текущем и предыдущем такте), можно и вообще без восстановления несущей обойтись, а только примерно настраивать NCO по центру сигнала.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|