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

 
 
> Рассуждения на тему ЦОС на ПЛИС - а нужен ли NCO(цифровой DDS)?
ovs_pavel
сообщение Jul 7 2016, 08:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



День добрый. Вот рассуждаю не тему нужен ли в данном конкретном случае модуль NCO (Numerically Controlled Oscillator)?

Входной сигнал после АЦП с Fd = 112 МГц поступает на ПЛИС.
Внутри ПЛИС раскладывается на квадратуры (умножается на sin и cos, который формируется NCO).
Ситуация интересна тем, что NCO формирует частоту 28 МГц и получаем, что один период 28 МГц - это ровно 4 отсчета частоты дискретизации (112 МГц).

Даже в самой простой ситуации (начальная фаза NCO = 0) получаем:

COS: Vmax, 0, Vmin, 0 ....... (далее повтор)
SIN: 0, Vmin, 0, Vmax ....... (далее повтор)

Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ovs_pavel
сообщение Oct 3 2016, 10:35
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249



Более детальный анализ:

входная последовательность: x[0], x[1], x[2], x[3], x[4], x[5], x[6], x[7], x[8], x[9], x[10]...;

для получения синфазной составляющей умножаем ее на 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, -1... (косинус 28 МГц при частоте дискретизации 112 МГц);

после перемножения: Хm[0], 0, -Хm[2], 0, Хm[4], 0, -Хm[6], 0, Хm[8], 0, -Хm[10]...;

коэффициенты фильтра h[0], h[1], h[2], h[3], h[4], h[5]....

Выход фильтра:
для t=0 y[0] = Xm[0]*h[0];
для t=1 y[1] = 0*h[0] + Xm[0]*h[1];
для t=2 y[2] = -Xm[2]*h[0] + 0*h[1] + Xm[0]*h[2];
для t=3 y[2] = 0*h[0] -Xm[2]*h[1] + 0*h[2] + Xm[0]*h[3];
для t=4 y[4] = Xm[4]*h[0] + 0*h[1] -Xm[2]*h[2] + 0*h[3] + Xm[0]*h[4];
для t=5 y[5] = 0*h[0] + Xm[4]*h[1] + 0*h[2] -Xm[2]*h[3] + 0*h[4] + Xm[0]*h[5];
................

При децимации внутри фильтра отбрасываем составляющие для t=1,3,5... и не учитывая нулевые произведения получим:
y[0] = Xm[0]*h[0]
y[2] = Xm[0]*h[2] - Xm[2]*h[0]
y[4] = Xm[0]*h[4] - Xm[2]*h[2] + Xm[4]*h[0]
y[6] = Xm[0]*h[6] - Xm[2]*h[4] + Xm[4]*h[2] - Xm[6]*h[0]
y[8] = Xm[0]*h[8] - Xm[2]*h[6] + Xm[4]*h[4] - Xm[6]*h[2] + Xm[8]*h[0]
.......................

Для квадратурной составляющей будут нечетные коэффициены. Вроде так получается, но на выходе - беда.

Go to the top of the page
 
+Quote Post



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

 


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


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