Attualmente sto lavorando a un progetto che è stato relativamente facile, fino ad ora. Il progetto di base è quello di trasmettere dati/messaggi su laser utilizzando la trasformazione audio. In poche parole il processo è attualmente similiTrasferimento audio Python tramite laser
- L'utente immette un messaggio
- messaggio viene trasformata in binario
- Per ogni 1 e 0 nel messaggio binario, emette un segnale corrispondente al segnale che è che, nel mio caso 250hz per 1 e 450 hz per uno 0.
- Il tono in uscita viene inviato tramite un cavo stereo a un trasformatore audio su un laser
- Un pannello solare funge da microfono e registra il "suono" in entrata come file
- Riproduce il file indietro e legge i toni e cerca di far corrispondere 250 e 450 Hz a 1 o 0 (che è il mio problema).
Fino a quando l'elaborazione effettiva del suono va bene, il mio problema attuale è il seguente.
Riproduco i toni ciascuno per x volta, sul lato ricevente viene registrato per y, l'ora viene tagliata campionata molte volte e quindi analizzato campione per campione che quindi registra ogni frequenza. Questo è inefficiente e inaccurato. Ho avuto molti problemi a prescindere dal momento in cui suono i toni perché spesso sente un tono due volte o non lo sente affatto, il che cancella completamente interi messaggi.
Ho provato a far corrispondere la frequenza con cui si campiona nel momento in cui suona ciascun tono, ma a meno che non sia allineato di conseguenza, non funziona. Ho avuto solo alcuni test di successo per messaggi come "test" e "ciao". Ho già guardato in bpsk e fsk, ma mi sento come se stessi già facendo qualcosa di simile ma che ho una brutta fine per decifrare tutto.
Questo è tutto scritto in Python e sarei molto grato per eventuali suggerimenti, suggerimenti o possibili implementazioni che è possibile fornire. Anche per emissione di toni sto usando pyaudiere
e per la registrazione sto usando pyaudio
.
Grazie!
-Steve
Buona domanda: è più legata alla DSP che alla programmazione, quindi è possibile provare http://DSP.stackexchange.com –
Per quanto tempo vengono utilizzati per il rilevamento ciascun tono e il metodo utilizzato? –
possibile duplicato di [Binary Phase Shift Keying in Python] (http://stackoverflow.com/questions/7466715/binary-phase-shift-keying-in-python) –