|
Рассуждения на тему ЦОС на ПЛИС - а нужен ли NCO(цифровой DDS)? |
|
|
|
Jul 7 2016, 08:57
|
Местный
  
Группа: Свой
Сообщений: 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 ....... (далее повтор)
Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов.
|
|
|
|
|
 |
Ответов
(1 - 9)
|
Jul 7 2016, 09:09
|
Местный
  
Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249

|
Цитата(des00 @ Jul 7 2016, 12:03)  если не нужна подстройка по фазе, то не нужен. Необходимости в подстройке фазы вроде нет (имеется в виду начальной фазы). Просто интересен сам момент что 2 из 4-ех отсчетов могут быть нулями, хотя с теоретической точки зрения это вполне нормально. С практической надо будет смотреть.
|
|
|
|
|
Oct 3 2016, 09:27
|
Местный
  
Группа: Свой
Сообщений: 275
Регистрация: 19-05-06
Пользователь №: 17 249

|
День добрый коллеги. Вообщем наконец получил железо и теоретические изыскания попытался переложить на железо. Вкратце: - частота дискретизации 112 МГц; - входной сигнал (тестовый) подается частотой 85 МГц (ПЧ = 84 МГц и сдвиг по частоте 1 МГц); - внутри ПЛИС раскладывается на квадратуры (умножается на sin и cos, причем косинус это 1, 0, -1, 0 и синус это 0, 1, 0, -1). - внутри ПЛИС реализуем фильтр для подавления зеркальной составляющей. Получаем первую картинку - с фильтром без децимации:  На этой картинке показана вся частотная шкала (112 МГц) для БПВ 32768. Видна основная гармоника - 1 МГц и подавленная зеркальная составляющая. Вторая картинка показывает результат децимации после этого фильтра:  На этой картинке вся шкала уже 56 МГц. Также основная гармоника и зеркальная составляющая переехала вправо (хотя физически осталась на месте). Вроде все как и должно быть. Но при попытке реализовать фильтр-дециматор с учетом того, что у нас после АЦП спектр оказался на частоте Fd/4 и отбрасывания соответствующих нулевых составляющих, практика и теория не совпадает. Картинка:  На этой картинке вся шкала также 56 МГц. Есть основная гармоника (слева), а вот справа появилось что-то, чего быть не должно (должна быть вроде как задавленная зеркалка).
|
|
|
|
|
Oct 3 2016, 10:35
|
Местный
  
Группа: Свой
Сообщений: 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] .......................
Для квадратурной составляющей будут нечетные коэффициены. Вроде так получается, но на выходе - беда.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|