Jump to content

    
Sign in to follow this  
ovs_pavel

Рассуждения на тему ЦОС на ПЛИС - а нужен ли NCO(цифровой DDS)?

Recommended Posts

День добрый. Вот рассуждаю не тему нужен ли в данном конкретном случае модуль 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 ....... (далее повтор)

 

Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов.

Share this post


Link to post
Share on other sites
Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов.

если не нужна подстройка по фазе, то не нужен.

 

Share this post


Link to post
Share on other sites
если не нужна подстройка по фазе, то не нужен.

 

Необходимости в подстройке фазы вроде нет (имеется в виду начальной фазы). Просто интересен сам момент что 2 из 4-ех отсчетов могут быть нулями, хотя с теоретической точки зрения это вполне нормально.

С практической надо будет смотреть.

Share this post


Link to post
Share on other sites

Все правильно, тут подробно: http://www.chipinfo.ru/literature/chipnews/200008/2.html

Этот факт также позволяет упростить фильтры, поскольку половина коэфициентов нулевые.

Share this post


Link to post
Share on other sites

У меня получается, что без NCO можно обойтись и в более общем случае (в задаче переноса спектра с децимацией). Вместо перемножения каждого отсчета АЦП на sin/cos от NCO c последующей децимирующей фильтрацией (символ "ж" - свертка):

i = (s * cos) ж h

q = (s * sin) ж h

пропускать отсчеты АЦП сразу через децимирующие фильтры:

i = s ж hc

q = s ж hs

где заранее просчитанные фильтры:

hc = h * cos

hs = h * sin

- а потом повернуть каждую пару отсчетов i(n) q(n) на угол const*n.

Вычислений меньше, тк поворот после децимации.

Не напутал ли где (еще не пробовал)?

Share this post


Link to post
Share on other sites

А откуда следует, что умножение на синусоиду и последующую децимацию-фильтрацию можно заменить на децимацию-фильтрацию с синусом? И откуда следует, что потом ещё нужен доворот на линейно нарастающую фазу? А такой поворот на линейно нарастающую фазу не является ли синусом?

Не пробовали в матлабе отмоделировать?

Share this post


Link to post
Share on other sites

Выводится непосредственно из определения свертки, exp(jw(t-x)) разлагается на exp(jwt)*exp(-jwx), и exp(jwt) выводится из-под знака интеграла по dx.

Делал амплитудный детектор, поэтому не поворачивал.

С поворотом не моделировал, амплитудный детектор сразу в железо зашил, получил, что хотел.

Edited by Leka

Share this post


Link to post
Share on other sites

День добрый коллеги. Вообщем наконец получил железо и теоретические изыскания попытался переложить на железо.

 

Вкратце:

- частота дискретизации 112 МГц;

- входной сигнал (тестовый) подается частотой 85 МГц (ПЧ = 84 МГц и сдвиг по частоте 1 МГц);

- внутри ПЛИС раскладывается на квадратуры (умножается на sin и cos, причем косинус это 1, 0, -1, 0 и синус это 0, 1, 0, -1).

- внутри ПЛИС реализуем фильтр для подавления зеркальной составляющей.

 

Получаем первую картинку - с фильтром без децимации:

 

fir_no_dec.png

 

На этой картинке показана вся частотная шкала (112 МГц) для БПВ 32768. Видна основная гармоника - 1 МГц и подавленная зеркальная составляющая.

 

Вторая картинка показывает результат децимации после этого фильтра:

 

fir_dec_classic.png

 

На этой картинке вся шкала уже 56 МГц. Также основная гармоника и зеркальная составляющая переехала вправо (хотя физически осталась на месте). Вроде все как и должно быть.

 

Но при попытке реализовать фильтр-дециматор с учетом того, что у нас после АЦП спектр оказался на частоте Fd/4 и отбрасывания соответствующих нулевых составляющих, практика и теория не совпадает. Картинка:

 

fir_with_dec.png

 

На этой картинке вся шкала также 56 МГц. Есть основная гармоника (слева), а вот справа появилось что-то, чего быть не должно (должна быть вроде как задавленная зеркалка).

 

 

Share this post


Link to post
Share on other sites

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

 

входная последовательность: 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]

.......................

 

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

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this