Tôi phải đối mặt với một thách thức khó khăn: Để trích xuất dữ liệu nhị phân từ đầu đọc thẻ từ của iPhone . Đây là những gì từ tính trên thẻ trông như sau:
Đây là .WAV iPhone nhận được khi bạn quẹt thẻ (đừng hy vọng quá nhiều, đó là thẻ khách hàng thân thiết;)). Đó là ba lần vuốt, với tốc độ khác nhau. Đây là kết xuất SInt16 thô cho thao tác vuốt tôi đang sử dụng.
Ai đó dường như đã thực hiện nó ở đây nhưng dữ liệu thực tế tôi thu được không đặc biệt dễ xử lý.
Việc đọc bắt đầu (và kết thúc) với số lượng "số không" không xác định - lưu ý rằng sóng chỉ lặp lại sau khi 2 ZEROS được thu thập, điều này thể hiện NS theo sau là SN:
.
Điều này sẽ cho phép một thuật toán xác định dấu tích đồng hồ.
Từ trường đảo ngược trên mỗi tích tắc đồng hồ. Ngoài ra đối với nhị phân 1, từ trường đảo ngược chính xác ở giữa tích tắc:
Chuỗi luôn bắt đầu bằng một lệnh bắt đầu 1101 + 0 (bit chẵn lẻ). Bạn có thể chọn ra điều này trong cả ba bài đọc trong biểu đồ trên. Nó được chỉ ra rõ ràng hơn trong bài viết cosmodro tôi liên kết ở đầu câu hỏi.
Dưới đây là một ví dụ về sự xuống cấp từ tính (được thực hiện thêm trong phần đọc thẻ dưới):
Tôi đang cố gắng tìm ra một cách hợp lý để chuyển đổi dạng sóng này thành chuỗi nhị phân tương ứng của nó.
Tôi đã tìm thấy một bản PDF đi sâu vào một số chi tiết, nhưng tôi không thể tìm ra thuật toán họ đang sử dụng.
PDF này chứa một hình ảnh thú vị:
Nếu tôi có thể trích xuất các đường màu đỏ và màu xanh theo sơ đồ này, tôi có thể sử dụng một trong số chúng để trích xuất dữ liệu, nhưng tôi không thể tìm ra logic đằng sau cấu trúc.
Vì vậy, đây là câu hỏi của tôi: Làm thế nào để tôi trích xuất chuỗi nhị phân?
Tái bút Lưu ý rằng tốc độ vuốt sẽ không đổi. Vì vậy, một khi đồng hồ đã được xác định, cần phải liên tục điều chỉnh từ một đánh dấu sang tiếp theo.
PPS. Autocorrelation sẽ bắt cặp bọ ve? (xem như bọ ve sẽ thay thế NS SN ...)
EDIT (12 tháng 6): Tôi cần rất nhiều sự giúp đỡ về vấn đề này, nhưng cuối cùng tôi đã hoàn thành một trình đọc vững chắc ( http://www.magstripedecoder.com/ ). Cảm ơn mọi người đã giúp đỡ! Tôi khuyên bạn nên #musicdsp trên kênh efnet của IRC cho bất kỳ ai đủ tâm huyết để thực hiện thử thách nắm bắt toán học - thực sự rất khó!