|
Перенос частотстоты вниз |
|
|
|
Dec 2 2011, 20:27
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 20-06-11
Пользователь №: 65 790

|
Hi Я новичок в ЦОС, поэтому прошу не гнобить сразу! Задача: Есть сигнал на несущей частоте 50 кГц, узкрполосный - ширина спектра по уровню -3дБ = 2 кГц Сигнал требуется оцифровать и передать Сигнал семплируется АЦП с частотой 150 кГц Требуется написать алгоритм на С позволяющий перенести частоту вниз, НО не без использования IQ, тоесть это НЕ DDC На входе алгоритма будет семплирование 150 кГц, а на выходе должна быть в пределах 10 кГц. И большое ограничение - алгоритм не должен быть требовательным к ресурсам, код будет компилится под 8и битный pic18, но и требований к точности нет. Вообще то, как бы понятно - опорник, смеситель, ФНЧ. Но не представляю как это можно на С описать. Есть идеи?
|
|
|
|
|
 |
Ответов
|
Dec 3 2011, 14:45
|
Участник

Группа: Участник
Сообщений: 43
Регистрация: 20-06-11
Пользователь №: 65 790

|
Спасибо за дельные коменты Есть еще одна немаловажная проблема - компилится код будет под PIC18, 8 бит. есть правда перемножитель. Не так много циклов на обработку между семплами - порядка сотни команд, а то и меньше. Благодаря коментам, я осознал проблему  . В итоге конечно лучше получить набор квадратур по 8 бит. То есть уже класический DDC Для упрощения задачи - частоту семплирования сделаю ровно в 4 раза выше несущей. Возращаясь к 1ому посту sup-sup: "Если бы частота сэмплирования была 200 кГц (вчетверо выше от требуемой), то для канала I все сводится к прореживанию вдвое, каждый раз с переменой знака (умножение на .. 1 0 -1 0 1 0 -1 0 1 0 ..), а канал Q - то же самое со сдвигом на один сэмпл (что соответствует 90 градусам). " Вопросы к спецам: - На самом ли деле этот частный случай снижает требования к алгоритму? - Нужен ли будет ФНЧ? (я всетаки думаю, что да  ) - Как этот алгоритм наиболее лучшим способом положить на 8 битный RISC контроллер (АЦП тоже 8 бит) Был признателен за простенький код на С или matlab для DDC Спасибо большое
Сообщение отредактировал SergiRF - Dec 3 2011, 14:49
|
|
|
|
|
Dec 3 2011, 17:03
|
Участник

Группа: Участник
Сообщений: 63
Регистрация: 11-10-10
Из: Москва
Пользователь №: 60 055

|
Цитата(SergiRF @ Dec 3 2011, 18:45)  Вопросы к спецам: - На самом ли деле этот частный случай снижает требования к алгоритму? - Нужен ли будет ФНЧ? (я всетаки думаю, что да  ) - Как этот алгоритм наиболее лучшим способом положить на 8 битный RISC контроллер (АЦП тоже 8 бит) Был признателен за простенький код на С или matlab для DDC Спасибо большое Для того, чтобы сказать, нужны ли Вам квадратуры, нужно понимать, что Вы собираетесь желать потом с перенесенным сигналом - нужна ли Вам информация о фазе сигнала или нет, если не нужна и Вы будете мерить только амплитуду - то и квадратуры не нужны, лучше подберите так частоты, чтобы табличные значения косинуса были 1,0,-1,0... - т.е. частота дискретизации в 4 раза больше чем центральная частота сигнала. Если нужна информация о фазе - например при разного рода BPSK и подобных модуляций, то без квадратур и не обойтись. но их можно уже после децимации использовать, ибо тащить сигнал с полосой 2 кгц при частоте выборок 150 кгц в квадратурах - расточительно. Нужен ли ФНЧ - зависит от задачи. В принципе, если этот сигнал - АМ, то применив перенос частоты и фильтр получите эффективную разрядность порядка 14 бит и динамический диапазон больше 40 дб, если этого не надо, то можете просто семплировать на частоте 10 кгц, как предлагал предыдущий оратор, - и все получится, но с диапазоном менее 20 дб...
Сообщение отредактировал Pavel_SSS - Dec 3 2011, 17:06
|
|
|
|
|
Dec 3 2011, 17:32
|
Знающий
   
Группа: Участник
Сообщений: 674
Регистрация: 26-08-05
Пользователь №: 7 997

|
Цитата(Pavel_SSS @ Dec 3 2011, 21:03)  Для того, чтобы сказать, нужны ли Вам квадратуры, нужно понимать, что Вы собираетесь желать потом с перенесенным сигналом - нужна ли Вам информация о фазе сигнала или нет, если не нужна и Вы будете мерить только амплитуду - то и квадратуры не нужны, лучше подберите так частоты, чтобы табличные значения косинуса были 1,0,-1,0... - т.е. частота дискретизации в 4 раза больше чем центральная частота сигнала. Если нужна информация о фазе - например при разного рода BPSK и подобных модуляций, то без квадратур и не обойтись. но их можно уже после децимации использовать, ибо тащить сигнал с полосой 2 кгц при частоте выборок 150 кгц в квадратурах - расточительно. Нужен ли ФНЧ - зависит от задачи. В принципе, если этот сигнал - АМ, то применив перенос частоты и фильтр получите эффективную разрядность порядка 14 бит и динамический диапазон больше 40 дб, если этого не надо, то можете просто семплировать на частоте 10 кгц, как предлагал предыдущий оратор, - и все получится, но с диапазоном менее 20 дб... С IQ решение самое 'правильное' в том смысле, что этот узел можно сделать и 'забыть'. IQ годятся для всех сигналов, так как нет потерь, а только перенос спектра. Получив IQ, мы не теряем ничего из исходного сигнала. Посмотрите сами - все сэмплы 200 кГц не только применены, но и не искажены - все они есть в двух квадратурных потоках. Применение sin (0 1 0 -1) и cos (1 0 -1 0) совершенно не ущербно, а просто частный случай, позволяющий не применять умножение и отказаться от нулевых значений, если это уменьшит затраты. Больше ничего не поменялось. Для получения огибающей нужно векторно сложить IQ (после фильтрации), то есть 'сумма квадратов под корнем'. Критично по времени извлечение корня.
Сообщение отредактировал sup-sup - Dec 3 2011, 17:34
|
|
|
|
Сообщений в этой теме
SergiRF Перенос частотстоты вниз Dec 2 2011, 20:27 sup-sup Цитата(SergiRF @ Dec 2 2011, 23:27) Hi
Я ... Dec 2 2011, 20:48 SergiRF Цитата(sup-sup @ Dec 2 2011, 23:48) ... Dec 2 2011, 21:04 Serg76 ADC (Fs=150 kHz) -> ПЧ (гетеродин + смеситель) ... Dec 2 2011, 21:50 SergiRF Цитата(Serg76 @ Dec 3 2011, 00:50) ADC (F... Dec 2 2011, 22:59  Serg76 Цитата(SergiRF @ Dec 3 2011, 01:59) Круто... Dec 3 2011, 07:55   SergiRF Цитата(Serg76 @ Dec 3 2011, 10:55) Чего н... Dec 3 2011, 08:32    Serg76 Цитата(SergiRF @ Dec 3 2011, 11:32) Может... Dec 3 2011, 09:02 Pavel_SSS Цитата(SergiRF @ Dec 3 2011, 12:32) Для п... Dec 3 2011, 09:38 ivan219 Я что то так и не понял в чём проблема.
Автору нуж... Dec 3 2011, 11:27 Serg76 Цитата(ivan219 @ Dec 3 2011, 14:27) Я что... Dec 3 2011, 11:49 ivan219 Ааа извиняюсь
Тогда после фильтра каждый 15 отсчё... Dec 3 2011, 13:04 Serg76 Цитата(ivan219 @ Dec 3 2011, 17:04) Ааа и... Dec 3 2011, 13:37 sup-sup Цитата(ivan219 @ Dec 3 2011, 16:04) Ааа и... Dec 3 2011, 13:45 ivan219 Нет вы не верно поняли.
Ни до АЦП а поле. Перед пе... Dec 3 2011, 13:45 sup-sup ..сидели, пили вразнобой,
мадеру, старку, зверобой... Dec 3 2011, 13:50 Serg76 Цитата(ivan219 @ Dec 3 2011, 17:45) Ни до... Dec 3 2011, 13:51  ivan219 Цитата(Serg76 @ Dec 3 2011, 17:51) Ну тог... Dec 3 2011, 18:00   Serg76 Цитата(ivan219 @ Dec 3 2011, 22:00) Я не ... Dec 3 2011, 18:15    ivan219 Цитата(Serg76 @ Dec 3 2011, 22:15) какая ... Dec 3 2011, 18:22     sup-sup Цитата(ivan219 @ Dec 3 2011, 21:22) Конст... Dec 3 2011, 18:51      ivan219 Цитата(sup-sup @ Dec 3 2011, 22:51) ... Dec 3 2011, 19:01     Serg76 Цитата(ivan219 @ Dec 3 2011, 22:22) Конст... Dec 3 2011, 19:19      ivan219 Цитата(Serg76 @ Dec 3 2011, 23:19) вы мен... Dec 3 2011, 19:32       Serg76 Цитата(ivan219 @ Dec 3 2011, 22:32) А теп... Dec 3 2011, 19:35        ivan219 Цитата(Serg76 @ Dec 3 2011, 23:35) в ту ж... Dec 3 2011, 19:40         Serg76 Цитата(ivan219 @ Dec 3 2011, 22:40) Ну во... Dec 3 2011, 20:06          SergiRF Цитата(Serg76 @ Dec 3 2011, 23:06) Зачем ... Dec 3 2011, 20:13           Serg76 Цитата(SergiRF @ Dec 4 2011, 00:13) Уже п... Dec 3 2011, 20:16           ivan219 Цитата(SergiRF @ Dec 4 2011, 00:13) Уже п... Dec 3 2011, 20:19          ivan219 Цитата(Serg76 @ Dec 4 2011, 00:01) я все ... Dec 3 2011, 20:15           Serg76 Цитата(ivan219 @ Dec 4 2011, 00:15) Прост... Dec 3 2011, 20:22            ivan219 Цитата(Serg76 @ Dec 4 2011, 00:22) обычно... Dec 3 2011, 20:33             sup-sup Нельзя 'в общем случае' применить только о... Dec 3 2011, 20:40 Serg76 SergiRF Хотел бы еще уточнить такой момент: в изна... Dec 3 2011, 14:57 SergiRF Цитата(Serg76 @ Dec 3 2011, 17:57) SergiR... Dec 3 2011, 18:09 SergiRF Ок
Семплирую на скорости 4x 8бит.
сигнал центриро... Dec 3 2011, 19:41 ivan219 Цитата(SergiRF @ Dec 3 2011, 23:41) И ФНЧ... Dec 3 2011, 19:46 Serg76 2 ivan219 если честно, то схему рисовать лень само... Dec 3 2011, 20:42 SergiRF На счет схемы: использовать внешние аналоговые сме... Dec 3 2011, 20:44 sup-sup Цитата(SergiRF @ Dec 3 2011, 23:44) На сч... Dec 3 2011, 20:50  SergiRF Цитата(sup-sup @ Dec 3 2011, 23:50) ... Dec 3 2011, 21:14   sup-sup Цитата(SergiRF @ Dec 4 2011, 00:14) Тогда... Dec 3 2011, 21:46    SergiRF Цитата(sup-sup @ Dec 4 2011, 00:46) ... Dec 3 2011, 21:54     sup-sup Цитата(SergiRF @ Dec 4 2011, 00:54) Канал... Dec 3 2011, 21:59      SergiRF Цитата(sup-sup @ Dec 4 2011, 00:59) ... Dec 3 2011, 22:16      ivan219 Цитата(sup-sup @ Dec 4 2011, 01:59) ... Dec 3 2011, 22:22       SergiRF Цитата(ivan219 @ Dec 4 2011, 01:22) Той л... Dec 3 2011, 22:26        ivan219 Цитата(SergiRF @ Dec 4 2011, 02:26) Вы им... Dec 3 2011, 22:36       sup-sup Цитата(ivan219 @ Dec 4 2011, 01:20) Нет э... Dec 3 2011, 22:27        Serg76 Цитата(sup-sup @ Dec 4 2011, 02:27) ... Dec 3 2011, 23:00         sup-sup Цитата(Serg76 @ Dec 4 2011, 03:00) вообще... Dec 4 2011, 09:36          SergiRF Цитата(sup-sup @ Dec 4 2011, 12:36) ... Dec 4 2011, 10:19           Pavel_SSS Цитата(SergiRF @ Dec 4 2011, 14:19) Проиг... Dec 4 2011, 10:32           sup-sup Цитата(SergiRF @ Dec 4 2011, 14:19) Проиг... Dec 4 2011, 10:58            SergiRF Цитата(sup-sup @ Dec 4 2011, 13:58) ... Dec 4 2011, 11:22             sup-sup Цитата(SergiRF @ Dec 4 2011, 15:22)
Так... Dec 4 2011, 11:33          Serg76 Цитата(sup-sup @ Dec 4 2011, 12:36) ... Dec 4 2011, 11:45           sup-sup Цитата(Serg76 @ Dec 4 2011, 14:45) Так в ... Dec 4 2011, 12:35     Fast Цитата(SergiRF @ Dec 4 2011, 01:54) Канал... Dec 4 2011, 10:30 ivan219 sup-sup спасибо за разъяснение.
Только я так и не... Dec 3 2011, 20:49 Serg76 Цитата(ivan219 @ Dec 4 2011, 00:49) Serg7... Dec 3 2011, 21:03 sup-sup Цитата(ivan219 @ Dec 4 2011, 00:49) sup-s... Dec 3 2011, 21:04 ivan219 SergiRF если будете делать дециматор на КИХ фильтр... Dec 3 2011, 21:24 SergiRF Цитата(ivan219 @ Dec 4 2011, 00:24) Предл... Dec 3 2011, 21:45  ivan219 Цитата(SergiRF @ Dec 4 2011, 01:45) Вы им... Dec 3 2011, 22:15 ivan219 Если интересна тема вот скан листов из книги.
Про... Dec 3 2011, 23:06 Serg76 Цитата(ivan219 @ Dec 4 2011, 03:06) Это т... Dec 3 2011, 23:28  ivan219 Цитата(Serg76 @ Dec 4 2011, 03:28) Ага, е... Dec 3 2011, 23:39 SergiRF Всем большое спасибо. Буду пробовать на следующей ... Dec 4 2011, 09:08 RA1TEX мужики че вы тут выдумаываете все уже давно решено... Dec 8 2011, 07:26 Fast Цитата(RA1TEX @ Dec 8 2011, 11:26) OH2NLT... Dec 8 2011, 07:42 RA1TEX решил задачу выделения нужной боковой взял с квадр... Dec 8 2011, 12:33 sup-sup Цитата(RA1TEX @ Dec 8 2011, 16:33) решил ... Dec 8 2011, 16:24 Fast Цитата(RA1TEX @ Dec 8 2011, 16:33) решил ... Dec 9 2011, 18:02 RA1TEX а на 18 пике это утопия. Dec 9 2011, 09:16 RA1TEX дело не в похлопывании. пытаюсь сообразить примерн... Dec 12 2011, 05:10
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|