4

나는 바이너리 데이터를 사운드로 인코딩하는 작은 프로그램을 만들었다. 예를 들어 다음과 같은 바이너리 입력 :오디오 인코딩 된 바이너리 데이터는 어떻게 해석합니까?

00101101 

이 같은 '음'을 생성 할 것이다 :

각 캐릭터가 시간의 일정한 단위를 나타낸다
################..S.SS.S################ 

. #은 전송 시작과 끝을 결정하는 데 사용되는 880 헤르쯔 사인파를 나타내며 .은 0을 나타내는 무음을 나타내고 S은 1을 나타내는 440 헤르츠 사인파를 나타냅니다. 분명히 중간 부분은 실제로는 더 길다.

내 질문의 본질은 : 어떻게이 작업을 반전시킬 수 있습니까?

사운드 파일은 간단한 재생과 사운드 녹음을 통해 수신자에게 전송됩니다. 즉, 원래 사운드 파일을 쉽게 해독하려고 시도하지 않는다는 의미입니다.

분명히 나는 ​​주파수와 관련하여 기록 된 데이터를 분석해야한다. 그러나 어떻게? 푸리에 변환에 대해 조금 읽었지만 여기서는 상당히 분실했습니다.

어디서부터 시작해야할지 모르겠다.하지만 이것은 사소한 것이 아니며 신호 처리에 대한 상당한 지식이 필요하다는 것을 알고있다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?

나는 이것을 루비에서하고있다. (나는 느리다. 개념의 증거 일 뿐이다.) 문제 자체는 특정 언어의 프로그래밍이 아니므로 어떤 대답이라도 대환영이다.

+3

[오디오 주파수 편이 키잉] (http://en.wikipedia.org/)/wiki/Frequency-shift_keying # Audio_FSK) –

+1

http://stackoverflow.com/questions/3714321/open-source-fsk-decoder-library –

+0

아, 왜 바퀴를 재발 명하지 않으시겠습니까? :) 힌트에 감사드립니다! –

답변

2

FSK 변조 신호를 복조하려고 분명히 문제가 발생했습니다. 각 주파수에 맞춰진 상관 관계 은행을 구현하는 것이 좋습니다. 속도가 우려 사항 중 하나 인 경우 fft보다 훨씬 빠릅니다.

+1

그 점을 지적 해 주셔서 감사합니다. 이것은 실제로 내가 결국 사용하는 접근법입니다. 또한 Packet Radio에서 사용하는 주파수 인 1200 및 2200 Hz를 선택했습니다. –

+1

여러분을 환영합니다! 실제로 음성으로 (스피커에서 마이크로) 이동하여 데이터를 전송하고 있습니까? 나는 1 bm 떨어진 200 bps를 전송할 수있는 8fsk를 구현했다. Creative T6300 (5.1 시스템) 및 여러 스마트 폰에서 한 명의 스피커를 사용하고 있습니다. – VMMF

+0

예, 이것은 학사 학위 논문의 일부입니다. 마이크/스피커를 통해 파일을 전송할 수있는 iphone 앱을 만들었습니다. 이제 2400/4400 Hz로 전환해야하므로 전송 속도가 2400 보로 향상되었습니다. 관심이있는 경우 완성 된 앱의 동영상은 다음과 같습니다. https : // vimeo.co.kr/48487024 –

1

주파수와 변조 속도를 알고 있다면 FSK 복조를 위해 2 개의 슬라이딩 Goertzel 필터를 사용해 볼 수 있습니다.

+0

그 포인터가 필요했습니다. 감사합니다! –