Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
Ищу программиста с++ |
Философия, технологии, алгоритмы! |
|
Опции темы |
18.04.2015, 20:38 | #1 |
Форумец
Сообщений: 7
Регистрация: 18.04.2015
Возраст: 33
Не в сети |
Ищу программиста с++
Здравствуйте. У меня закоден однопороговый алгоритм. Как из него сделать многопороговый. Многопороговый алгоритм - это когда от итерации к итерации этот порог динамически меняется. Только вот на какие именно значения он меняется. Помогите пожалуйста!
+ еще надо переделать на мягкие решения. void bitflip() { // BIT-FLIP decoding int i,j,l,iter; int delt,m,aux; int all_zero; // Flag for syndrome testing int count; // ------------------- // INITIALIZATION STEP // ------------------- // Prior values (used to be probabilities in soft-decision) for (i=0;i<N;i++) { decoded[i] = hard[i]; } iter = 0; // Counter of iterations do { // --------------------------------------- // HORIZONTAL STEP = BOTTOM-UP PROPAGATION // --------------------------------------- // // Run through the checks m and compute, for each n in N(m) the // probabilitiy of a check symbol when code symbol is 0 (or 1) // given that the other code symbols have values 0, 1 // // Pearl: // Node x_m computes new "lambda" messages to be sent to its parents // u_1, u_2, ..., u_K // Flag to determine if syndrome is all zero all_zero = 1; for (i=0; i<M; i++) { delt = 0; for (j=0; j<check_node[i].size; j++) { aux = check_node[i].index[j]; delt ^= decoded[aux-1]; } check_node[i].syndrome = delt; // Check if anyone of the syndromes is not zero if (delt) all_zero = 0; } // CONTINUE IF A CODEWORD HAS NOT BEEN FOUND if (!all_zero) { // ------------------------------------ // VERTICAL STEP = TOP-DOWN PROPAGATION // ------------------------------------ // // MacKay: // Take the computed values of rm0, rm1 and update the values of // the probabilities qm0, qm1 // // Pearl: // Each node u_l computes new "pi" messages to be send to its // children x_1, x_2, ..., x_J for (i=0; i<N; i++) { count = 0; for (j=0; j<code_node[i].size; j++) { aux = code_node[i].index[j]-1; // Compute index "m" of message from children m = 0; while ( ( (check_node[aux].index[m]-1) != i ) && ( m < check_node[aux].size ) ) m++; if (check_node[aux].syndrome) count++; } // If more that 1/2 checks are unsatisfied, FLIP the BIT if (count > threshold) // if (count > (code_node[i].size-1)/2 ) { decoded[i] ^= 1; } } } // Increment the number of iterations, and check if maximum reached iter++; } while (iter < max_iter); }. Последний раз редактировалось ivan199; 19.04.2015 в 15:55. |
19.04.2015, 18:00 | #3 |
Форумец
Сообщений: 7
Регистрация: 18.04.2015
Возраст: 33
Не в сети |
|
19.04.2015, 22:26 | #5 |
highly mean
Сообщений: 1,128
Регистрация: 26.05.2011
Возраст: 35
Не в сети |
Судя по комментариям, это bit-flipping hard-decision decoding algorithm со страницы http://www.the-art-of-ecc.com/8_Iterative/index.html (ну или модификация этого кода).
|
21.04.2015, 20:10 | #8 |
Форумец
Сообщений: 7
Регистрация: 18.04.2015
Возраст: 33
Не в сети |
Bit-flipping1_10 - однопороговый, он же "с инвертированием бита"
log1+encoder_10 - логарифмическая версия алгоритма распространения доверия. BP2_10 - алг. распр. доверия (от англ. Belief Propagation) В ссылках все это есть: http://rghost.ru/6lwfsJlYx http://rghost.ru/7NvYmlQfF Нужно однопороговый переделать в многопороговый, а потом его соединить с алгоритмом распространения доверия. чтоб декодер при эквивалентной длине лучше исправлял ошибки |
24.04.2015, 23:24 | #12 | ||
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
Цитата:
Комментарий к книге с сайта ozon.ru Цитата:
Золотарёв В.В.,Овечкин Г.В. Помехоустойчивое кодирование.Методы и алгоритмы Там твой метод описан |
||
24.04.2015, 23:56 | #13 |
Форумец
Сообщений: 7
Регистрация: 18.04.2015
Возраст: 33
Не в сети |
Есть у меня и книга Золотарёва и Морелоса Сарагосы. http://cyberleninka.ru/article/n/mno...ok-na-chetnost
в ссылке описан многопороговый алгоритм и вот его надо воспроизвести в майкрософт вижуал с++ 2010 |
25.04.2015, 00:56 | #16 |
Registered User
Сообщений: 1,114
Регистрация: 23.06.2007
Возраст: 56
Не в сети |
|