Tôi hiện đang làm việc trên một dự án tương đối dễ dàng, cho đến bây giờ. Dự án cơ bản là truyền dữ liệu/thông điệp qua laser bằng cách sử dụng chuyển đổi âm thanh. Tóm lại quá trình này hiện nay là như thế nàyChuyển âm thanh bằng Python qua các laser
- Các người dùng nhập vào một thông điệp
- nhắn được biến thành nhị phân
- Đối với mỗi 1 và 0 trong thông điệp nhị phân, nó đóng một giai điệu tương ứng với tín hiệu mà đó là, trong trường hợp của tôi 250Hz cho một 1 và 450 hz cho một 0.
- Âm báo đi được gửi qua cáp âm thanh nổi đến máy biến áp âm thanh được gắn vào một laser
- Một bảng điều khiển năng lượng mặt trời hoạt động như micrô và ghi lại "âm thanh" đến dưới dạng tệp
- Nó sẽ phát lại tệp và đọc các âm và cố gắng khớp với mỗi 250 và 450 hz đến 1 hoặc 0 (đây là nơi mà vấn đề của tôi nằm).
Cho đến khi xử lý âm thanh thực sự tốt, vấn đề hiện tại của tôi là như sau.
Tôi phát các âm mỗi thời gian x, trên đầu nhận được ghi lại theo thời gian y, thời gian y được cắt lấy mẫu nhiều lần rồi phân tích mẫu theo mẫu rồi ghi lại từng tần số. Điều này không hiệu quả và không chính xác. Tôi đã có nhiều vấn đề bất kể thời gian tôi chơi các âm thanh cho nó thường nghe một giai điệu hai lần hoặc không nghe thấy ở tất cả, mà hoàn toàn ném ra toàn bộ tin nhắn.
Tôi đã cố gắng so khớp với tốc độ mà nó lấy mẫu theo thời gian mỗi giai điệu phát, nhưng trừ khi được căn chỉnh cho phù hợp, nó không hoạt động. Tôi chỉ có một vài bài kiểm tra thành công cho các bài viết như 'test' và 'hi'. Tôi đã nhìn vào bpsk và fsk, nhưng tôi cảm thấy như thể tôi đã làm một cái gì đó như nó nhưng tôi có một kết thúc nhận được xấu để giải mã tất cả.
Đây là tất cả được viết bằng Python và tôi rất biết ơn về mọi mẹo, đề xuất hoặc triển khai có thể mà bạn có thể cung cấp. Ngoài ra đối với phát xạ âm, tôi đang sử dụng pyaudiere
và để ghi âm, tôi đang sử dụng pyaudio
.
Cảm ơn!
-Steve
Câu hỏi hay - liên quan đến DSP nhiều hơn liên quan đến lập trình, vì vậy bạn có thể thử http://DSP.stackexchange.com –
Mỗi giai điệu và phương pháp bạn hiện đang sử dụng để phát hiện là bao lâu? –
có thể trùng lặp của [Binary Phase Shift Keying in Python] (http://stackoverflow.com/questions/7466715/binary-phase-shift-keying-in-python) –