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

 
 
> 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
 
Start new topic
Ответов
Evgeniiy
сообщение Sep 30 2009, 13:33
Сообщение #2


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

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



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

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


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #4


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

Группа: Участник
Сообщений: 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
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #6


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

Группа: Участник
Сообщений: 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
Сообщение #7


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

Группа: Участник
Сообщений: 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
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 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
Сообщение #9


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

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



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


Знающий
****

Группа: Свой
Сообщений: 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
Evgeniiy
сообщение Oct 8 2009, 13:10
Сообщение #11


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

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



Цитата(alexadmin @ Oct 2 2009, 18:22) *
Естественно, как меняется частота - точно так же нужно управлять и NCO. При этом, повторюсь, ошибка по частоте будет почти всегда присутствовать, но не будет превышать для рассмотренного примера величины 855 Hz. Обычно такая ошибка не имеет практического значения.


Если у меня ЛЧМ сигнал изменяющийся от 27 до 29 МГц за 300мкc, то мне нужно разбить этот интервал на части например на 100 и каждые 3 мкс изменять константу на фазовом входе? А если у меня входной сигнал не обязательно приходит в фазе с сигналом дискретизации?
Go to the top of the page
 
+Quote Post
alexadmin
сообщение Oct 9 2009, 08:21
Сообщение #12


Знающий
****

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



Цитата(Evgeniiy @ Oct 8 2009, 17:10) *
Если у меня ЛЧМ сигнал изменяющийся от 27 до 29 МГц за 300мкc, то мне нужно разбить этот интервал на части например на 100 и каждые 3 мкс изменять константу на фазовом входе? А если у меня входной сигнал не обязательно приходит в фазе с сигналом дискретизации?


Если я правильно помню, что такоtt ЛЧМ, то да. Но намного лучше будет изменят частоту не с таким большим дискретом,а действительно линейно.
То есть берете свой интервал 300 мкс и считаете, сколько на нем периодов тактовой частоты, допустим тех самых 112 МГц.
Получается 33600 тактов. На этом интервале вам надо, чтобы вход вашего управления NCO изменился с 27/112*2^16=15799 до 29/112*2^16=16969.
Таким образом счетчик должен считать со средней скоростью (19969-15799)/33600=0.1241... на каждом такте. Делаете высокоточный счетчик ( с дробной частью) в диапазоне от 0 до (19969-15799) с инкрементом 0.1241... прибавляете к нему начальное смещение 15799 и вперед. Естественно у вас будет накапливаться ошибка в виду конечной точности, но она будет несущественна. При этом счетчик не должен быть циклическим, а должен устанавливаться в начальное состояние по окончании целого периода. Как-то так. Наверное можно придумать и более изящное решение, но это "в лоб" наиболее очевидное.

Про второй ваш вопрос не очень понял, вы имеете в виду приход самих данных в другом тактовом домене или временнные метки управления NCO?
Go to the top of the page
 
+Quote Post
Evgeniiy
сообщение Oct 27 2009, 07:31
Сообщение #13


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

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



Вот еще вопросик такой, условие для выбора частоты среза ФНЧ это то что она должна быть меньше удвоенной частоты сигнала и все? т.е поласа фильтра может быть от 0 до скажем 2,3, или 30 МГц? И после фильтра с частотой дискретизации 112МГц, если например мне нужно выдавай данные с частотой 7МГц я должен складывать 16 чисел?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Evgeniiy   Altera NCO, Разложение сигнала на квадратуры   Sep 30 2009, 12:34
- - eugen_pcad_ru   Сейчас квартуса под рукой нет, но попробую объясни...   Sep 30 2009, 12:55
- - Evgeniiy   В чем тогда преимущество NCO, можно же тогда на эт...   Sep 30 2009, 13:17
|- - alexadmin   Цитата(Evgeniiy @ Sep 30 2009, 17:17) В ч...   Sep 30 2009, 13:21
|- - alexadmin   Цитата(Evgeniiy @ Sep 30 2009, 17:25) А ч...   Sep 30 2009, 13:37
||- - Evgeniiy   Цитата(alexadmin @ Sep 30 2009, 17:37) Ну...   Sep 30 2009, 13:38
|- - Evgeniiy   RE: Altera NCO, Разложение сигнала на квадратуры   Oct 9 2009, 05:35
|- - des00   Цитата(Evgeniiy @ Oct 27 2009, 01:31) Вот...   Oct 27 2009, 07:53
|- - Evgeniiy   Цитата(des00 @ Oct 27 2009, 11:53) вообще...   Oct 27 2009, 08:20
|- - des00   Цитата(Evgeniiy @ Oct 27 2009, 02:20) я д...   Oct 27 2009, 12:42
- - анатолий   Насчет NCO, квадратур и пр. предлагаю глянуть на h...   Oct 9 2009, 12:41
- - EvgenyV   Тут есть немного теории http://allfpga.com/fpga/f...   Nov 10 2009, 05:26


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:36
Рейтинг@Mail.ru


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