Перейти к содержанию
    

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня получается, что без 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.

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Изменено пользователем Leka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Вкратце:

- частота дискретизации 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 МГц. Есть основная гармоника (слева), а вот справа появилось что-то, чего быть не должно (должна быть вроде как задавленная зеркалка).

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

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

 

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...