Pagina 1 di 2

Codice di parità

MessaggioInviato: 7 set 2013, 22:05
da tecfil
Ciao a tutti!

Ho un problema con questo esercizio:

Sia dato il seguente codice su 8 bit: C=[A->(AF)_h,B->(6F)_h]. Sapendo che una delle due parole è stata codificata con codice di parità su 9 bit con i bit di parità posto nella posizione più significativa, è stata quindi trasmessa attraverso la rete ed è stata ricevuta come il valore (757)_8, quali delle seguenti affermazioni è corretta:

A) La parola ricevuta, tolto il bit di parità, appartiene al codice C
B) La parola può essere corretta perché la sua distanza, tolto il bit di parità, delle parole di C è 3
C) La parola può essere corretta perché la sua distanza, tolto il bit di parità, delle parole di C è 2
D) Nessuna delle precedenti.

La risposta corretta è la D.

Io ho provato a fare in questo modo:

Converto per prima cosa il codice C su 8 bit, quindi ottengo che
A−>10101111
B−>01101111

Poi converto il valore ricevuto:
(757)_8=111101111

Quello che non riesco a capire bene è il fatto del codice di parità. Entrambe le parole sono da 8 bit, ed hanno un numero pari di 1, quindi il codice di parità pari è corretto, dovrò allora aggiungere uno 0, però per metterlo nella posizione più significativa va inserito ad inizio o fine dei due numeri? Io credo all'inizio, perché se cambio il bit iniziale allora un numero può diventare positivo o negativo.

Quale numero dovrò togliere dalla sequenza ricevuta per confrontarla con le altre due?

La distanza tra A e B (senza contare il bit di parità) è uguale a 2, quindi posso rilevare al più un errore, ma non posso correggerne nessuno. Quale bit devo togliere dalla numero (757) per riuscire a confrontarlo con gli altri due?

Grazie mille in anticipo
Ciaoo :)

Re: Codice di parità

MessaggioInviato: 7 set 2013, 22:53
da bladeblaze
Sarà che ho difficoltà a capire di cosa stai parlando precisamente, ma ho du problemi:
il primo è che non capisco la formula che hai postato
il secondo che cosa intendi per inizio o fine di un numero, ma se ho capito bene penso che tu ti stia sbagliando, in quanto il bit più significativo è il bit che ha maggiore valore, pertanto quello più a sinistra; io toglierei quello che ti segno in grassetto:
111101111

Re: Codice di parità

MessaggioInviato: 7 set 2013, 22:54
da Candy
Mi sembra di aver letto che il codice di parità è stato messo e tramesso come bit più significiativo, quindi, a sinistra. Allora, leggendo ed interpretando il dato ricevuto, hai come codice di parità: 0x1 e valore del byte: 0x11101111

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:04
da tecfil
Ciao ragazzi!

Grazi per le risposte.

La formula è solo una questione di insiemi o gruppi. In pratica il gruppo C contiene due gruppi, uno chiamato A che contiene il numero AF in base 16, l'altro chiamato B che contiene il numero 6F in base sedici.

Essendo in base sedici ho convertito in formato binario i due numeri, e quindi esce che il gruppo A contiene il numero in forma binaria: 10101111 ed il B: 01101111.

Il bit è stato messo nella posizione più significativa, mi sono espresso male :D con inizio volevo dire anche io a sinistra.

Voi andate a togliere il bit più a sinistra perché è in posizione più significativa giusto? Oppure perché è il bit che mi fa rispettare il codice di parità pari? (cioè avere un numero pari di 1? )

Purtroppo non trovo tanti esercizi su questo argomento, e sul libro hanno riportato solo questo :(

Grazie mille
Ciaoo :-)

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:04
da bladeblaze
Non capisco Foto UtenteCandy:
757 oct è 111101111b, pertanto tolto il bit di parità dovrebbe essere 1-11101111b,
o sbaglio :?: :-k

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:07
da Candy
Errore mio di sbadiglio, (vista l'ora), volevo scrivere: 0b1 per i bit di parità, e, poi, 0b11101111 per il dato.

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:26
da bladeblaze
Io tolgo il bit più a sinistra perché è il bit più significativo;
il problema mi dice questo:
C=[A=(AF)hex,B=(6F)h]
pertanto sapendo che il sistema funziona trasmettendo ad 8 bit più bit di parità che è il bit più significativo, pertanto se dovessi trasmettere
A trasmetterei 0-10101111b
B trasmetterei 0-01101111b
in entrambi i casi ho prima il bit di parità che è 0 e poi gli 8 del valore.
il sistema riceve il valore 757 oct che è
111101111b quindi 1-11101111b.

Allora ricapitolando se il bit di parità è il più significativo togli il numero più a sinistra e se è il meno significativo togli quello più a destra; non centra nulla che ti faccia rispettare o meno il bit di parità.
Non so se sono riuscito a spiegarmi bene

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:41
da Candy
Mi pare di capire che tu non abbia focalizzato il problema. Sempre che invece lo abbia capito io, per come è scritto: l'esercizio si riferisce ad un esempio di trasmissione dati con errore. Ti viene spiegata la struttura dati del bus: trasmette 9 bit, di cui uno di parità ed otto di valore. Il bit di parità si trova come bit più significativo.
Ora tu costruisci l'hardware che deve ricevere i dati dal bus. Lo shift register accumula la sequenza 111101111.
Visto che è nota la formattazione: il bit più significativo è di parità: 1; i restanti otto bit sono il dato: 11101111.

Questo, leggendo il testo, è quanto ha trascritto il telegrafista sul suo foglietto... (un telegrafista moderno, uno shift register di silicio catramato). A questo punto, analizzato il bit di parità e confrontato col dato risultante puoi fare una qualche affermazione? Il primo controllo, di parità, lo supera o no? E se non lo supera, essendo noti i dati di partenza, cosa puoi altro dire?

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:53
da bladeblaze
Il bit di parità è un bit di controllo.
che è vale 1 se il numero di bit che valgono 1 nel mio dato sono dispari
che vale 0 se il numero di bit che valgono 1 nel mio dato sono pari
detto questo:
so che in questo sistema le trasmissioni avvengono con lunghezze di 9 bit e che il bit di parità è il bit più significativo.
Analizzando il dato ricevuto: 1 11101111 posso dire che la trasmissione è corretta o perlomeno che il bit di parità è corretto;
posso dire che il dato ricevuto non è C in quanto non appartiene né all'insieme A né all'insieme B.
E posso dire pure che le risposte B e C non hanno alcun significato in quanto da come la vedo io il valore trasmesso non può essere in alcun modo corretto, in quanto posso controllare se il dato ricevuto è formalmente corretto, cioè se rispetta o meno il bit di parità, ma non posso in alcun modo sapere quale o quali bit ho perso per strada o non sono stati ricevuti o trasmessi correttamente.

Re: Codice di parità

MessaggioInviato: 7 set 2013, 23:56
da Candy
E quindi puoi rispondere: d).