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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Altera NCO, Разложение сигнала на квадратуры
Evgeniiy
сообщение Sep 30 2009, 12:34
Сообщение #1


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



Здравствуйте! Кто пользовался NCO, подскажите как с ним работать.
Передо мной стоит задача разложить сигнал на квадратурные составляющие, сигнал с частотой 28МГц оцифровывается 112МГц и поступает в ПЛИС, дальше как я понимаю можно просто брать четные или не четные отсчеты - это и будут квадратуры, а можно перемножать выходы NCO настроенного на частоту 28МГц с входами. Так вот по поводу NCO:
1) на вход clk мне подавать 112МГц и CLOCK RATE задавать 112МГц
2) фазу задавать константой которая высвечивается в мегавизарде для 112МГц и входной 28МГц это 1073741824?


Если делать как в пункте 1 и 2, то я получаю на выходе косинуса значения: 0, -32767 0, 32767, на выходе синуса соответственно 32767, 0 , -32767, 0, с этим и перемножать?? в чем тогда сложность составить таблицу из 2 чисел?
И что можно подавать кроме константы на вход фазы??
СПАСИБО! smile3046.gif
Go to the top of the page
 
+Quote Post
eugen_pcad_ru
сообщение Sep 30 2009, 12:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 642
Регистрация: 15-11-07
Пользователь №: 32 353



Сейчас квартуса под рукой нет, но попробую объяснить.
Квадратурный перенос осуществляется с одной частоты на другую.
Т.е. Fрез = Fсигн - Fnco (или Fрез = Fnco - Freз кому как нравитсяsmile.gif), где Fрез - частота результирующего сигнала, Fnco - частота NCO, Fсигн - центральная частота сигнала.
Константа на входе - это код требуемой частоты.
Допустим имеется частота дискретизации 112 Мгц, частота сигнала 28 Мгц.
Если необходимо перенести "в ноль" (обычно как раз это и надо), то требуемая частота работы NCO тоже должна быть 28 МГц.
А частота дискретизации при этом (Sample rate) = 112 ММГц.
Код же частоты определяется через отношение Fnco/Fдискр с учетом масштабного коэффициента.
К примеру если требуется поставить NCO точно в центр анализируемого частотного диапазона, тогда как раз и можно ограничиться манипуляциями по пунктам 1 и 2.
P.S.: Вполне можно еще задать и начальную фазу, тольк5о в обычном случае это совсем ни к чему.
P.P.S: Да, чуть не заыл. Помимо разностной частоты возникает сигнал и на суммарной частоте, в связи с этим используют дополнительную фильтрацию "нежелательных" составляющих.


--------------------
Правильно сформулированый вопрос содержит в себе половину ответа.
P.S.: Некоторые модераторы в качестве ответа так навязчиво предлагают посетить свой сайт, что иначе как саморекламу такие действия интерпретировать сложно.
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Sep 30 2009, 13:17
Сообщение #3


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



В чем тогда преимущество NCO, можно же тогда на эти два числа и умножать
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Sep 30 2009, 13:21
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Sep 30 2009, 17:17) *
В чем тогда преимущество NCO, можно же тогда на эти два числа и умножать


У вас вырожденный случай кратных частот: 28*4=112.
Если бы вместо 28 у вас сигнал был 27, то вы бы оценили преимущества ;-)

Вообще говоря, при подобных кратных частотах могут возникать неприятные эффекты, я бы вас посоветовал для начала помоделировать это и посмотреть на спектр. В Matlab/Simulink к примеру.
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Sep 30 2009, 13:33
Сообщение #5


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



А что бы мне мешало взять частоту дискретизации 27*4 = 108?

Как мне эти значения в ручную посчитать, хотя бы несколько, я не очень доганяю как они получаются
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Sep 30 2009, 13:37
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Sep 30 2009, 17:25) *
А что бы мне мешало взять частоту дискретизации 27*4 = 108?


Ну если вам ничто не мешает - то хорошо. Вся проблема только в том, сможете ли вы с нужным качеством получить клок произвольной частоты под ваш входной сигнал. И что делать, если нужно настраиваться на разные частоты приема. Впрочем это тоже вопросы решаемые...
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Sep 30 2009, 13:38
Сообщение #7


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



Цитата(alexadmin @ Sep 30 2009, 17:37) *
Ну если вам ничто не мешает - то хорошо. Вся проблема только в том, сможете ли вы с нужным качеством получить клок произвольной частоты под ваш входной сигнал. И что делать, если нужно настраиваться на разные частоты приема. Впрочем это тоже вопросы решаемые...



Спасибо, преимущество понял.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Sep 30 2009, 13:44
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Sep 30 2009, 17:33) *
Как мне эти значения в ручную посчитать, хотя бы несколько, я не очень доганяю как они получаются


Какие конкретно значения? Для частот, кратных четырем - вы уже посчитали. В общем случае это
sin(Fs/Fnco*i*2Pi),
cos(Fs/Fnco*i*2Pi),
где i=0...(int(Fnco/Fs)-1). Соответственно, чем больше кратность частот, тем длиннее последовательность.

PS отмасштабированное, конечно, под вашу разрядную сетку

Сообщение отредактировал alexadmin - Sep 30 2009, 13:46
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Oct 1 2009, 05:18
Сообщение #9


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



Цитата(alexadmin @ Sep 30 2009, 17:44) *
Какие конкретно значения? Для частот, кратных четырем - вы уже посчитали. В общем случае это
sin(Fs/Fnco*i*2Pi),
cos(Fs/Fnco*i*2Pi),
где i=0...(int(Fnco/Fs)-1). Соответственно, чем больше кратность частот, тем длиннее последовательность.

PS отмасштабированное, конечно, под вашу разрядную сетку


Как я уже писал, для частоты сигнала 28МГц и дискретизации 112МГц я получил на выходе NCO значения косинуса-->
0, -32767 0, 32767.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Oct 1 2009, 07:36
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Oct 1 2009, 09:18) *
Как я уже писал, для частоты сигнала 28МГц и дискретизации 112МГц я получил на выходе NCO значения косинуса-->
0, -32767 0, 32767.


Вот, это оно и есть - значения из формулы выше, умноженные на 2^15-1 (16-ти разрядные знаковые числа).

Если вы, возьмете, к примеру, частоты 22.4 и 112 МГц (соотношение 1 к 5), то получится набор:

>> t=[0:4];

>> sin(1/5.*t*2*pi)*32767

ans =

0 31163 19260 -19260 -31163

>> cos(1/5.*t*2*pi)*32767

ans =

32767 10126 -26509 -26509 10126

Сообщение отредактировал alexadmin - Oct 1 2009, 07:37
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Oct 2 2009, 06:21
Сообщение #11


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



Цитата(alexadmin @ Oct 1 2009, 11:36) *
Вот, это оно и есть - значения из формулы выше, умноженные на 2^15-1 (16-ти разрядные знаковые числа).

Если вы, возьмете, к примеру, частоты 22.4 и 112 МГц (соотношение 1 к 5), то получится набор:

>> t=[0:4];

>> sin(1/5.*t*2*pi)*32767

ans =

0 31163 19260 -19260 -31163

>> cos(1/5.*t*2*pi)*32767

ans =

32767 10126 -26509 -26509 10126





Спасибо
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Oct 2 2009, 07:57
Сообщение #12


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



Цитата(Evgeniiy @ Oct 2 2009, 10:21) *
Спасибо



Кстате в NCO вроде как можно задавать частоты только целые, 22.4 не получится.
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Oct 2 2009, 10:13
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Oct 2 2009, 11:57) *
Кстате в NCO вроде как можно задавать частоты только целые, 22.4 не получится.


Не совсем так. В NCO можно задавать целые преращения фазы с шагом 1. В итоге разрешающая способность зависит от разрядности аккумулятора NCO и частоты работы. Таким образом, если взять рассмотреный уже пример, то получится следующее:
Для того, чтобы задать частоту 22.4 МГц необходимо установить константу 22.4/112*2^16=13107.2. Округляем до 13107 и получаем результирующую частоту 13107/2^16*112 = 22.399658203125 МГц.
В целом, для частоты 112 МГц и 16-разрядного аккумулятора макимальная ошибка по частоте составит
1/2*1/2^16*112MHz=0.0008544921875 MHz = 855 Hz
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Oct 2 2009, 12:28
Сообщение #14


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

Группа: Участник
Сообщений: 84
Регистрация: 5-03-09
Из: СПБ
Пользователь №: 45 705



а если у меня частота меняется допустим от 22 до 28 с некоторым шагом и меняется плавно, тогда как ? нужно постоянно подстраивать NCO?
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Oct 2 2009, 14:22
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 572
Регистрация: 17-11-05
Из: СПб, Россия
Пользователь №: 10 965



Цитата(Evgeniiy @ Oct 2 2009, 16:28) *
а если у меня частота меняется допустим от 22 до 28 с некоторым шагом и меняется плавно, тогда как ? нужно постоянно подстраивать NCO?


Естественно, как меняется частота - точно так же нужно управлять и NCO. При этом, повторюсь, ошибка по частоте будет почти всегда присутствовать, но не будет превышать для рассмотренного примера величины 855 Hz. Обычно такая ошибка не имеет практического значения.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 7th July 2025 - 17:51
Рейтинг@Mail.ru


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