реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> NCO генератор и смесители
Vital_100
сообщение May 24 2006, 10:50
Сообщение #1





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



Не мог бы кто-нибудь подсказать или посоветовать, стоит ли игра свеч, в реализации генератора NCO и соответственно двух смесителей, для получения квадратурного сигнала. Иначе говоря, необходимо получить, разложить сигнал на sin и cos составляющие! Насколько проблемна задача, стоит ли браться за ее реализацию на ПЛИС (Альтера например)? Много ли объема занимает эта штука в логике?
Если у кого есть реализации был бы очень благодарен за пример, или хотя бы советы!
(Сижу в жутком цейтноте и кроме того плата спаяна уже. разрабатывать в виде каких-то других реализаций не имею возможности, плату не я разрабатывал!)
Спасибо!
Go to the top of the page
 
+Quote Post
kst
сообщение May 24 2006, 16:09
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 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 логических элементов.
Цитата
Если у кого есть реализации был бы очень благодарен за пример, или хотя бы советы!
Реализацию сложно, советы можно smile.gif
Go to the top of the page
 
+Quote Post
Serega_YSV
сообщение May 24 2006, 19:35
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)???
Go to the top of the page
 
+Quote Post
Vital_100
сообщение May 25 2006, 14:25
Сообщение #4





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



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


Частый гость
**

Группа: Свой
Сообщений: 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, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)???
Это из области ФАПЧ. Не силен. Такого пока еще не делал.
Go to the top of the page
 
+Quote Post
Vital_100
сообщение May 27 2006, 04:14
Сообщение #6





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



Кое-что слепил на Verilog'е уже. В частности умножители-смесители. Симулировал в Quartus'e. Поразило то, что код (написанный для NCO, смесителей) занял очень мало места. Похоже в кристалл (Cyclone) войдет все, что задумано - фильтры и пр. скарб.
Опыта пока не имею создания таких изделий (темы другие разрабатывал), но все больше вижу преимущества Verilog'a перед схематикой. Хотя разрабатываю чаще смешанный вариант - мелочь, детали в Verilog'e, а крупные блоки соединяю в схематике.
Спасибо еще раз за дельные мысли! Может быть и я смогу, чем помочь при случае...
Go to the top of the page
 
+Quote Post
Koluntaev
сообщение May 28 2006, 05:58
Сообщение #7


Участник
*

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



Цитата(Serega_YSV @ May 24 2006, 23:35) *
Интересует вопрос синхронизации NCO, точнее, по какому алгоритму производить выделение ошибки синхронизации с несущей (чтобы меньше ресурсов потребовалось)???


Сильно зависит от того, какой вид модуляции используется. Для фазоманипулированных сигналов - обычно какой-либо вариант схемы Костаса. У Спилкера в книжке "Цифровая спутниковая связь" про восстановление несущей хорошо написано. Если принимать автокорреляционно (сравнивать фазы сигнала на текущем и предыдущем такте), можно и вообще без восстановления несущей обойтись, а только примерно настраивать NCO по центру сигнала.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016