Bit error rate utilizzando la funzione biterr

di Anonimizzato8942 il
12 risposte
Salve ragazzi, ho due matrici X e Y e voglio calcolare il BER, ovvero il bit error rate. Per farlo utilizzo la funzione biterr. Il codice è il seguente:
number=[];
ratio[];
[number,ratio]=biterr(X,Y)
il problema che ho è che number e ratio sono due numeri, a me invece serve una funziona, per poi disegnare l grafico dell'andamento di questo bit error rate..
In che cosa sbaglio?!?!

12 Risposte

  • Dipende da cosa sono X e Y... come sono fatte?
  • Sono due matrici.. Dovrei calcolare il bit error rate per ogni elemento, ma non riesco a capire come fare.. uffi
  • Forse dovrei fare due for innestati e salvare il risultato della funzione biterr in un vettore giusto?!
  • Scusa ma...
    tu hai due matrici X e Y fatte di 0 e 1.
    Vorresti in uscita una matrice che quando gli elementi sono diversi dia 1 e se sono uguali dia 0?
  • La funzione biterr serve per calcolare gli errori di bit ed il bit error rate fra due matrici. Ha questa sintassi:
    [NUMBER,RATIO] = biterr(X,Y)
    in cui X e Y possono essere due matrici, o una matrice ed un vettore.
    A me servirebbe un grafico in cui si vede come si evolve questo bit error rate nel tempo. Purtroppo però l'uscita della funzione mi da soltanto 1 ratio, per cui non si può fare un grafico su un solo numero. Come posso fare per renderlo una funzione continua in modo da poterla poi proiettare su un grafico?!
  • Lo so qual'è la sintassi... rispondi alla mia domanda... (magari c'è un'altra funzione diversa che fa proprio quello che chiedi tu..?)
    Vuoi che ti calcoli il biterror elemento per elemento, quindi, cosa ti aspetteresti in uscita dalla funzione biterr per le due matrici X e Y?
  • Poiché si tratta di un sistema di trasmissione e ricezione ho la matrice X che è quella in trasmissione e Y che è quella in ricezione, a me serve sapere quanti bit perdo volta per volta, e ad ogni passo che avanzo di quanto aumento o diminuisco.
    ti faccio un esempio se io invio X[i,j]=1000, e ricevo Y[i,j]=800, voglio sapere che ho perso 200 bit. Inoltre mi serve un valore numerico che mi indichi il rapporto di quanto perdo in percentuale.. Questo è in sintesi quello che devo fare.
  • Scusa, mi sa che c'è un po' di confusione. Se quelli sono realmente i numeri che usi e 200 è il numero che ti aspetti, ti basta una sottrazione, biterr non c'entra niente.
    Infatti, se provi a fare biterr(1000,800) non viene proprio 200.
    Tra l'altro mi sembra di capire che la matrice va avanti per colonne, che "ad ogni passo che avanzi" si aggiunge una colonna, e che quindi vuoi sapere il biterror colonna per colonna, in modo da avere in uscita un vettore in cui ciascun numero rappresenta il biterror per una determinata colonna?
  • No, non mi serve per colonna, elemento per elemento della matrice.. il ber lo calcolo cosi= (num errori)/num totale di bit emessi

    quindi tu dici che per il calcolo de ber non devo verificare la quantità dell'errore, cioè ogni volta di quanto sbaglio, ma solo il mumero degli errori in se?!
    Mi sa che hai ragione... sto confondendo..
    E alla luce di questo, tu dici che posso utilizzare la funzione biterr, oppure mi conviene implementare la funzione io stessa?!
  • Non so di preciso quello che devi fare, quindi cerca di capire bene cosa ti serve realmente.
    La funzione biterr ti calcola la differenza tra due numeri in termini di numero di bit.
    Nel tuo caso se X(i,j)=1000 e Y(i,j)=800 lui converte i numeri in binario:
    1000 in binario è 1111101000
    800 in binario è 1100100000
    e poi "conta" il numero di bit diversi. In questo caso 3 (il terzo, il quarto e il settimo - partendo da sinistra).
    Devi intanto capire se è questo quello che ti serve, perché se al posto del 3 ti aspetti 200, allora biterr non è la funzione che ti serve.
  • Ah ecco, grazie mille per avermelo spiegato in modo chiaro e preciso, sei stato veramente esauriente. Infatti si è proprio questa la funzione che mi serve in quanto il ber del segnale lo calcolo come: (biterratti)/bit trasmessi
    e con questa funzione riesco a contare i bit errati volta per volta.
    Grazie ancora
  • Figurati!
Devi accedere o registrarti per scrivere nel forum
12 risposte