Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak zaprojektowac dekoder kodu BCH? - pomocy

shekt 30 Mar 2003 21:12 5912 31
  • #1 30 Mar 2003 21:12
    shekt
    Poziom 11  

    aby zaliczyc semestr z pewnego przedmiotu musze zaprojektowac dekoder kodu BCH(14,6). o kodach BCH wiem tyle, ze sa :D , a na powaznie: opis matematyczny jaki serwuja w ksiazkach ma sie nijak do praktyki. jak zaprojektowac dekoder kodu o wyzej zadanych parametrach? jak w ogole sie do tego zabrac?

    prosze wszystkich ludzi dobrej woli o HELP!!! :)

    0 29
  • Relpol
  • #2 30 Mar 2003 21:20
    elektryk
    Poziom 42  

    Co to za kod BCH? Zarzuć definicje to się pomyśli jak to się je.

    0
  • #3 30 Mar 2003 23:11
    smiga

    Poziom 12  

    więcej teorii proszę ...
    ...BCH to może binarny na szesnastkowy... ale czemu 14,6 - na 14 bitach zapiszemy 2 cyfry z kawalkiem kodu szesnastkowego więc co znaczy 6
    ... chyba moje rozumowanie jest błędne - podaj więcej danych to coś wymyślimy

    0
  • Relpol
  • #4 30 Mar 2003 23:21
    tolo
    Poziom 33  

    Moim zdanie to chodź o jakiś kod nadmiarowy, tylko jakimi równaniami jest opisany? :roll:

    0
  • #5 31 Mar 2003 07:44
    shekt
    Poziom 11  

    dzieki wam za odpowiedzi.
    spiesze z wyjasnieniami: BCH(n,k) - jest to kod binarny, n = ilosc wszystkich bitow w kodzie, k= ilosc bitow informacyjnych. reszta to nadmiarowe, czylli protekcyjne (charakteryzujace kod i nadajace mu sens). tak wiec BCH(14,6) = jest to kod 14 bitowy, ktory zawiera informacje na 6 bitach.

    jaki jest algorytm tworzenia takiego kodu? i tu jest problem. w literaturze jest on "wspaniale" opisany. matematycznie! jakies macierze, wielomiany generujace, i inne wynalazki, ale w zadnej z ksiazek nie ma ani jednego praktycznego przykladu jak na podstawie tych wzorkow wygenerowac kod. nic, co pozwoliloby spojrzec na problem technicznym okiem :(

    jesli, ktos z was ma ochote sie troszke pobawic, a jednoczesnie pomoc, bardzo chetnie zeskanuje czesc tej literatury i przesle na skrzynke. :wink:

    0
  • #7 31 Mar 2003 11:52
    elektryk
    Poziom 42  

    Wrzuć lepiej na forum. Czy to jest kod Hamminga (do tego gdzies mam teorie)?

    0
  • #8 31 Mar 2003 11:55
    tolo
    Poziom 33  

    Jak to jest hamming to mogę to zrobić.

    0
  • #9 31 Mar 2003 12:08
    Tdv
    Poziom 33  

    Hehehehe, Bo te kody tak się właśnie generuje macierzami i wielomianami;-).
    Jest taki przedmiot na Politechnice Śląskiej (elektronika) Teoria informacji i kodowania. Porąbane jak stado krzeseł pędzących przez pustynie.
    Współczucie...
    PS. Były tak jakieś rzeczy typu Hamming, Hanning, źródła ergodyczne i tym podobne krasnoludki....

    0
  • #10 31 Mar 2003 12:12
    elektryk
    Poziom 42  

    :arrow: TdV wielomianami to się generuje kody kontrolne, natomiast kody korekcyjne generuje się zwykłymi funkcjami XOR (trzeba wiedzieć tylko który bit z którym)

    0
  • #11 31 Mar 2003 12:14
    Tdv
    Poziom 33  

    XORami to się generuje sprzętowo kody CRC, a to nie wykorzystuje wszystkich wesołych pomysłów o ile dobrze pamiętam....

    0
  • #12 31 Mar 2003 12:21
    elektryk
    Poziom 42  

    CRC (kod kontrolny) to generuje się z wielomianów, a kod korekcyjny (np Hamminga) generuje się na XOR

    0
  • #13 31 Mar 2003 12:38
    smiga

    Poziom 12  

    przeslij na skrzynke lub wrzuc na forum - chetnie sie temu przygladne

    0
  • #14 31 Mar 2003 13:25
    Tdv
    Poziom 33  

    Być może... Nigdy mnie to szczególnie nie wciągało, tylko tak mi się coś po głowie obija, że z XORów się bity parzystości wyciągało (to akurat jest logiczne i chyba bezdyskusyjne, że się da (wszstkie bity xorować;-)). O ile dobrze pamiętam to inny sposób opisu rejestrów liniowych (te właśnie z XORami) polega włanie na wielomianach prostych... Ale może poprostu mieszam kilka rzeczy...

    0
  • #15 01 Kwi 2003 09:51
    shekt
    Poziom 11  

    a oto kawalek teorii z ksiazki Władysława Mochnackiego, "Kody korekcyjne i kryptografia".

    moze ktos z was bedzie sie bardziej orientowal w tym niz ja. z gory dzieki za help. :)

    0
    Załączniki:
  • #16 01 Kwi 2003 19:24
    elektryk
    Poziom 42  

    Cytuje:
    "Do kodowanie i dekodowania kodów.................. jednak uproszczony algorytm dekodowania podany w p. 2.4.4 nie zapewnia wykorzystania pełnych zdolności korekcyjnych [...]. Kody BCH mają własny algorytm dekodowania [...]. Algorytm ten jest jednak bardziej złożony. Jego opis można znaleźć w [2.4, 2.5]."
    Czy możesz doskanować wcześniejsze rozdziały od 2.4.4?
    Czy Ty masz zaprojektować koder czy dekoder i jeśli dekoder to czy ma on sprawdzać czy kod jest uszkodzony, czy naprawiać tylko cześć błędów czy wszystkie?
    Napisz co to za przedmiot bo mnie się wydaje że to całkiem zgrabny temat na prace dyplomową.

    0
  • #17 01 Kwi 2003 19:41
    tolo
    Poziom 33  

    Ja na dyplomówkę robię coś podobnego tylko mam wykonać praktycznie system przesyłania informacji z rozszerzonym kodem Haminga(8,4) więc jestem z tym na bieżąco i też mi się wydaje że twój problem to praca dyplomowa.

    0
  • #18 01 Kwi 2003 23:32
    Tremolo
    Poziom 43  

    czemu ja w niby dobrym technikum nie miałem nic na ten temat. hmm. Ale takie pytanko mam na jaki kod ma zdekodować taki dekoder? na binarny naturalny?

    Ja bym zaproponował być może rozwiązanie mikroprocesorowe :)

    http://glossary.its.bldrdoc.gov/fs-1037/dir-004/_0563.htm
    http://www.chipcenter.com/eexpert/downloads/hwallace/hwallace059.pdf
    http://www.google.pl/search?q=cache:z1qwHCSa-...na/Lab_3.doc+kod+BCH&hl=pl&ie=UTF-8&inlang=pl
    http://www.google.pl/search?q=cache:moz-Zuo41...na/Lab_4.doc+kod+BCH&hl=pl&ie=UTF-8&inlang=pl

    ale możesz zawsze przerobić telefon komórkowy tam są stosowane kody BCH

    0
  • #19 01 Kwi 2003 23:39
    shekt
    Poziom 11  

    Nie, ten temat to nie jest praca dyplomowa lecz seminarium z kodowania. W praktyce wyglada to tak, ze na pierwszych zajciach prowadzacy rozdal tematy "referatow", a na ostatnich bedziemy je referowac. Oczywiscie wczesniej trzeba dostarczyc prace w postaci pisemnej, najlepiej do 30 stron. W miedzyczasie nie ma zadnych zajec - ot tak: "robta co chceta".

    elektryk: doskanuje reszte, niestety najwczesniej jutro (t.j. 2 kwi). mam zaprojektowac dekoder. nie ma tu zadnych dodatkowych wytycznych, tzn. pewnie im bardziej funkcjonalny (skomplikowany) uklad tym wyzsze beda notowania. mysle wiec, ze to ode mnie (albo od pomocnikow :D ) zalezy, czy dekoder ma sprawdzac czy kod jest uszkodzony, czy tez naprawiac czesc bledow lub wszystkie.
    tolo: Ty faktycznie mozesz byc bardzo w temacie, wszak Twoja praca dyplomowa to niemal to samo, co moj referat :wink:

    0
  • #20 01 Kwi 2003 23:47
    Tremolo
    Poziom 43  

    leiej chyba zrobić prosty niezawodny układ niż wielki i na sypkich nogach :0 przynajmniej jak sie coś przetwarza na procesorze ma to znaczenie - trzeba znaleźć kompromis między długością kodu a szybkością działania :)
    No ale w końcu jak to "coś" ma robić wszystko.

    0
  • #21 01 Kwi 2003 23:51
    elektryk
    Poziom 42  

    Shekt co to za seminarium bo mnie zainteresowało. Nie wiem skąd Ty bierzesz takie książki ale ja to cienko widze, to są książki dla matematyków a nie dla inżynierów elektroników, te w których ja widziałem np kod Hamminga by rozpisany na równaniach logicznych. A co do budowy fizycznej to znacznie lepiej byłoby to zrobić na jakimś PGA. Dostaje na wejściu 14 bitów a na wyjściu daje te 8 już zweryfikowanych i poprawionych ew jakieś wyjście oznaczające że były błedy ale naprawiono i jeszcze jedno oznaczające że błędów nie udało się naprawić. Po zaprojektowaniu w ablu albo vhdl można to całkiem ładnie symulować.

    0
  • #22 02 Kwi 2003 00:22
    Tremolo
    Poziom 43  

    WŁAŚNIE samego nazewnictwa i interpretacji dalszej tych kodów trzeba by dociekać u automatyków matematycznych czy tez kryptologów, trzeba byłoby sie odwołać do św. pamięci rozkodowywaczy Enigmy. Patrzac na te wzory, to przypominają bardziej analize statystyczną. jak wygląda funkcja między systemowa między systemem dwójkowym a niedwójkowym... Jakieś wektory o co chodzi...

    I jak przelać ten kod na kod elektroniczny. MOżna by po prostu zapisać w pamięci wsyzstkie możliwości :)
    Ale widział ktoś tablice dla takiego kodu, czyli bardziej przyziemne praktyczne zastsowanie.

    0
  • #23 02 Kwi 2003 00:42
    smiga

    Poziom 12  

    Pomysł Elektryk'a żeby zrobić to w jakimś układzie programowalnym CPLD czy FPGA jest chyba najlepszym rozwiązaniem.
    Jednak przeglądając te skany mam pewną wątpliwość co do poprawności zadania - tzn. kod BCH 14,6.
    Według równania na długość wektora kodowego
    n=2^m - 1
    gdzie m jest liczba całkowitą.
    My szukamy n=14 co w żaden sposób nie wychodzi dla żadnego m ... może 15 dla m=4.
    ...chyba, że to jakiś inny kod niż te opisywane w zeskanowanej książce (fakt, że temat traktuje ona nie po inżyniersku - czyli mało przystępna matma)
    Shekt - Może wiesz coś więcej i możesz to logicznie wytłumaczyć kolegom lubiącym konkrety, które można wcielać w życie, a nie tylko teoretyczne rozważania
    (jak w tej książce, która pewnie nie jest głupia tylko treść, przynakmniej dla mnie, nie do końca pasuję do Twojego problemu- powyższe równanie- dla czego???)

    pozdrawiam
    Arek

    0
  • #24 02 Kwi 2003 01:07
    elektryk
    Poziom 42  

    Śmiga nie miałem na myśli urządzenia tylko symulator programowy do tych układów

    0
  • #25 02 Kwi 2003 01:36
    smiga

    Poziom 12  

    Elektryk nie jest to istotne (bez obrazy) czy zasymulujemy to sobie (np. w Max+plus II Altery - jest dostępny za darmo i moim zdaniem jest kompletnym i bardzo dobrym systemem dla układów programowalnych) czy jak już wszystko gra to załadujemy to w konkretną kość np. przez JTAG - żeby nie szukać programatorów i żeby było tanio (np. jakąś z rodziny MAX7000 Altery z literką S na końcu żeby miała JTAG - koszt np. EPM7064SLC44-10 to tylko 45 zł)
    Właściwie to taką kość możemy programować wiele razy testując coś sobie.

    OK, ale pisząc: "żeby zrobić to w jakimś układzie programowalnym CPLD czy FPGA " nie myślałem o fizycznym zrobieniu tylko projekcie i symulacji w np. przytoczonym wyżej systemie Altery - czyli na komputerze - bo i praca kolegi Shekt'a jest teoretyczna

    Przepraszam, że się rozpisałem nie w temacie i rozumiem, że mogłem być źle odczytany
    pozdrawiam (w szególności Elektryk'a - bo na jego uwagę jest to odpowiedź)
    Arek

    0
  • #26 02 Kwi 2003 20:45
    shekt
    Poziom 11  

    elektryk napisał:
    Cytuje:
    "Do kodowanie i dekodowania kodów.................. jednak uproszczony algorytm dekodowania podany w p. 2.4.4 nie zapewnia wykorzystania pełnych zdolności korekcyjnych [...]. Kody BCH mają własny algorytm dekodowania [...]. Algorytm ten jest jednak bardziej złożony. Jego opis można znaleźć w [2.4, 2.5]."
    Czy możesz doskanować wcześniejsze rozdziały od 2.4.4?


    Oto Uproszczony algorytm dekodowania. I to raczej wszystko, co udało mi się ciekawszego znaleźć w tej książce. Poszukam jeszcze materiałów w innych publikacjach i zamieszczę tu w trybie natychmiastowym :D .

    A tak z zupełnie innej beczki: zbudowałem licznik zliczający do 5 na przerzutnikach JK, ale to nie działa poprawnie. Ma ktoś może jakąś praktyczną radę? Jestem amatorem i pewnie mój warsztat jest do niczego. Czy jest coś, co z samego założenia mogłem zrobić źle? Licznik zlicza, ale chyba bardziej losowo, ponad to stan na wyjściu po włączeniu zasilania też jest losowy. Użyłem układów: UCY 7473.

    0
    Załączniki:
  • #27 02 Kwi 2003 21:05
    Radek
    Poziom 13  

    Co do tego licznika:
    - to "losowe zliczanie" może być spowodowane drganiami styków, jeśli ich używałeś oczywiście
    - aby po włączeniu stan nie był losowy możesz resetować te przerzutniki

    A może by tak zamiast przerzytników zastosować jakiś licznik w postaci jednego układu scalonego i tylko skrócić jego cykl liczenia do 5

    Pozdrawiam
    Radek

    0
  • #28 03 Kwi 2003 05:54
    shekt
    Poziom 11  

    Radek: a jaki np. jest to układ?

    Pozdrawiam

    0
  • #29 03 Kwi 2003 10:06
    smiga

    Poziom 12  

    z TTL to np.: 7490, 7492, 7493
    z CMOS to np.: 4518, 4520, 4022, 4017, 40160, 40161, 40162, 40163, 4510, 4516, 4029

    chyba wystarczy

    Musisz po prostu podłączyć do wyść bramkę NAND, lub AND (zależy od tego jakim stanem jest kasowany licznik) - jej wyście do CL (wejście kasujące) Bramkę podłączasz (dla liczenia do 5) do wyjść Q1 i Q3 - jeżeli policzy do 6 to podłącz jej oba wejścia do Q3 ...dla czego - ponieważ 5 w systemie dwójkowym to 0101 (Q4 Q3 Q2 Q1)

    pozdrawiam
    Arek

    0
  • #30 03 Kwi 2003 10:32
    smiga

    Poziom 12  

    ...przy okazji to wykorzystując bramki NAND możesz wyeliminować drgania styków przełącznika (jeżeli zliczasz impulsy "spod palca") - dwie bramki, w których jedno z wejść jączysz z wyjściem drugiej i odwrotnie; pozostałe dwa wejścia podłączasz do przełącznika (oczywiście nie razem) ... po prostu budujesz z nich przerzutnik RS

    powodzenia
    Arek

    0