uriy 4 24 декабря, 2020 Опубликовано 24 декабря, 2020 · Жалоба Посоветуйте помехоустойчивый код. Имеется блок данных длиной 132 бита, его можно дополнить до 216 бит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 16 24 декабря, 2020 Опубликовано 24 декабря, 2020 · Жалоба Можно отрезать 39 бит от кода BCH (255,171,23). Если нужен жесткий декодер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба On 12/24/2020 at 9:58 AM, uriy said: Посоветуйте помехоустойчивый код. Имеется блок данных длиной 132 бита, его можно дополнить до 216 бит. Reed-solomon не подходит ? https://opencores.org/projects?expanded=Arithmetic%20core%2CECC%20core А Где в Ижевске работаете ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба On 12/24/2020 at 12:58 PM, uriy said: Посоветуйте помехоустойчивый код. Имеется блок данных длиной 132 бита, его можно дополнить до 216 бит. для начала определитесь с тем от чего вы хотите защищаться и для какой системы, а потом уже жесткий/мягкий код вам нужен, желаемый ЭВК/характерные точки по битовым ошибкам. ну а дальше кодов разных громадье) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба Да я никогда не имел дел с помехоустойчивым кодированием. Я передаю данные через радиоканал. Факт обнаружения ошибки для меня бесполезен, нужно уметь восстанавливать как можно больше бит. Работаю в частной шараге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
gosha 0 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба 30 minutes ago, uriy said: Да я никогда не имел дел с помехоустойчивым кодированием. Я передаю данные через радиоканал. Факт обнаружения ошибки для меня бесполезен, нужно уметь восстанавливать как можно больше бит. Работаю в частной шараге. В Simulink не стоит по- экспериментировать с помехозащищенным кодированием ? https://www.ijltet.org/wp-content/uploads/2014/07/10.pdf https://uk.mathworks.com/help/comm/ug/transmit-and-receive-shortened-reed-solomon-codes.html https://fr.mathworks.com/matlabcentral/fileexchange/32127-reed-solomon-coding-_16-psk-using-simulink N = 63; % Codeword length K = 51; % Message length S = 39; % Shortened message length M = 64; % Modulation order numErrors = 200; numBits = 1e7; ebnoVec = (8:13)'; [ber0,ber1] = deal(zeros(size(ebnoVec))); errorRate = comm.ErrorRate; rsEncoder = comm.RSEncoder(N,K,'BitInput',true); rsDecoder = comm.RSDecoder(N,K,'BitInput',true); rate = K/N; for k = 1:length(ebnoVec) % Convert the coded Eb/No to an SNR. Initialize the error statistics % vector. snrdB = ebnoVec(k) + 10*log10(rate) + 10*log10(log2(M)); errorStats = zeros(3,1); while errorStats(2) < numErrors && errorStats(3) < numBits % Generate binary data. txData = randi([0 1],K*log2(M),1); % Encode the data. encData = rsEncoder(txData); % Apply 64-QAM modulation. txSig = qammod(encData,M, ... 'UnitAveragePower',true,'InputType','bit'); % Pass the signal through an AWGN channel. rxSig = awgn(txSig,snrdB); % Demodulated the noisy signal. demodSig = qamdemod(rxSig,M, ... 'UnitAveragePower',true,'OutputType','bit'); % Decode the data. rxData = rsDecoder(demodSig); % Compute the error statistics. errorStats = errorRate(txData,rxData); end % Save the BER data, and reset the errorRate counter. ber0(k) = errorStats(1); reset(errorRate) end gp = rsgenpoly(N,K,[],0); rsEncoder = comm.RSEncoder(N,K,gp,S,'BitInput',true); rsDecoder = comm.RSDecoder(N,K,gp,S,'BitInput',true); rate = S/(N-(K-S)); for k = 1:length(ebnoVec) % Convert the coded Eb/No to an SNR. Initialize the error statistics % vector. snrdB = ebnoVec(k) + 10*log10(rate) + 10*log10(log2(M)); errorStats = zeros(3,1); while errorStats(2) < numErrors && errorStats(3) < numBits % Generate binary data. txData = randi([0 1],S*log2(M),1); % Encode the data. encData = rsEncoder(txData); % Apply 64-QAM modulation. txSig = qammod(encData,M, ... 'UnitAveragePower',true,'InputType','bit'); % Pass the signal through an AWGN channel. rxSig = awgn(txSig,snrdB); % Demodulated the noisy signal. demodSig = qamdemod(rxSig,M, ... 'UnitAveragePower',true,'OutputType','bit'); % Decode the data. rxData = rsDecoder(demodSig); % Compute the error statistics. errorStats = errorRate(txData,rxData); end % Save the BER data, and reset the errorRate counter. ber1(k) = errorStats(1); reset(errorRate) end berapprox = bercoding(ebnoVec,'RS','hard',N,K,'qam',64); semilogy(ebnoVec,ber0,'o-',ebnoVec,ber1,'c^-',ebnoVec,berapprox,'k--') legend('RS(63,51)','RS(51,39)','Theory') xlabel('Eb/No (dB)') ylabel('Bit Error Rate') grid psk_16_awgn_rs_simulink_2018.slx Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба Я извиняюсь, но может специалисты-кодировщики подскажут, что может быть закодировано здесь: https://electronix.ru/forum/index.php?app=forums&module=forums&controller=topic&id=159266&do=findComment&comment=1730325 Тоже думал в Anaconda (Python) поэкспериментировать с кодированием. Да что-то ничего толкового не приходит на ум. Есть числа с малой разницей в битах. То есть, непохоже на избыточное кодирование. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба 19 hours ago, uriy said: Я передаю данные через радиоканал. Факт обнаружения ошибки для меня бесполезен, нужно уметь восстанавливать как можно больше бит. Определитесь мягкое или жесткое у вас решение, есть ли стирания, какова структура ошибок: пакетные или одиночные, какая вычислительная мощность в наличии, какая пропускная способность, требуемый остаточный коэффициент ошибок. Мягкое даст +2 дБ выигрыша по ЭВК, но плохо держит пакетную ошибку, рид-соломон наоборот. Если мягкое то как вариант неплохого кода Wimax DuoBinRCS, в варианте 18 байт данных, с кодом 2/3 получите ваши 27байт. В оставшиеся биты добавите CRC. ЭВК по 1е-6 составит порядка 5.5дБ 18 hours ago, gosha said: N = 63; % Codeword length K = 51; % Message length S = 39; % Shortened message length M = 64; % Modulation order Не хорошо ему пойдет такой. у ТС 216 бит, для этого кода максимальный блок 63*6=378бит, слишком большое усечение получится. Но тем не менее, получится данных 22 символа, длина блока 36. Сможет исправить 7 символов или от 7 до 42 бит. ЭВК по 1е-6 составит порядка 3.5дБ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serhiy_UA 1 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба 2 hours ago, uriy said: Факт обнаружения ошибки для меня бесполезен, нужно уметь восстанавливать как можно больше бит. Когда-то использовал коды Хемминга. Там просто и с обнаружением, и с восстановлением. Посмотрите в интернете, может Вам подойдет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
des00 25 11 января, 2021 Опубликовано 11 января, 2021 · Жалоба 16 hours ago, Serhiy_UA said: Когда-то использовал коды Хемминга. Там просто и с обнаружением, и с восстановлением. Посмотрите в интернете, может Вам подойдет. проиграет бчх и рс коду. на 216 битах там 8 контрольных бит, восстанавливает 3 бита на блок. но намного проще, да) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 18 мая, 2021 Опубликовано 18 мая, 2021 · Жалоба Провел эксперименты с кодом рида-соломона (15, 11) с длиной символа 4 бита. Он может исправлять до 2 символов. Для меня это было эквивалентно возможности исправить любые 8 бит (2 символа по 4 бита) расположенные как угодно в блоке данных. Но оказалось даже 3 бита, расположенные в разных символах исправить этот код уже не может. У меня же данные могут испортится в любой части. Какие коды исправляют битовые ошибки, которые могут быть размазаны по всему пакету? Это код Голлея и Хемминга и может быть что-то еще? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 16 18 мая, 2021 Опубликовано 18 мая, 2021 · Жалоба 3 minutes ago, uriy said: Какие коды исправляют битовые ошибки, которые могут быть размазаны по всему пакету? Это код Голлея и Хемминга и может быть что-то еще? Уже был ответ на этот вопрос: On 12/24/2020 at 9:14 AM, blackfin said: Можно отрезать 39 бит от кода BCH (255,171,23). Если нужен жесткий декодер. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 18 мая, 2021 Опубликовано 18 мая, 2021 · Жалоба Я не могу понять что такое жесткий и мягкий декодеры. Везде где я читал пишут о сравнении мягких и жестких так как-будто все уже знают что это значит. А сколько бит может исправить код BCH (255,171,23)? И ведь пишут что БЧХ и РС это похожие коды. БЧХ умеет исправлять биты размазанные по пакету? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
blackfin 16 18 мая, 2021 Опубликовано 18 мая, 2021 · Жалоба 8 minutes ago, uriy said: А сколько бит может исправить код BCH (255,171,23)? Этот код исправляет 11 бит. 9 minutes ago, uriy said: БЧХ умеет исправлять биты размазанные по пакету? Да, умеет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
uriy 4 18 мая, 2021 Опубликовано 18 мая, 2021 · Жалоба Покажете где взять исходники? Я не могу найти. Заранее спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться