2012-05-31 2 views
4

라디오 수신기가 있습니다. 그 라디오의 사운드 출력물이 내 컴퓨터로 간다. 소리 출력에는 약 440 Hz의 모스 부호가 들어 있습니다. 그 모스 부호는 2에서 20까지의 속도 범위를 가질 수 있습니다. WPM. 나는 다른 방송국이 전송 중인지 여부를 파악하는 방법을 알고 있지만 전송 상태/전송 상태를 텍스트로 변환하는 방법을 알고 있습니다. 나는 무력보다 더 나은 해결책이있을 거라고 생각했습니다.복조 방법 (오디오) 모스 부호

복잡 요인 :

  • 나는 프로그램이 다른 스테이션이 전송됩니다보다는 대부분의 모스 코드 프로그램으로 사용자가 지정한되고 얼마나 빨리 알아낼 수 있어야합니다.
  • 잡음이 있습니다.
  • 모스 부호 송신기가 즉시 켜지거나 꺼지지 않습니다. 4 밀리 초 정도의 상승 및 하강 시간이 있습니다.
  • 이 모스 부호의 대부분
  • 사람들에 의해 전송, 따라서 완벽하지 않다된다 예를 들어
    • 은 단어 사이에 일시 정지가 7 개 요소에 의해 추정되지만 8
    • -5에서 아무것도 될 수있다 단일 대화에서 속도를 보내는 사람이 약 20 % 정도 다를 수 있습니다.
  • 좀 더 실시간으로이 작업을 수행하고 싶습니다. 프로그램이 무언가를 출력하고, 실수임을 깨닫고, 정정하면 괜찮습니다. 지금까지 프로그램은

Source code

출력 예. 오디오를 키 입력으로 변환하거나 키 입력으로 변환 할 수는 없지만이를 점/대시로 변환하는 것은 작동하지 않습니다.

###########################################################__________________________ 
_________________________________#################################################### 
##################################################################################### 
#######################################______________________________________________ 
_____________________________________________________________________________________ 
_____________________________________________________________________________________ 
_____________________________________________________________________________________ 
_____________________________________________________________________________________ 
_________________________ 

코드/전송 /가 및 전송/또는 모스 코드를 이해할 수있을 것이라고 해결 섹션를 결정 건에 대한 제안.

+1

아마도 Goertzel 필터가 귀하의 경우에 사용됩니까? http://stackoverflow.com/questions/7273153/signal-processing-morse-code-decoding-with-android-application –

+0

속도가 지금 당장 문제되지 않습니다. (그것이 필요로하는 것보다 약 10 배 더 빠릅니다.) 어쨌든 시도해 보았습니다. 톤을 감지 할 때 상당히 피칭하지 않는 것으로 나타났습니다. 감사! –

+0

재미있는 소리. 샘플 녹음을 게시 할 수 있다면 시도해보고 싶습니다. – Luke

답변

1

대시와 공백을 서로 구분할 때 한 가지 아이디어는 대화의 시작에서 통계를 수집하고 모든 "XXms의 키 입력"이벤트를 하나의 배열 (또는 무언가)에 넣고 "YY ms not keyed "다른 배열 (또는 무언가)로. 그러면 키가있는 막대 그래프 확률 (t)과 키가 지정되지 않은 막대 그래프 확률 (t)이 표시됩니다. 이 히스토그램은 인간과 일부 알고리즘 모두에서 볼 수있는 최대 값과 최소값을 가져야합니다. 따라서 곡선의 반올림을 최소값으로 나누면 점을 왼쪽에서 대시로 오른쪽으로 구분할 수 있습니다. 공백이있는 최소값이 둘 이상일 수도 있습니다. 이 접근법은 실제로 대화를 잘 선택하지만 튜닝이 필요하지 않습니다.

+0

히스토그램을 의미합니까? –

+0

@ 닉 오텔 예 (텍스트로 고정). 확률이 아니라 카운트 (t)로 누적 될 가능성이 높습니다. 그러나 개념적으로 같은 것입니다. –