Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Лидия23
0 / 0 / 0
Регистрация: 30.01.2013
Сообщений: 7
#1

Корректирующие коды - C++

30.01.2013, 19:23. Просмотров 951. Ответов 1
Метки нет (Все метки)

а). преобразовать заданное информационное слово 10101101011 из 11 двоичных цифр в двоичное слово кода Хемминга (15,11);
б). дано двоичное слово 101111001011101 кода Хемминга (15,11). Проверить, была ли допущена в этом слове одиночная ошибка. Исправить одиночную ошибку, если она есть.

Помогите, пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2013, 19:23     Корректирующие коды
Посмотрите здесь:

Коды C++ - C++
Можете написать код Марио?:help: Добавлено через 53 секунды :beer:

Циклические коды - C++
Для построение циклического кода (CRC) нужен образующий полином, который мы должны найти по таблице неприводимых многочленов(см....

короткие коды с ******** - C++
всем привет я решил создать общую тему по сокращению кодов (если у кого есть по короче по желанию напишите на форум нужно писать так №...

Коды Assembler в C/C++ - C++
Здравствуйте! Я столкнулся с проблемой при использовании кодов Assembler в C/C++. Я читал, что в C/C++ существует функция _asm, в которой...

На троичные коды - C++
Есть индикатор, отображающий запись чисел в троичной системе счисления с помощью двухцветных светодиодов. Каждый светодиод может гореть...

не разборчивые коды - C++
помогите пожалуйста ответить на вопросы? заранее спасибо. немного не понятны вопросы, особенно первые 1. (10%)Is next statement...

Коды программ ... - C++
Вопрос 1 ый , на windows 7 не ставится с++3,01 , сказали, что в 6 билдере можно где то включить , чтобы было как в c++ 3.01 И вот...

Коды исключений - C++
Какие ещё, кроме std::bad_alloc, есть коды исключений? Содержит ли исключение информацию о месте своего возникновения? А о конкретной...

Коды символов - C++
Как вам всем известно, для кодировки символов используется таблица ASCII, вот написал: #include"stdafx.h" #include"iostream" using...

Коды символов - C++
Как выводить символы зная их 8ичный код

Коды Хэмминга С++ - C++
Коды Хэмминга С++

Коды цифр - C++
Дайте пожалуйста мне коды цифр от 1-9. Вот по этой ссылке есть коды, но ни один из них не срабатывает! http://ru.wikipedia.org/wiki/ASCII...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
31.01.2013, 16:48     Корректирующие коды #2

Не по теме:

Буквально пару дней назад сдал эказмен по этому предмету
Сейчас реально некогда писать, если завтра до вечера никто не ответит, то помогу.



Добавлено через 21 час 1 минуту
Так получилось, что сегодня тоже некогда (сессия), но немного помогу.
Цитата Сообщение от Лидия23 Посмотреть сообщение
а). преобразовать заданное информационное слово 10101101011 из 11 двоичных цифр в двоичное слово кода Хемминга (15,11);
из условия имеем
n = 15 (общее число символов)
k = 11 (число информационных символов)
m = 15 - 11 = 4 (число контрольных символов).
в коде Хэмминга контрольные символы располагаются на местах http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i}, где i - целое число. Т.е. для n = 15 и m = 4 имеем контрольные символы на позициях 1, 2, 4, 8
запишем наше число 10101101011
- - 1 - 0 1 0 - 1 1 0 1 0 1 1 там, где прочерк будут контрольные символы.
составим уравнения: уравнения составляются следующим образом - берутся символы начиная с http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} по http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} через http://www.cyberforum.ru/cgi-bin/latex.cgi?{2}^{i} (т.е. с первого по одному через один, потом со второго по два через два, далее с четвертого по четыре через четыре и т.д.).
а1 + а3 + а5 + а7 + а9 = 0
а2 + а3 + а6 + а7 + а10 + а11 + а14 + а15 = 0
а4 + а5 + а6 + а7 + а12 + а13 + а14 + а15 = 0
а8 + а9 + а10 + а11 + а12 + а13 + а14 + а15 = 0
где аN - биты нашего кода, отчет ведется слева на право и начинается с одного, а "+" означает сложение по модулю два (сумма по модулю 2 - это остаток от деления на 2)
выведем уравнения кодирования (просто переносим неизвестные символы в правую часть ур-я)
а1 = а3 + а5 + а7 + а9
а2 = а3 + а6 + а7 + а10 + а11 + а14 + а15
а4 = а5 + а6 + а7 + а12 + а13 + а14 + а15
а8 = а9 + а10 + а11 + а12 + а13 + а14 + а15

высчитаем неизвестные биты
а1 = 1 + 0 + 0 + 1 = 0
а2 = 1 + 1 + 0 + 1 + 0 + 1 + 1 = 1
а4 = 0 + 1 + 0 + 1 + 0 + 1 + 1 = 0
а8 = 1 + 1 + 0 + 1 + 0 + 1 + 1 = 1
теперь можем закодировать наше сообщение, подставив вместо прочерков подсчитанные биты
0 1 1 0 0 1 0 1 1 1 0 1 0 1 1
готово!

Цитата Сообщение от Лидия23 Посмотреть сообщение
б). дано двоичное слово 101111001011101 кода Хемминга (15,11). Проверить, была ли допущена в этом слове одиночная ошибка. Исправить одиночную ошибку, если она есть.
Код Хэмминга допускает поиск двойных ошибок либо поиск и исправление одиночной ошибки. Поверим условию задания и будем искать одиночную ошибку.
тут делается все, тоже самое, что выше, т.е. нам нужны ур-я. Они у нас уже есть
а1 + а3 + а5 + а7 + а9 = 0
а2 + а3 + а6 + а7 + а10 + а11 + а14 + а15 = 0
а4 + а5 + а6 + а7 + а12 + а13 + а14 + а15 = 0
а8 + а9 + а10 + а11 + а12 + а13 + а14 + а15 = 0
имея код 1 0 1 1 1 1 0 0 1 0 1 1 1 0 1 посчитаем ур-я
0
0
0
1
имеем синдром ошибки S = 1000 (двоичное) = 8 (десятичное), т.е. имеем ошибку в 8 разряде (в коде Хэмминга синдром ошибки указывает на номер разряда с ошибкой, при этом отчет ведется с нуля справа на лево). Исправим ошибку
1 0 1 1 1 1 1 0 1 0 1 1 1 0 1
все!

Код писать некогда, но теперь имея решенное задание думаю это уже не проблема, любой с минимальными знаниями С++ сможет это сделать.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru