|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.05.2010, 23:40 | #1 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 15
|
Кодирование. Коды Рида-Соломона
Следующий код нужно реализовать на Си, но как? помогите пожайлуста)))
Листинг 1. Исходный текст простейшего кодера Рида-Соломона /*----------------------------------------------------------------------------------------------------- ** кодировщик Рида-Соломона * ======================== * кодируемые данные передаются через массив data[i], где i=0..(k-1), а сгенерированные символы четности * заносятся в массив b[0]..b[2*t-1]. Исходные и результирующие данные должны быть представлены * в полиномиальной форме (т.е. в обычной форме машинного представления данных). * Кодирование производится с использованием сдвигового feedback-регистра, заполненного соответствующими * элементами массива g[] с порожденным полиномом внутри, процедура генерации которого уже обсуждалась * в предыдущей статье. Сгенерированное кодовое слово описывается следующей формулой: * с(x) = data(x)*x(n-k) + b(x) * * на основе исходных текстов Simon Rockliff, от 26.06.1991, распространяемых * по лицензии GNU ––––––––––––––––––––––––––––––––––– ––––––––––––––––––––––---------------------------------------------*/ encode_rs() { int i, j; int feedback; // инициализируем поле бит четности нулями for (i = 0; i < n - k; i++) b[i] = 0; // обрабатываем все символы исходных данных справа налево for (i = k - 1; i >= 0; i--) { // готовим (data[i] + b[n – k –1]) к умножению на g[i], т.е. складываем очередной «захваченный» // символ исходных данных с младшим символом битов четности (соответствующего «регистру» b2t-1, // см. рис. 2) и переводим его в индексную форму, сохраняя результат в регистре feedback, // как мы уже говорили, сумма двух индексов есть произведение полиномов feedback = index_of[data[i] ^ b[n – k - 1]]; // есть еще символы для обработки? if (feedback != -1) { // осуществляем сдвиг цепи bx-регистров for (j=n-k-1; j>0; j--) // если текущий коэффициент g – это действительный (т.е. ненулевой коэффициент, // то умножаем feedback на соответствующий g-коэффициент и складываем его // со следующим элементом цепочки if (g[j]!=-1) ї b[j]=b[j-1]^alpha_to[(g[j]+feedback)%n]; else // если текущий коэффициент g – это нулевой коэффициент, выполняем один лишь // сдвиг без умножения, перемещая символ из одного m-регистра в другой b[j] = b[j-1]; // закольцовываем выходящий символ в крайний левый b0-регистр b[0] = alpha_to[(g[0]+feedback)%n]; } else { // деление завершено, осуществляем последний сдвиг регистра, на выходе регистра // будет частное, которое теряется, а в самом регистре – искомый остаток for (j = n-k-1; j>0; j--) b[j] = b[j-1] ; b[0] = 0; } } } |
14.05.2010, 08:19 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Не заметил здесь ничего не си-специфичного.
Думаю, на вопрос "как" можно ответить - удалить комментарии и оставить все остальное.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
14.05.2010, 08:44 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Извините з анескромный вопрос: а это на чем код?
П.С. Реализуйте табличный метод... он прост как два байта. |
14.05.2010, 11:17 | #4 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
Цитата:
|
|
14.05.2010, 11:50 | #5 |
Пользователь
Регистрация: 13.05.2010
Сообщений: 15
|
код я скопировала из книжки))) Там написано что его мож
нореализовать на Си. Ноя не знаю где его там писать. Может в консоле или ...... ну не знаю. Первый раз сталкиваюся из Си. Извините за вопрос, а что такое табличный метод???? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кодировщик Рида-Соломона | san4esf | Помощь студентам | 2 | 15.11.2009 18:25 |
Кодирование | asil | Помощь студентам | 1 | 02.05.2009 20:48 |
Кодирование. | Blizzz | Общие вопросы Delphi | 5 | 19.01.2009 18:28 |
Кодирование | Mss_Smith | Помощь студентам | 3 | 17.04.2007 14:46 |
кодирование информации. | Alar | Общие вопросы Delphi | 1 | 11.02.2007 19:26 |