ASN 0 21 августа, 2022 Опубликовано 21 августа, 2022 · Жалоба Этот механизм реализован в нескольких изделиях, продающихся более 10 лет (без подробностей - NDA). Именно для речи. Все прекрасно работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 21 августа, 2022 Опубликовано 21 августа, 2022 · Жалоба repstosw CMT2300A _ Это примитивный трансивер, проблемы интерференции на нём не решить, хоть киловатт закачивайте, селективные замирания не дадут демодулировать без ошибок с любыми кодами. Решаться оно должно как должно, на уровне модулятора-демодулятора, готовых таких чипов нет, а значит только руками теория+матлаб+FPGA. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 21 августа, 2022 Опубликовано 21 августа, 2022 (изменено) · Жалоба Тоже не пойму, зачем CRC поверх RS. Штатные декодеры RS и так отлично детектируют ошибки. Для сжатого видео надо очень маленькие BLER иметь, так что лучше на какую-то составную схему смотреть - внешний кодек дочищает за внутренним. До появления турбокодов сверточный + RS были наилучшим вариантом. Жесткий вход внутреннего декодера конечно ухудшит ситуацию, но работать все равно будет неплохо. По крайней мере, гораздо лучше, чем просто RS с сопоставимой скоростью кодирования. Изменено 21 августа, 2022 пользователем andyp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASN 0 21 августа, 2022 Опубликовано 21 августа, 2022 · Жалоба 1 час назад, andyp сказал: CRC поверх RS Зачем поверх? CRC32 - хеш-функция от данных. Данные и хеш-функция защищаются помехоустойчивым кодом: можно RS (просто), можно свёрточный код с большим K (сложно). Хоть ошибки, как указал уважаемый petrov, все равно будут, их уровень будет меньше, но вот только достаточно этого? Вот насчет каскадного кода не уверен, что для "жестких" решений даст существенный выигрыш. Уж лучше простое повторение (исходя из скорости). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 21 августа, 2022 Опубликовано 21 августа, 2022 · Жалоба CRC - обычный циклический код, предназначенный для детекции ошибок. Код Рида-Соломона сам по себе может детектировать еще очень много ошибочных паттернов, даже если его корректирующая способность используется на полную. В этих случаях декодер просто говорит, что не справился. Оценка способности кода Рида-Соломона одновременно с коррекцией детектировать ошибки (верхняя граница вероятности ошибочного детектирования) дана например здесь: 84F.PDF (nasa.gov) Вот и встает вопрос, зачем еще и CRC, если код Рида-Соломона сам по себе вполне себе с детекцией справляется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Джеймс 4 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 17 hours ago, repstosw said: Дано: поток H264 - cжатые фреймы видео. Они посылаются цифровым трансивером относительно короткими пакетами - к примеру - по 64+ байта (полезная нагрузка). Скорость потока 96 - 128 кбит/с. Модуляция - возможна 2FSK, 4FSK, MSK, GMSK, GFSK. Вопрос: какие методы защиты пакета можно использовать? Коды Рида-Соломона, Коды Хемминга, Файра, Витерби, Турбо-коды? Рида-Соломона (с Interleaving-ом конечно) P.S sorry, все ответы не читал P.P.S обратите внимание на комментарий ув. petrov Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASN 0 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 7 часов назад, andyp сказал: Вот и встает вопрос, зачем еще и CRC, если код Рида-Соломона сам по себе вполне себе с детекцией справляется. Все верно. Детектировать RS может при достаточной длине проверочных символов. И исправлять. А как обстоит дело с одновременным детектированием и исправлением? Сколько сможет детектировать дополнительные 4, а не 22 проверочных байта RS? Причем с учетом исправления. Речь о том, чтобы разделить задачи списочного декодирования и детектирования ошибки. Использование CRC более обобщенный метод. Я имел в виду возможность использования разных реализаций кодирования. Естественно, надо считать, где результат получиться лучше. P.S. Не подскажите, а есть описание быстрого алгоритма проверки по RS? Не встречал просто, может плохо искал. Более быстрый, чем простое вычисление остатка от всей последовательности (а если вариантов много, то и вычисление остатка также будет много). Мне CRC нравится за простой XOR. Есть что-то такое для RS? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 22 августа, 2022 Опубликовано 22 августа, 2022 (изменено) · Жалоба 15 hours ago, petrov said: CMT2300A Это примитивный трансивер, проблемы интерференции на нём не решить, хоть киловатт закачивайте, селективные замирания не дадут демодулировать без ошибок с любыми кодами. Решаться оно должно как должно, на уровне модулятора-демодулятора, готовых таких чипов нет, а значит только руками теория+матлаб+FPGA. А если взять LoRa трансивер ? Обнаружил, что есть модули LoRa на 62,5 кбит/c. Параметры модема: SF=5, BW=500, CR=1 как раз дают скорость 62500 бит/c. Взял видео 160x128 12.5 FPS. Пожал его H264 на CBR 56 кбит/c. Результат приложил: test.mp4 Смотрится довольно неплохо. LoRa как раз позиционируется как решение против интерференционных гадостей... Так как 62,5 кбит/c - это грязная скорость (с учётом преамбулы и CRC), но видео на 56 кбит/c + вокодер MELP 2400 + Рид-Соломон должны влезть . FEC у LoRa свой аппаратный. P.S. Кстати, есть ли LoRa модули на скорость больше чем 62,5kbps ? Или совсем чокнутая идея - поставить тактирующий кварц в 2 раза больше по частоте , и установить частоту приема-передачи 432/2 = 216 МГц. По факту будет 432 МГц, а всё что внутри будет быстрее в 2 раза, в том числе и битрейт. Кто-нибудь так делал? Изменено 22 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 4 hours ago, ASN said: P.S. Не подскажите, а есть описание быстрого алгоритма проверки по RS? Не встречал просто, может плохо искал. Более быстрый, чем простое вычисление остатка от всей последовательности (а если вариантов много, то и вычисление остатка также будет много). Мне CRC нравится за простой XOR. Есть что-то такое для RS? эмм, может не так понял, но синдром посчитать и сразу сказать были ошибки или нет) или вы имеете в виду, заранее узнать сможет или нет декодировать? ну это тоже можно по порядку синдрома оценить) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 22 августа, 2022 Опубликовано 22 августа, 2022 (изменено) · Жалоба 5 hours ago, ASN said: Все верно. Детектировать RS может при достаточной длине проверочных символов. И исправлять. А как обстоит дело с одновременным детектированием и исправлением? Сколько сможет детектировать дополнительные 4, а не 22 проверочных байта RS? С одновременным исправлением и детектированием дела обстоят так: Если добавили к информационному блоку d проверочных символов, а исправляете t ошибок, то детектироваться будут все ошибочные паттерны длиной d-t. И ещё много паттернов большей длины. Если исправляете d/2 паттернов (полная исправляющая способность кода) то уже начиная с длины d/2+1 будут детектироваться не все паттерны. Ну так и crc32 на блоках, скажем, в 400 байт будет детектировать не все ошибочные паттерны длины 4бита, что для многих является сюрпризом. Что касается сложности, то сложность расчета синдромов и так линейная от размера блока - нужно посчитать значение полинома для d элементов поля, что делается по схеме Горнера. Сложение в конечном поле - xor, умножение - по таблицам логарифмов и степеней. Изменено 22 августа, 2022 пользователем andyp Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ASN 0 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба Спасибо за развернутый ответ по обнаруживающей способности. Я имел в виду практическую статическую вероятность неправильного детектирования. То есть, если на 100 млн. пакетов проскочит один искаженный, то это допустимая вероятность. Про "заранее узнать". Есть набор возможных принятых последовательностей, которые отличаются определенными байтами, расположенными в произвольном порядке группами. Из эти групп можно сформировать отрезки. Так вот, для CRC можно подсчитать значение частичной CRC для этих отрезков и XOR'ом найти какая комбинация дает верную контрольную сумму. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
andyp 9 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 1 hour ago, ASN said: Спасибо за развернутый ответ по обнаруживающей способности. Я имел в виду практическую статическую вероятность неправильного детектирования. То есть, если на 100 млн. пакетов проскочит один искаженный, то это допустимая вероятность. В статье, что я привел, есть формула (7с). Подставляете параметры кода и получаете верхнюю границу недетектируемой ошибки при условии, что уже исправляете t ошибок 1 hour ago, ASN said: Про "заранее узнать". Есть набор возможных принятых последовательностей, которые отличаются определенными байтами, расположенными в произвольном порядке группами. Из эти групп можно сформировать отрезки. Так вот, для CRC можно подсчитать значение частичной CRC для этих отрезков и XOR'ом найти какая комбинация дает верную контрольную сумму. Ну это собственно следует из того, что CRC - линейный код и будет работать в каких-то ограниченных сценариях. Только вот про коммутативность бы не забыть: CRC(a+b) = CRC(a) + CRC(b) = CRC(b + a) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
petrov 7 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба repstosw FEC у LoRa свой аппаратный. _ Для вашей задачи FEC будет ухудшать. FEC приводит к размножению ошибок, задержке. Вот пример модема без FEC. https://www.youtube.com/watch?v=YtDcg0HWxA0 В первую очередь нужно думать про устойчивую модуляцию, устойчивые к размножению ошибок кодеки, многоканальные приём и передачу. _ LoRa как раз позиционируется как решение против интерференционных гадостей... _ Насколько она действительно устойчива к селективным замираниям точно не известно. _ Кстати, есть ли LoRa модули на скорость больше чем 62,5kbps ? _ Подобное можно сделать и вручную, модуляцию с низкой плотностью проще сделать устойчивой к селективным замираниям. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
thermit 1 22 августа, 2022 Опубликовано 22 августа, 2022 · Жалоба 5 часов назад, petrov сказал: repstosw FEC у LoRa свой аппаратный. _ Для вашей задачи FEC будет ухудшать. FEC приводит к размножению ошибок, задержке. Вот пример модема без FEC. https://www.youtube.com/watch?v=YtDcg0HWxA0 В первую очередь нужно думать про устойчивую модуляцию, устойчивые к размножению ошибок кодеки, многоканальные приём и передачу. _ LoRa как раз позиционируется как решение против интерференционных гадостей... _ Насколько она действительно устойчива к селективным замираниям точно не известно. _ Кстати, есть ли LoRa модули на скорость больше чем 62,5kbps ? _ Подобное можно сделать и вручную, модуляцию с низкой плотностью проще сделать устойчивой к селективным замираниям. Я так понял, что модем - черный ящик с побитовым вводом-выводом. Т е о модуляции и пр хрени уже подумали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
repstosw 18 23 августа, 2022 Опубликовано 23 августа, 2022 (изменено) · Жалоба 12 hours ago, petrov said: Для вашей задачи FEC будет ухудшать. FEC приводит к размножению ошибок, задержке. Серьёзно? ))) А я думал FEC делается с целью как раз устранить эти самые ошибки. 12 hours ago, petrov said: Насколько она действительно устойчива к селективным замираниям точно не известно. Зато мне точно известно, что с MELP2400, Codec2 - LoRa - отличное решение. Если сравнить её с обычной FSK, то FSK проигрывает в числе выпадания и искажения пакетов. Причём чем больше избыточности FEC (ниже коде-рейт), тем более устойчевее была связь. Плюс ещё установленные большие спред-факторы. 6 hours ago, thermit said: Я так понял, что модем - черный ящик с побитовым вводом-выводом. Т е о модуляции и пр хрени уже подумали. Выбирать не приходится. Исхожу из того, что существует на али экспресс. Кубатурить приёмник на дискретке или ПЛИС пока не могу себе позволить, слишком много времени уйдёт. А нужно решение "здесь и сейчас" и на готовых радио-модулях. ))) Основные требования к модулям: диапазон длины волны 70 см и открытая физика (возможность реализовать свои структуры пакетов и протоколы), дальность не ниже 1 км. Изменено 23 августа, 2022 пользователем repstosw Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться