ovs_pavel 0 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба День добрый. Вот рассуждаю не тему нужен ли в данном конкретном случае модуль 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 ....... (далее повтор) Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба Т.е. получается если необходимая частота генерации кратна частоте дискретизации, то следовательно данный модуль можно заменить на простой мультиплексор заданных отсчетов. если не нужна подстройка по фазе, то не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovs_pavel 0 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба если не нужна подстройка по фазе, то не нужен. Необходимости в подстройке фазы вроде нет (имеется в виду начальной фазы). Просто интересен сам момент что 2 из 4-ех отсчетов могут быть нулями, хотя с теоретической точки зрения это вполне нормально. С практической надо будет смотреть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
disel 0 7 июля, 2016 Опубликовано 7 июля, 2016 · Жалоба Все правильно, тут подробно: http://www.chipinfo.ru/literature/chipnews/200008/2.html Этот факт также позволяет упростить фильтры, поскольку половина коэфициентов нулевые. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 11 июля, 2016 Опубликовано 11 июля, 2016 · Жалоба У меня получается, что без 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. Вычислений меньше, тк поворот после децимации. Не напутал ли где (еще не пробовал)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Krys 2 8 августа, 2016 Опубликовано 8 августа, 2016 · Жалоба А откуда следует, что умножение на синусоиду и последующую децимацию-фильтрацию можно заменить на децимацию-фильтрацию с синусом? И откуда следует, что потом ещё нужен доворот на линейно нарастающую фазу? А такой поворот на линейно нарастающую фазу не является ли синусом? Не пробовали в матлабе отмоделировать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 9 августа, 2016 Опубликовано 9 августа, 2016 (изменено) · Жалоба Выводится непосредственно из определения свертки, exp(jw(t-x)) разлагается на exp(jwt)*exp(-jwx), и exp(jwt) выводится из-под знака интеграла по dx. Делал амплитудный детектор, поэтому не поворачивал. С поворотом не моделировал, амплитудный детектор сразу в железо зашил, получил, что хотел. Изменено 9 августа, 2016 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovs_pavel 0 3 октября, 2016 Опубликовано 3 октября, 2016 · Жалоба День добрый коллеги. Вообщем наконец получил железо и теоретические изыскания попытался переложить на железо. Вкратце: - частота дискретизации 112 МГц; - входной сигнал (тестовый) подается частотой 85 МГц (ПЧ = 84 МГц и сдвиг по частоте 1 МГц); - внутри ПЛИС раскладывается на квадратуры (умножается на sin и cos, причем косинус это 1, 0, -1, 0 и синус это 0, 1, 0, -1). - внутри ПЛИС реализуем фильтр для подавления зеркальной составляющей. Получаем первую картинку - с фильтром без децимации: На этой картинке показана вся частотная шкала (112 МГц) для БПВ 32768. Видна основная гармоника - 1 МГц и подавленная зеркальная составляющая. Вторая картинка показывает результат децимации после этого фильтра: На этой картинке вся шкала уже 56 МГц. Также основная гармоника и зеркальная составляющая переехала вправо (хотя физически осталась на месте). Вроде все как и должно быть. Но при попытке реализовать фильтр-дециматор с учетом того, что у нас после АЦП спектр оказался на частоте Fd/4 и отбрасывания соответствующих нулевых составляющих, практика и теория не совпадает. Картинка: На этой картинке вся шкала также 56 МГц. Есть основная гармоника (слева), а вот справа появилось что-то, чего быть не должно (должна быть вроде как задавленная зеркалка). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovs_pavel 0 3 октября, 2016 Опубликовано 3 октября, 2016 · Жалоба Более детальный анализ: входная последовательность: 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] ....................... Для квадратурной составляющей будут нечетные коэффициены. Вроде так получается, но на выходе - беда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ovs_pavel 0 6 октября, 2016 Опубликовано 6 октября, 2016 · Жалоба Задача разрешилась. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться