Untuk bersenang-senang dan bekerja, saya harus mengimplementasikan aplikasi berbasis java yang dapat menyandikan teks atau data menjadi suara dan mentransmisikan menggunakan speaker PC dan di sisi penerima ada mikrofon dengan perangkat lunak decoder.
Saya sedang berpikir untuk menggunakan FSK (syn atau async atau sarankan) untuk implementasi:
Teks (data) --- memodulasi ---> gelombang pembawa audio 10khz-20khz ---> Melalui transmisi udara ---> mikrofon -> demodulasi ---> Menampilkan teks atau data.
Pertimbangan utama saya adalah:
- ~ Bandwidth 200bps jika tidak lebih
- tahan terhadap kebisingan hingga tingkat tertentu
- sebaiknya gelombang pembawa 16khz - 20khz dengan pengambilan sampel 44.1khz (ada sedikit kebisingan di daerah ini dan tidak terlalu terdengar oleh orang tua dan mikrofon, speaker murah, tersedia di laptop)
- Logika pengkodean tidak terlalu rumit.
Modulasi apa yang paling berhasil dengan upaya pengkodean paling sedikit? Adakah rekomendasi tentang perpustakaan / sampel untuk mencapai FSK / BFSK / PSK atau DSSS menggunakan java?
audio
modulation
sound
fsk
geeknizer
sumber
sumber
Jawaban:
Ini sebenarnya masalah yang sangat sulit karena karakteristik saluran. Sebagian besar pengeras suara komputer memiliki bandwidth yang cukup terbatas, memiliki non-linearitas yang signifikan dan akustik ruang seringkali merupakan varian waktu.
Hidup menjadi BANYAK lebih mudah jika Anda bisa menjalankan kabel dari output headphone dari satu PC ke input baris yang lain.
sumber
Ya, Anda pasti harus menggunakan FSK tetapi harus asinkron dan inilah sebabnya. Demodulasi FSK secara sinkron disebut demodulasi yang koheren. Demodulasi FSK secara koheren memerlukan penguncian fase pembawa yang masuk (sinkronisasi fase), yang biasanya dilakukan dengan Phase lock Loops (PLL) yang tidak berfungsi dengan baik kecuali Anda memiliki rasio Signal to Noise (SNR) minimal 10 dB atau lebih. Biasanya siaran audio tidak memiliki SNR setinggi itu, jadi lupakan demodulasi yang koheren. Selain dalam praktek dengan sinyal elektromagnetik, FSK non-koheren membutuhkan, paling banyak, hanya 1 dB lebih banyak Eb / Tidak dari itu untuk FSK koheren untuk Pb ≤ 10−4 (ini berarti bahwa untuk mendapatkan probabilitas kesalahan bit yang sama Pb Anda hanya perlu mengirimkan ekstra dB daya di setiap bit). Namun demodulator FSK yang tidak koheren jauh lebih mudah dibangun karena sinyal referensi yang koheren tidak perlu dihasilkan. Oleh karena itu dalam sistem praktis, hampir semua penerima FSK menggunakan demodulasi non-koheren karena semua orang lebih suka mentransmisikan daya dB ekstra daripada mendapatkan semua masalah sinkronisasi.
Menjawab pertimbangan utama Anda:
Bandwidth 200bps jika tidak lebih: Saya telah mencapai 200 bps menggunakan 8fsk carrier fase kontinu, pengaturan smartphone 1 m dari speaker.
Tangguh terhadap kebisingan hingga tingkat tertentu: Saya telah menerapkan kode koreksi kesalahan BCH, dengan kemampuan untuk memperbaiki hingga 8 kesalahan per blok data. Kode BCH memiliki keuntungan pengkodean terbesar saat ada penambahan 25 hingga 50%
lebih disukai gelombang pembawa 16khz - 20khz dengan pengambilan sampel 44.1khz: Saya menyarankan untuk meningkatkan frekuensi pengambilan sampel hingga 48 kHz (yang cukup umum saat ini di smartphone) dan membatasi bandwidth operasi Anda antara 17,5 atau 18 dan 21,5 kHz. Jika Anda menggunakan 44.1 maka Anda harus bekerja antara 17,5 atau 18 dan 20,5 kHz. Tetapi Anda harus sangat berhati-hati dengan speaker dan mikrofon yang Anda pilih karena tidak semuanya beroperasi pada frekuensi tinggi ini. Anda harus membuat analisis frekuensi tanggapan mereka. Jika Anda menggunakan PC, saya akan merekomendasikan ARTA atau Audacity atau jika Anda seorang programmer Matlab atau Octave. Jika Anda menggunakan smartphone, saya akan merekomendasikan aplikasi analisis spektrum audio apa pun
Logika pengkodean tidak terlalu rumit: Saya akan merekomendasikan demodulator fsk quadrature korelasi yang tidak koheren. Jauh lebih ringan daripada implementasi berbasis fft. Khususnya jika Anda berada kurang dari 1 m di mana doppler dan multipath tidak terlalu mempengaruhi Anda
sumber