|
LDPC-кодирование и синхронизация. |
|
|
|
Mar 21 2018, 08:45
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Здравствуйте. Я пытаюсь создать в Simulink модель формирования и приема сигнала QAM-4 c АБГШ с применением LDPC-кодирования и синхронизации. Схему синхронизации я позаимствовал отсюда. При сравнительно небольшой фазе несущей все работает, но меня интересует ситуация, когда фаза становится сопоставимой с углами "симметрии" QAM-созвездия, то есть n*pi/2. Такую фазу становится невозможно обнаружить, и декодирование происходит с ошибками. Я пытался добавить после LDPC-кодера дифференциальный кодер, вычисляющий бегущую сумму дибитов, а на приеме перед LDPC-декодером - дифференциальный декодер, вычитающий из каждого дибита предыдущий. Но возникли две дополнительные проблемы: 1. Декодер убирает "лишнюю" фазу, но при этом невозможно узнать ее значение. 2. Декодер работает с битами, а LDPC-декодеру нужны значения правдоподобий. Как можно решить эти проблемы? Уместно ли вообще дифференциальное кодирование в такой модели, или есть альтернативный подход?
|
|
|
|
|
 |
Ответов
|
Mar 22 2018, 06:01
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата Фаза должна быть синхронизирована в демодуляторе до ближайшего крата, а неоднозначность можно убрать непосредственно в декодере либо по совместной схеме - декодер LDPC «толкает» демодулятор пока тот не залочится с точностью до фазы. Конечно, должна, и она синхронизируется. А как убирать неоднозначность в декодере? У меня возникает лишь два варианта: либо перебором, т. е. последовательно поворачивать восстановленную последовательность символов на pi/2, pi, 3*pi/2, 2*pi, и после декодирования смотреть, в каком случае наименьшее количество ошибок; либо ввести "служебный" символ в каждом фрейме, заранее известный приемной стороне, и по нему определять фазу неопределенности. Цитата Передавайте известную последовательность и по ней устраняйте фазовую неоднозначность. Последовательность и так передается - в кодированном и модулированном виде.
|
|
|
|
|
Mar 23 2018, 07:12
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 22 2018, 09:31)  Только не символ, а последовательность символов с хорошей АКФ, согласованным фильтром с пороговым устройством ищете её на приёме, смотрите в какой квадрант максимум попадает. Попробую конкретизировать: входной сигнал проходит через последовательность "умножение на опорную несущую -> согласованный фильтр -> блок совместной синхронизации", на выходе которой получается разброс точек-символов комплексной плоскости. Мы берем "опорную" последовательность символов, и "прикладывая" ее к символам в пределах каждого фрейма, находим последовательность, которая в пределах шумовой погрешности отличается от "опорной" лишь на фазовый множитель, и по нему находим фазу. Правильно ли я все написал?
|
|
|
|
|
Mar 23 2018, 10:33
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 23 2018, 08:03)  А как вы находите границы блоков вашего LDPC кода? Возможно, это упрощение, но предполагается, что сигнал приходит на прием с начала первого блока, которое запаздывает на величину групповой задержки (она известна, так как известен формирующий фильтр) и задержки по такту (которая находится с помощью синхронизации). Складывая удвоенное количество символов групповой задержки (с учетом согласованного фильтра) и задержку в 1-2 символа, вносимую в процессе синхронизации, получаем величину, на которую начало блока отстоит от начала сигнала.
|
|
|
|
|
Mar 23 2018, 12:39
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(altral @ Mar 23 2018, 13:33)  Возможно, это упрощение, но предполагается, что сигнал приходит на прием с начала первого блока, которое запаздывает на величину групповой задержки (она известна, так как известен формирующий фильтр) и задержки по такту (которая находится с помощью синхронизации). Складывая удвоенное количество символов групповой задержки (с учетом согласованного фильтра) и задержку в 1-2 символа, вносимую в процессе синхронизации, получаем величину, на которую начало блока отстоит от начала сигнала. Как вы на приёме точно, надёжно определяете начало сигнала? На пределе Шеннона, где LDPC позволяют работать.
|
|
|
|
|
Mar 26 2018, 07:35
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 23 2018, 12:39)  Как вы на приёме точно, надёжно определяете начало сигнала? На пределе Шеннона, где LDPC позволяют работать. Начало приема совпадает с началом моделирования в Simulink. А как нужно?
|
|
|
|
|
Mar 26 2018, 12:18
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 26 2018, 07:59)  Если так, то и фазу можно всегда правильную моделировать без неоднозначности. А если как в реальности, то никакого начала моделирования на приёме не известно. Как должно происходить моделирование в Simulnk, чтобы было "как в реальности"? И как в этом случае проводить прием сигнала, синхронизировать, разбивать на блоки?
|
|
|
|
|
Mar 26 2018, 14:26
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(altral @ Mar 26 2018, 15:18)  Как должно происходить моделирование в Simulnk, чтобы было "как в реальности"? И как в этом случае проводить прием сигнала, синхронизировать, разбивать на блоки? согласованный фильтр -> модуль -> пороговое устройство -> максимум Последовательности с хорошей АКФ(коды Баркера не включены): M PSL Sample Code 6 2 110100 8 2 10010111 9 2 011010111 10 2 0101100111 12 2 100101110111 14 2 01010010000011 15 2 001100000101011 16 2 0110100001110111 17 2 00111011101001011 18 2 011001000011110101 19 2 1011011101110001111 20 2 01010001100000011011 21 2 101101011101110000011 22 3 0011100110110101011111 23 3 01110001111110101001001 24 3 011001001010111111100011 25 2 1001001010100000011100111 26 3 10001110000000101011011001 27 3 010010110111011101110000111 28 2 1000111100010001000100101101 29 3 10110010010101000000011100111 30 3 100011000101010010010000001111 31 3 0101010010010011000110000001111 32 3 00000001111001011010101011001100 33 3 011001100101010100101100001111111 34 3 1100110011111111100001101001010101 35 3 00000000111100101101010101100110011 36 3 001100110001010010100000100000111110 37 3 0010101110100001001110110111110011110 38 3 00000000111100001101001010101001100110 39 3 001001100110101000010111110111100111100 40 3 0010001000100011110111000011101001011010 41 3 00011100011101010010100100000001101100100 42 3 000100010001000111101110000111010010110100 43 3 0000000010110110010101011001100111000011100 44 3 00001111111011001110110010110010101011010111 45 3 000101010111100001100110001101101101111110110 46 3 0000111100000011001111011110110110010101010110 47 3 00001101001101001111110100001010001100110001000 48 3 000101010110101101100001111001100100111111110011 49 4 0000100101010101111101100011110011110010001101111 50 4 00001001011000011000111010101111000010011001101111 51 3 000111000111111100010001100100010010101001001001011 52 4 0000100101000101101011100000111100110010010001101111 53 4 00001001100101010101001111111100011010010110001101111 54 4 000010011001101010001010000001010010110011110001101111 55 4 0000100110000100110101010100001111000110010010001101111 56 4 00001001100110111010101011001011010001111011110001101111 57 4 000010010011010001010100011101101011000100011110001101111 58 4 0000100011110011100101010001011100100111101101011001101111 59 4 00001001001110100111000000100101000101000011101110001101111 60 4 000010101011100011011111000011001001011100110010010100101111 61 4 0000001011011010001001100010011000111100111101010001101010000 62 4 00000000101101011001100110001101001100101100000111010001010000 63 4 000010011001111010110100010010001110001011001010111110001101111 64 4 0100000010010000101000101110100111100110001100100011011111000010 65 4 00000001011011100000010110000110110011011110011100101010001010000 66 4 000000011010011011010001010100011100111001111100010010101101000010 67 4 0100000010100000110110010011010101100011110100100001001110011000010 68 4 00000000100111100100100111100011011001100010101010001110101001010000 69 4 000100110111111011011000010011010100000111010000100011000111000010101
|
|
|
|
|
Mar 27 2018, 08:04
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 26 2018, 14:26)  согласованный фильтр -> модуль -> пороговое устройство -> максимум
Последовательности с хорошей АКФ(коды Баркера не включены): M PSL Sample Code Что собой представляют модуль, пороговое устройство, максимум, что такое M, PSL, Sample Code? Разъясните, если не трудно, или хотя бы укажите источники, где все это есть.
|
|
|
|
|
Mar 27 2018, 08:41
|
Гуру
     
Группа: Свой
Сообщений: 2 220
Регистрация: 21-10-04
Из: Balakhna
Пользователь №: 937

|
Цитата(altral @ Mar 27 2018, 11:04)  Что собой представляют модуль, пороговое устройство, максимум, что такое M, PSL, Sample Code? Разъясните, если не трудно, или хотя бы укажите источники, где все это есть. Модуль - модуль комплексного числа. Пороговое устройство - > порога, обнаруживаем последовательность. Максисмум - положение максимума модуля на выходе согласованного фильтра - наилучшая оценка времени прихода последовательности. М - длина. PSL - максимальный уровень боковых лепестков АКФ. Sample Code - собственно последовательность с хорошей АКФ. https://en.wikipedia.org/wiki/Barker_code
|
|
|
|
|
Mar 30 2018, 09:04
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 27 2018, 08:41)  Модуль - модуль комплексного числа. Пороговое устройство - > порога, обнаруживаем последовательность. Максисмум - положение максимума модуля на выходе согласованного фильтра - наилучшая оценка времени прихода последовательности. М - длина. PSL - максимальный уровень боковых лепестков АКФ. Sample Code - собственно последовательность с хорошей АКФ. Я попытался представить эту идею в виде условной блок-схемы (на рисунке). Для сигнала с разбросом точек считается корреляция (Correlation function) с заданной последовательностью, преобразованной из битовой формы в модулированную, затем берется модуль, находится максимум. Допустимо ли такое представление? Как должно выглядеть пороговое устройство, как оно функционирует при наличии шума?
|
|
|
|
|
Mar 30 2018, 12:33
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 30 2018, 11:10)  Какой результат моделирования? Пока отбросьте лишнее. Просто посылаем одну отдельную BPSK поледовательность баркера -> согласованный фильтр с последовательностью -> модуль -> смотрим сигнал. Упростил модель (Barker.zip), результат моделирования на рисунке. Все так?
Barker.zip ( 17.04 килобайт )
Кол-во скачиваний: 15
|
|
|
|
|
Apr 2 2018, 10:22
|
Группа: Участник
Сообщений: 13
Регистрация: 21-03-18
Пользователь №: 102 510

|
Цитата(petrov @ Mar 30 2018, 13:12)  Теперь с корнями из приподнятых косинусов, скажем 8 отсчётов на символ.
Barker_mod.rar ( 18.16 килобайт )
Кол-во скачиваний: 15
|
|
|
|
|
Apr 3 2018, 06:47
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 1-07-13
Из: СПб
Пользователь №: 77 337

|
Цитата(petrov @ Apr 2 2018, 15:42)  Вот по превышению какого-то уровня на выходе модуля определяем наличие известной последовательности а где можно почитать как этот порог задавать (вычислять) ? -спасибо
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|