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

    

soldat_shveyk

Свой
  • Публикаций

    454
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о soldat_shveyk

  • Звание
    Местный
  • День рождения 21.06.1981

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    С-Петербург

Посетители профиля

4 084 просмотра профиля
  1. Я делал не перебор максимального правдоподобия, а перебор 4096 кодов Голея после жесткого решения. Выбирал результат по минимуму sum(bitxor()). На полноценное максимальное правдоподобие ресурсы решили не тратить, да и задержка приличная получается.
  2. Пробовал, Чейз дает меньший BER. Да и 4096 IF-ов в коде прямого перебора тормозят процесс. Спасибо.
  3. Продолжу тему. Понаблюдал, как работает Чейз при малом SNR (0..2 дБ). Иногда получается так, что среди 16 гипотез кода есть правильная, но у нее не минимальная метрика, и соответственно она отбрасывается, а выбирается ошибочная. Посему вопрос - всегда ли правильный код будет иметь минимальную метрику? Я использую код Голея 24,12 с кодовым расстоянием 8. На приеме беру 16 мягких решений. Пусть для простоты будет BPSK, мягкие решения = сами символы. Выбираю 4 бита с минимальной достоверностью (abs() от принятых символов) и путем перебора их позиций порождаю 16 гипотез кода, которые декодирую и выбираю код с минимальной метрикой.
  4. Кнопка антивандальная

    Чип и Дип - https://www.chipdip.ru/product/pbs28b
  5. Сделал мягкий декодер Чейза, BER стал лучше на порядок в диапазоне SNR 3..6 дБ. Всем спасибо за помощь!
  6. thermit, спасибо, попробую.
  7. Хм.. Странно. Я так и делал. При совпадающих пакетах метрика будет равна 12 + j0. При не совпадающих +/-4 +/- j*4, так как кодовое расстояние равно 8. В процессе вычисления метрик делал выбор максимума. Но на тестах по BER получил результат, аналогичный жесткому декодированию. В чем подвох? Отдельный расчет корреляционной метрики для комплексных отсчетов при совпадении кодовых слов: % 24-bit Data Packet txb = randi([0 1], 1, 24); % QPSK Modulator tx_signal = zeros(1, 12); for k = 1:12 dibit = [txb(2*k - 1) txb(2*k)]; tx_signal(k) = sqrt(2) / 2 * ((dibit(1) * 2 - 1) + 1j * (dibit(2) * 2 - 1)); end % Rx packet = Tx packet + white noise rx_signal = awgn(tx_signal, 30, 'measured'); % Calculation of the correlation metric for complex samples metric = abs(sum(conj(rx_signal) .* tx_signal))
  8. Да я вроде так и делал. Но получилось так же , как и при жестком демодуляторе. А как правильно считать корреляционную метрику? Например для пакета из четырех бит данных [d0 d1 d2 d3] я получил два комплексных символа (a1+jb1) и (a2+jb2). Что дальше?
  9. Если я правильно понял, то таким образом можно 12 комплексных отсчетов преобразовать в 24 вещественных для реализации максимального правдоподобия?
  10. Мягкий демодулятор у меня есть. После установления синхронизации, я получаю по 12 комплексных отсчетов - символов, в которых лежит 24-битный код Голея. Сейчас я каждый символ жестко интерпретирую в два бита [00], [01]... [11] и получаю 24 бита, которые идут на декодер. Чтобы перейти на мягкое решение, я должен каждый комплексный отсчет символа интерпретировать на некое малоразрядное число, и подавать эти числа на алгоритм Чейза? Понятно. Это только для BPSK будет работать. А как тогда для QPSK реализовать максимальное правдоподобие?
  11. У меня QPSK, и один код длиной 24 имеет укладывается 12 символов - комплексных отсчетов. Я попробовал сделать 4096 dot product с выбором максимума на модели в матлабе - получил такой же результат, как и в моем декодере с жестким решением. Это максимальное правдоподобие или нет? Я брал принятые 12 символов QPSK и делал скалярное произведение с каждым из 4096 кодом, который тоже был модулирован QPSK. B процессе умножения выбирал код с максимальным результатом dot.
  12. Спасибо, скачал, изучаю. Промоделировал свой декодер в мталабе, получил следующие цифры: SNR 6 dB, BER = 2.5e-4 SNR 5 dB, BER = 1.7e-3 SNR 4 dB, BER = 1.1e-2 SNR 3 dB, BER = 2.4e-2 SNR 2 dB, BER = 5.7e-2 SNR 1 dB, BER = 1.1e-1 SNR 0 dB, BER = 1.4e-1 По сравнению с этим, алгоритм Чейза 1 и 2 дает неплохой профит. Попробую разобраться с реализацией.
  13. Serg76, спасибо огромное!!! Сейчас сравню со своим декодером при SNR 6дБ. А как Вы это посчитали? Ткните в источник, если не трудно.
  14. Вот именно это и хотелось бы сделать, чтобы сравнить с тем, что сейчас работает. Но для этого надо написать модель мягкого декодера. Написать не проблема, но алгоритм мне пока что не известен. За ссылки спасибо, попробую скачать. А может существуют хотя бы приблизительные оценки прироста SNR для мягкого декодирования блочного кода? Что-то типа для блочного кода 1/2 длиной 24 бита мягкое декодирование обеспечит выигрыш 2 дБ (ли 3, или 0.2). Было бы интересно.
  15. Доброго дня! Есть радиоканал с QPSK модуляцией, в котором использую расширенный код Голея длиной (24, 12, 8). Сейчас принимаю жесткое решение и декодирую Голея через перебор всех 4096 комбинаций с выбором по минимуму ошибок. Работает, исправляет до 4-х ошибок. Есть время и желание еще улучшить прием за счет мягкого декодирования. Что это может дать в конкретных цифрах, будет ли стоить игра свеч? И возможно ли в принципе мягкое декодирование для кода Голея?