|
Программный демодулятор, помогите новичку |
|
|
|
 |
Ответов
|
Apr 27 2012, 09:49
|

Эксперт
    
Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183

|
QUOTE (Anton1990 @ Apr 26 2012, 18:51)  Собственно взялся написать программный демодулятор. Есть файл с оцифрованными квадратурами I, Q. Частота дискретизации 90 МГц. Символьная скорость сигнала 2,5 МГц, сигнал QPSK, с/ш 40 дБ. Программно реализовал примитивный передискретизатор (алгоритм билинейной интерполяции). Я так понимаю после этого на сигнальном созвездии я должен уведеть круг (не полность удалена несущая), но я вижу только подобие круга (слишком зашумлен, в том числе в центре круга). Думаю после передискретизатора необходим ФНЧ (а какой? Одинаковый в обоих каналах?). Прошу сильно не пинать за корявые вопросы? Если можно опишите поподробней что за чем делать, и что я должен видеть на сигнальном созвездии на промежуточных этапах (дабы контролировать провильность работы). Заранее спасибо за ответы. Чтобы увидеть круг нужно выборку делать в правильных точках. Другими словами нужно восстановить фазу символьной частоты (да и то,если Вам абсолютно точно известна её частота, обычно для непрерывного сигнала ещё требуется и её подстройка, но на каком-то ограниченом участке сойдут априорные 2.5). Если брать выборку где попало Вы и увидите что попало... А в вашем сообщении как-то это не прозвучало, что символьная фаза восстановлена с достаточной точностью. Только если выборку брать там где надо, появится вращающееся созвездие. После точной настройки частоты несущей - действительно вращение прекратится и получится демодулятор При моделировании на компе Вы можете просто подвигать фазу выборки и перебором выбрать тот вид где есть круг, а в центре наоборот сигнал отсутствует.
|
|
|
|
|
Apr 27 2012, 15:09
|
Частый гость
 
Группа: Участник
Сообщений: 155
Регистрация: 26-04-12
Пользователь №: 71 584

|
Цитата(fontp @ Apr 27 2012, 12:49)  Чтобы увидеть круг нужно выборку делать в правильных точках. Другими словами нужно восстановить фазу символьной частоты (да и то,если Вам абсолютно точно известна её частота, обычно для непрерывного сигнала ещё требуется и её подстройка, но на каком-то ограниченом участке сойдут априорные 2.5). Если брать выборку где попало Вы и увидите что попало... А в вашем сообщении как-то это не прозвучало, что символьная фаза восстановлена с достаточной точностью. Только если выборку брать там где надо, появится вращающееся созвездие. После точной настройки частоты несущей - действительно вращение прекратится и получится демодулятор
При моделировании на компе Вы можете просто подвигать фазу выборки и перебором выбрать тот вид где есть круг, а в центре наоборот сигнал отсутствует. Сигнал точно на нулевой частоте. Параметры сигнала точно верны. Данные обрабатываю пачками по 2048 отсчета. 2048 отсчета на 90 МГерцах, мне требуется частота 2,5 МГц, следовательно, я должен весь интревал отсчетов разбить на 2,5 * 2048/90=56,88888 отсчетов? пробую 56 или 57 отсчетов. Ни втом ни в другом случае "хорошего" круга не получаю. Так и должно быть или я круги должен видеть только после фильтрации?
|
|
|
|
|
Apr 27 2012, 17:13
|
Профессионал
    
Группа: Участник
Сообщений: 1 050
Регистрация: 4-04-07
Пользователь №: 26 775

|
Цитата(Anton1990 @ Apr 27 2012, 18:09)  Сигнал точно на нулевой частоте. Параметры сигнала точно верны. Данные обрабатываю пачками по 2048 отсчета. 2048 отсчета на 90 МГерцах, мне требуется частота 2,5 МГц, следовательно, я должен весь интревал отсчетов разбить на 2,5 * 2048/90=56,88888 отсчетов? выше Вам уже писали: ...(да и то,если Вам абсолютно точно известна её частота, обычно для непрерывного сигнала ещё требуется и её подстройка...Следовательно, кроме самого ресамплера, требуется еще и контур ФАПЧ, который будет подстраивать фазу тактов в ресамплере. И еще, Вы не должны обращать внимания как в демодулятор поступают данные, отсчетами или пачками, причем эти пачки зачастую могут быть и разной длины, алгоритм работы демодулятора строится, как правило, потактно, т.е. все решения и ошибки в системах вырабатываются тоже на каждом символьном интервале. могут быть, конечно, и исключения какие-то, но в целом это так.
Сообщение отредактировал Serg76 - Apr 27 2012, 17:14
|
|
|
|
Сообщений в этой теме
Anton1990 Программный демодулятор Apr 26 2012, 14:51 Serg76 Цитата(Anton1990 @ Apr 26 2012, 17:51) Си... Apr 26 2012, 14:58 Anton1990 Цитата(Serg76 @ Apr 26 2012, 17:58) непло... Apr 26 2012, 15:58  Serg76 Цитата(Anton1990 @ Apr 26 2012, 18:58) Пр... Apr 26 2012, 17:03 Gyga 90 на 2.5 делится на цело можно с передескритизато... Apr 27 2012, 06:20 Serg76 Цитата(Gyga @ Apr 27 2012, 09:20) 90 на 2... Apr 27 2012, 06:33  fontp QUOTE (Anton1990 @ Apr 27 2012, 19:09) Си... Apr 27 2012, 17:16 thermit Цитатаfontp:
Фильтрация должна быть просто чтобы п... Apr 27 2012, 18:02 Serg76 честно говоря, не совсем ясно что там у ТС вообще ... Apr 27 2012, 18:15 thermit ЦитатаSerg76:
фильтровать все-таки необходимо
Куд... Apr 27 2012, 18:29 stealth-coder Алгоритм программной демодуляции сигналов QPSK:
1.... Apr 30 2012, 11:01 Grizzzly Напишу здесь, чтобы новую тему не создавать. Появи... Mar 15 2015, 22:13 D.I.M.A Цитата(Grizzzly @ Mar 16 2015, 01:13) Нап... Mar 16 2015, 08:09  Grizzzly Спасибо большое за ответ! Теперь ясно, в какую... Mar 16 2015, 08:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|