Рефлектовани бинарни код, такође познат као Грејев код по Френку Греју, је систем бинарних цифара у којем се две узастопне вредности разликују у само једном биту (Бинарне цифре ). Рефлектовани бинарни код је првобитно пројектован да спречи лажни излаз из електромеханичких прекидача. Данас, Грејеви кодови се широко користе да олакшају исправљање грешака у дигиталним комуникацијама, као што су дигиталне земаљске телевизије и неки кабловски системи.
Име мини|Грејев патент уводи термин " оглед бинарног кода" Френк Греј, научник из Белових лабораторија, увео је термин рефлектовани бинарни код у његовој општепознатој апликацији из 1947. године, тврдећи да је код имао "још нема име"F. Gray. Он је извео име из чињенице да је "могуће изградити од конвенционалних бинарних кодова као врста рефлексије процеса".
Код је касније назван по Греју од стране других који су га користили. Две различите 1953 патент апликације користе Грејев код као алтернативно име за "рефлектовани бинарни код";J. Breckman.E. A. Ragland et al. један од ових такође наводи "минимална грешка кода" и "циклична пермутација кода" међу именима . 1954 патент апликација се односи на " звоно телефона Грејевог кода ".S. Reiner et al.
Мотивација Многи уређаји указују на позицију отварања и затварања прекидача. Ако тај уређај користи природне бинарне кодове, позиције 3 и 4 су једна до друге али сва три бита бинарне представе се разликују: ДецималниБинарни ... ... 3 011 4 100 ... ... Проблем са природним бинарним кодовима је да ће, са физичким, механичким прекидачима, врло ретко да промене стање тачно синхронизовано. На прелазу између два стања, приказаним изнад, сва три прекидача мењају стање. У кратком периоду док се сви мењају, прекидачи ће прочитати неку лажну позицију. Чак и без прекидача, транзиција може да изгледа 011 — 001 — 101 — 100. Када су прекидачи у позицији 001, посматрач не може рећи да ли је стварна позиција 001, или је транзиционо стање између друге две позиције. Ако се извршен рад напаја унутар секвенцијалног система, вероватно преко комбинационе логике, онда ће секвенцијални систем да складишти лажну вредност.
Рефлектовани бинарни код решава овај проблем тако што ће променити само један прекидач у једном тренутку, тако да никада не постоји двосмисленост позиције, ДецималниБинарниГрејГреј као Децимални 0 000 000 0 1 001 001 1 2 010 011 3 3 011 010 2 4 100 110 6 5 101 111 7 6 110 101 5 7 111 100 4 Примећује се да стање 7 може да пређе у стање 0 са само једном променом прекидача. То се назива "циклично" власништво Грејевог кода. У стандардном Грејевом кодирању најмањи значајни бит прати шаблон који се понавља искључено 2 укључено, 2 искључено (...11001100...); следећа цифра образац искључено 4 укључено, 4 искључено и тако даље.
Више формално, Грејев код је код преписан свакоме од скупа целих бројева, или сваком члану циркуларне листе, реч симбола као што свака два суседна кода речи припадају једном симболу. Ови кодови су такође познати као једно-раздељински кодови, рефлектујући Хамингово растојање од 1 између суседних кодова. Тамо може бити више од једног Грејевог кода за дату дужину речи, али термин је прво употребљен на одређени бинарни код за не-негативне целе бројеве, Бинарно рефлектујући Грејев код, или БРГК, тробитна верзија која је приказана изнад.
Историја и практична апликација Рефлективни бинарни код је био примењен на математичку слагалицу пре него што је постао познат инжењерима. Француски инжењер Емил Баудот је користио Грејев код у телеграфији 1878. Он је примио француски орден Легију части за свој рад. Грејев код се понекад преписује неправилно,,Knuth, Donald E. "Generating all n-tuples."за Елишу Греј ( на принципима модулације импулсног кода, К. В. Катермол, на пример).
Франк Греј, који је постао познат за стварање сигналног метода који се користи за компатибилни телевизор у боји, измислио је метод да претвори аналогне сигнале у рефлективне групе бинарних кодова користећи апарат заснован на електронским цевима. Метода и апарати су били патентирани 1953 и име Греј је остало у кодовима. "Импулсна кодна модулациона цев", направа коју је Греј патентирао је направљена од стране Рејмонда Б. Сеарса од Бела Лабса, радећи са Грејем и Вилијамом М. Гудолом, који је дао заслуге Греју за идеју рефлективног бинарног кода.
центар|мини|500x500px|Део насловне стране Грејевог патента, показује ИКМ цев са рефлектујућим бинарним кодовима на тањиру. Употреба његових истоимених кодова за које је Греј највише био заинтересован била је да смањи ефекат грешке у разговору аналогних сигнала до дигитализације; његови кодови се још увек користе данас за ову сврху и друге.
Позициони кодери мини|Ротациони кодер за угао-мерећи уређаје означене у 3- бита- рефлектујућег бинарног кода (БРГЦ) мини|Грејев код апсолутног ротационог кодера са 13 колосека. На врху се може видети кућиште, диск прекида и извор светлости; на дну се може видети сензори и компоненте подршке. Грејев код се користи у позицији кодера (Линеарног кодера и ротационог кодера), у жељи да се једноставно бинарно кодира. Овим се избегава могућност да, када се неколико битова мења у бинарној репрезентацији под углом, а процена ће резултирати од неког од битова промене пре других. Првобитно, образац је био електрично проводљив, подржан (у ротационом кодеру) изолационим диском. Свака стаза је имала свој стационарни метални контакт са опругом; још један контакт који је направио везу са узроком. Тај заједнички контакт је повезан узроком на било који од контаката стазе на одмору проводног обрасца. Међутим, клизни контакти се похабају и потребно им је одржавање, које фаворизује оптичке кодере.
Без обзира на усклађивању контаката, и тачност узрока, природни-бинарни код ће имати грешке на одређеним позицијама диска, јер је немогуће да се сви битови промене у исто време док се диск окреће. Исто важи и за оптичке кодере; Прелази између нетранспарентних и транспарентних се не могу истовремено одвијати за одређене тачне позиције. Ротациони кодери користе цикличну природу Грејевог кода, јер узастопни положаји секвенце се разликују за само један бит. То значи да, за транзицију из стања А у стање B, временски несклад може само да утиче када се А → Б транзиција јавља, пре него убацивањем једног или више (до n - 1 за N-битну кодну реч) лажну међу стањима, како би дошла ако се користи стандардни бинарни код.
Ханојска кула Бинарни огледи Грејевог кода могу се користити као водич решења за проблем Ханојске куле, као и класичне кинеске слагалице прстенова, секвенцијалне механичке слагалице механизма.Такође формира Хамилтонов циклус на хиперкубу, где се сваки бит види као једна димензија.
Генетски алгоритми Због својства Хамингове удаљености од Грејевог кода, они се понекад користе у генетским алгоритмима. Они су веома корисни у овој области, јер мутације у коду омогућавају углавном постепене промене, али повремено промена једног бита може изазвати велики скок и довести до нових својстава.
Карноова карта Грејеви кодови се такође користе у означавању оса Карноове карте.
Исправка грешке У модерној дигиталној комуникацији, Грејеви кодови играју важну улогу у исправљању грешке. На пример, у дигиталним модулационим шемама као што је КАМ где се подаци обично преноси у симболима од 4 бита или више, сигнали констелациског дијаграма су уређени тако да се обрасци битова преносе од сазвежђа суседних тачака разликујући се само за један бит. Комбиновањем са раном корекцијом грешака способном да исправља једнобитне грешке, могуће је да пријемник исправи све грешке преноса које узрокују да сазвежђа указују на одступања у области суседне тачке. То чини преносни систем мање подложан буком
Комуникација између домена сата Дигитални Логички дизајнери користе Грејев код интензивно за доношење мулти-битних броја информација између синхрони логике која послује на различитим часовним фреквенцијама. Логика се сматра да послује у различитим "доменима сата". То је основа за пројектовање великих чипова који раде са много различитих фреквенција часовника.
Бројачи Грејевог кода и аритметика Типична употреба бројача Грејевог кода гради ПУПВ (први-у, први-ван) међумеморију податка, који читају и пишу портове који постоје у различитим доменима сата. Улазни и излазни бројачи унутар тих дуалних портова ПУПВ су често чувани користећи Грејев код за спречавање неважећих прелазних стања од заробљавања, када датотека прелази домен сата."Synchronization in Digital Logic Circuits by Ryan Donohue Ажурирани читани и писани показивачи треба да буду усвојени од домена сата када се мењају, да би могли да прате ПУПВ празан и пуноправни статус у свакој области. Сваки бит од показивача је одабран не-детерминистички за тај трансфер домена сата. Дакле, за сваки бит, било стара вредност или нова вредност се пропагира. Дакле, ако више од једног бит у мулти-битни показивач се мења у тренутку узорковања, као "погрешна" бинарна вредност (ни нова ни стара) може бити пропагирана. Гарантујући само један бит може да се мења, Грејев код гарантује да једине могуће одобрене вредности су нове или старе више-битне вредности. Типични Грејеви стартне две дужине се користе.
Понекад дигитални аутобуси у електронским системима се користе за пренос количина које се само могу повећати или смањити један по један, на пример, излаз за догађај који се догодио између домена сата или на дигитално-аналогном конвертору. Предност Грејевог кода у овим апликацијама је да разлике у пропагирању одлагања многих проводника који представљају делове кода не могу изазвати примљене вредности пролазећи кроз стања која су ван Грејевих секвенци. Ово је слично ка предностима Грејевог кода у изградњи механичких кодера, међутим, извор Грејевог кода је електронски бројач у овом случају. Сам бројач мора рачунати у Грејевом код, или ако је у супротности у бинарном онда излазна вредност од бројача мора бити измерена након што је претворена у Грејев кода, јер када је вредност претворена из бинарног у Грејев код, могуће је да ће разлике у времену доласка бинарних битова података у бинарну Грејеву конверзију кола значити да је број могао укратко проћи кроз стања која су дивља у редоследу. Додавање регистара сата после склопа који претвара број вредност Грејевог кода може увести сат циклуса кашњења, па рачунање директно у Грејевом коду може бити корисно. Бројач Грејевог кода је патентиран 1962 УС3020481 и било је много других од тад. У новије време бројач сивог кода може бити имплементиран као стање машине у Верлиогу. Да би се спровео следећи број вредности неопходно је да се користи комбинована логика која ће прирасти тренутну бројевну вредност која се складишти у Грејевом коду. Вероватно најочигледнији начин да повећате цифру Грејевог кода је да га претворити у обичан бинарни код, додајте један томе са стандардним бинарним додатком, а затим претворите резултат назад у Грејев код. О овом приступу је разговарано у новинама 1996. годинеMehta, H.; Owens, R.M. & Irwin, M.J. (1996), Some issues in gray code addressing, in the Proceedings of the 6th Great Lakes Symposium on VLSI (GLSVLSI 96), IEEE Computer Society. pp. 178., а потом је и патентирано од стране неког другог 1998 УС5754614 . Друге методе бројање у Грејевом коду се расправљају у извештају Р. В. Дорана, укључујући и узимање излаза из првих реза флип флопса у бинарном бројачу таласања .The Gray Code by R. W. Doran
Можда је најчешћи електронски бројач са "само једним промена бита у времену " имовина је Џонсонов бројач .
Конструкција н-битног Грејевог кода десно|оквир|Првих неколико корака рефлектовања-и-префикса методе десно|мини|250x250px|Пермутација 4-битног Грејевог кода Бинарне рефлексије Грејевог кода листа за н битова може бити рекурзивно генерисана из листе за н-1 битова по рефлектовању листе ( тј листање ставки обрнутим редоследом ), надовезивањем оригиналних листи са обрнуте листе, префикси уноса у оригинални списак са бинарном цифром 0, а затим фиксирање ставке у рефлектујућу листу са бинарном цифром1. На пример, генерисањем н=3 листе од н=2 листе :