ArPhy: Difference between revisions

From ciapini
Jump to navigation Jump to search
Line 20: Line 20:
== FEC ==
== FEC ==


algoritmo di FEC: [[Hadamard code]]
le opzioni sono
* nessun FEC
* FEC con [[Hadamard code]]


la dimensione del blocco di uscita del FEC e' di 2^input-1
la dimensione del blocco di uscita del FEC e' di 2^input-1

Revision as of 13:01, 19 January 2016

physical layer (OSI/1) per canali di comunicazione disperati

arPhy si occupa di:

caratteristiche:

  • input PDU: 32 bit
  • modulation alphabet sizes: 2,4,16
  • baud rate: 0.5,1,5,10,50,100,500,1000 bps

Framing

Il preambolo di un frame arphy e' un Wikipedia:Barker code con N=13, ossia {1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 1}.

FEC

le opzioni sono

la dimensione del blocco di uscita del FEC e' di 2^input-1

il grado di ridondanza del FEC puo essere scelto a seconda della dimensione del blocco di input:

  • k = 4bit -> 8 bit
  • k = 8bit -> 128 bit

applicato a una PDU di 32bit:

  • k = 4, 8*4 -> 8*8 -> 64bit
  • k = 8, 4*8 -> 128*8 -> 1024bit

forse ha senso considerare dei block codes diversi da quello di Hadamrd, che e' non-ottimale per k maggiore di 7 [1].

letture:

Interleaver

i possibili problemi 'descrivibili' del path di trasmissione sono:

problemi di spettro:

  • interferenze coerenti (toni sovrapposti a uno dei nostri bin)
  • errori della risposta in frequenza (equalizzazione..)

entrambi comportano il danneggamiento sistematico di una o piu determinate lettere dell'alfabeto in ogni simbolo

problemi nella sequenza di simboli:

  • disturbo impulsivo prolungato su tutto lo spettro
  • disturbo impulsivo ciclico su tutto lo spettro

che comportano la perdita di piu simboli contigui o la perdita sistematica di un determinato simbolo.

per mitigare questi problemi puo essere conveniente una qualche forma di interleaving sia nel dominio del tempo che in quello del codice.

uint16_t arphy_index_interleave(uint16_t in, uint8_t x, uint8_t y) {
    uint16_t out;
    out = in * (x + 1);
    out = out % (x * y);
    return out;
}

uint16_t arphy_index_deinterleave(uint16_t in, uint8_t x, uint8_t y) {
    uint16_t out;
    out = in + (in * x);
    out = out % (x * y);
    return out;
}

i parametri rilevanti da passare all'interleaver sono:

  • dimensione della costellazione
  • numero di simboli per interleaver block

Letture:

Soft-Decision

nella catena di demodulazione si possono ottenere diversi indici di affidabilita

  • rapporto tra il tono di picco e la media degli altri toni
  • valore del picco carattere nella trasformata di hadamard

Controllo di Flusso

Start Block

indica l'inizio di una trasmissione. precede sempre un #Header Block.

questo riferimento deve avere autocorrelazione tendente a zero, essere abbastanza lungo (raro) da evitare false partenze, abbastanza corto da non creare overhead. viene usato per la sincronizzazione di simbolo e per l'equalizzazione.

letture: