Giao tiếp dữ liệu giữa PC với PC qua Sound FSK / PSK / DSSS


8

Để giải trí và làm việc, tôi sẽ triển khai một ứng dụng dựa trên java có thể Mã hóa văn bản hoặc dữ liệu thành âm thanh và truyền tải bằng loa của PC và ở phía bên nhận là micrô có phần mềm giải mã.

Tôi đã nghĩ đến việc sử dụng FSK (đồng bộ hoặc không đồng bộ hoặc đề xuất) để triển khai:

Văn bản (dữ liệu) --- điều chế ---> sóng mang âm thanh 10khz-20khz ---> Truyền qua không khí ---> micrô -> giải điều chế ---> Hiển thị văn bản hoặc dữ liệu.

Những cân nhắc chính của tôi là:

  • Băng thông ~ 200bps nếu không nhiều hơn
  • khả năng phục hồi tiếng ồn đến mức nhất định
  • tốt nhất là sóng mang 16khz - 20khz với lấy mẫu 44,1khz (khu vực này ít tiếng ồn hơn và nó không thực sự nghe được đối với người già và mic, loa rẻ tiền, có sẵn trong máy tính xách tay)
  • Logic mã hóa không quá phức tạp.

Điều chế nào sẽ hoạt động tốt nhất với những nỗ lực mã hóa ít nhất? Bất kỳ đề xuất nào về các thư viện / mẫu để đạt được FSK / BFSK / PSK hoặc DSSS bằng cách sử dụng java?


3
Bạn chỉ có thể sử dụng một trong các tiêu chuẩn modem cũ, ví dụ V21 rất đơn giản, 300 baud, song công hoàn toàn. Có rất nhiều tài liệu và mã nguồn ra khỏi đó. Bạn có thể dịch chuyển dải tần lên đến 17 kHz bằng cách trộn nếu cần.
Paul R

1
Cẩn thận với việc đẩy tần số sóng mang quá cao. Hầu hết các thiết bị âm thanh thương mại bắt đầu có các đặc tính đáp ứng tần số không được xác định rõ khi bạn tiếp cận 20Khz. Đối với một số thiết bị, 16Khz có thể là một thách thức. Có thể chấp nhận cho lược đồ của bạn để có một tham số đặt tần số / băng tần sóng mang không?
dùng2718

1
Để thêm vào nhận xét của @PaulR, bạn có thể lấy thông số như V21 và điều chỉnh nó để phù hợp với dải tần số sóng mang đã chọn của bạn. Nếu bạn muốn theo đuổi điều đó, tôi chắc chắn có đủ chuyên môn trên trang web này để giúp điều chỉnh.
dùng2718

@PaulR Bạn có thể cho tôi một ví dụ thực hiện trong java không?
geeknizer

1
Chắc chắn - chỉ cần cho tôi vài ngày để viết nó cho bạn ...
Paul R

Câu trả lời:


6

Đây thực sự là một vấn đề thực sự khó khăn vì các đặc điểm kênh. Hầu hết các loa máy tính có băng thông khá hạn chế, có sự phi tuyến tính đáng kể và âm học trong phòng thường biến đổi theo thời gian.

Cuộc sống trở nên RẤT NHIỀU nếu bạn chỉ có thể chạy cáp từ đầu ra tai nghe của một PC vào đầu vào đường truyền của đầu kia.


2
Tôi đã làm việc trên một sơ đồ truyền thông rất giống nhau: điều chế / giải điều chế âm thanh fsk và tôi vừa tìm thấy một triển khai modem âm thanh linux bằng cách sử dụng fsk. Sw này có thể đạt tới 300 và 1200 baud bằng cách sử dụng kênh âm thanh làm liên kết giao tiếp giữa hai pc và fsk. Nó có thể là một điểm khởi đầu rất tốt (việc triển khai của tôi đạt tới 200 baud trong môi trường ồn ào sử dụng tần số khoảng 500-4000 Hz cho các vấn đề liên quan đến đáp ứng tần số của các thiết bị âm thanh pc). liên kết
Yozek

@Yozek bạn có thể chỉ cho tôi mã nguồn đó không?
geeknizer

1
Url để triển khai minimodem có ở đây: whence.com/minimodem/minimodem-0.16.1.tar.gz Tôi vẫn đang thực hiện một triển khai AFSK đơn giản cá nhân trong java và object -C, nhưng tôi gặp một số rắc rối với tiếng ồn xung quanh / nền và giới hạn tốc độ truyền thấp: khoảng 100/200 baud (hoặc bit / giây), không nhiều lắm. Nhưng tôi không biết liệu nguyên nhân là giới hạn thực tế / sinh lý hay đó là vấn đề 'thực hiện không đủ thông minh' của tôi. Tôi nghĩ rằng cái thứ hai ...
Yozek

1

Có, bạn chắc chắn nên sử dụng FSK nhưng nó phải không đồng bộ và đây là lý do. Giải điều chế đồng bộ FSK được gọi là giải điều chế nhất quán. Việc giải điều chế FSK mạch lạc yêu cầu khóa pha sóng mang đến (đồng bộ hóa pha), thường được thực hiện với Vòng khóa pha (PLL), hoạt động tốt, trừ khi bạn có Tỷ lệ nhiễu tín hiệu (SNR) ít nhất là 10 dB hoặc hơn. Thông thường phát sóng âm thanh không có SNR cao như vậy, vì vậy hãy quên đi việc giải điều chế mạch lạc. Ngoài ra, trong thực tế với tín hiệu điện từ, FSK không kết hợp yêu cầu, tối đa, chỉ có 1 dB Eb / No hơn so với FSK kết hợp cho Pb ≤ 10−4 (điều này có nghĩa là để có được xác suất lỗi bit tương tự Pb, bạn chỉ cần truyền thêm dB công suất trong mỗi bit). Tuy nhiên, bộ giải mã FSK không kết hợp dễ dàng hơn để xây dựng do các tín hiệu tham chiếu mạch lạc không cần phải được tạo ra. Do đó, trong các hệ thống thực tế, hầu hết tất cả các máy thu FSK đều sử dụng giải điều chế không kết hợp bởi vì mọi người đều thích truyền thêm dB công suất thay vì gặp phải tất cả các vấn đề đồng bộ hóa đó.

Trả lời những cân nhắc chính của bạn:

Băng thông 200bps nếu không nhiều hơn: Tôi đã đạt được 200 bps khi sử dụng sóng mang trực giao pha liên tục 8fsk, đặt điện thoại thông minh cách loa 1 m.

Khả năng chống nhiễu đến mức nhất định: Tôi đã triển khai mã sửa lỗi BCH, với khả năng sửa chữa tối đa 8 lỗi trên mỗi khối dữ liệu. Mã BCH có mức tăng mã hóa lớn nhất khi có thêm 25 đến 50% dự phòng

tốt nhất là sóng mang 16khz - 20khz với lấy mẫu 44,1khz: Tôi khuyên bạn nên tăng tần số lấy mẫu lên tới 48 kHz (hiện nay khá phổ biến trong điện thoại thông minh) và giới hạn dải hoạt động của bạn trong khoảng 17,5 hoặc 18 và 21,5 kHz. Nếu bạn sử dụng 44.1 thì bạn phải làm việc trong khoảng 17,5 hoặc 18 đến 20,5 kHz. Nhưng bạn phải rất cẩn thận với loa và micrô bạn chọn vì không phải tất cả chúng đều hoạt động ở tần số cao này. Bạn phải thực hiện một phân tích phản hồi tần số của họ. Nếu bạn đang sử dụng PC, tôi sẽ khuyên dùng ARTA hoặc Audacity hoặc nếu bạn là lập trình viên Matlab hoặc Octave. Nếu bạn đang sử dụng điện thoại thông minh, tôi muốn giới thiệu bất kỳ ứng dụng phân tích phổ âm thanh nào

Logic mã hóa không quá phức tạp: Tôi muốn giới thiệu bộ giải mã fsk bậc hai tương quan không kết hợp. Nhẹ hơn nhiều so với bất kỳ thực hiện dựa trên fft. Đặc biệt nếu bạn ở cách đó chưa đến 1 m, nơi doppler và multath không thể giúp bạn rất nhiều

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.