FSK 복조, 비트 타이밍 복구


10

현재 음향 FSK 변조 및 복조를 구현하고 있습니다. 나는 신호 처리 전문가가 아니기 때문에 비트 타이밍 복구에 대한 도움을 주시면 감사하겠습니다. 현재는 I (위상의 차이가 각각의 톤에 대한 두 개의 정합 필터를 사용하여 구현 된 복조기 비 코 히어 런트 검출을위한). 기본적으로 각 필터의 ​​출력은 진폭이 다른 피크입니다. 두 가지 질문이 있습니다.90∘

  • 비트 타이밍 복구를 어떻게 수행 할 수 있습니까?
  • 패킷 동기화 프리앰블 (처프, 바커 코드, 골든 코드 등)에 권장하는 것은 무엇입니까?

Gardner 알고리즘을 검색했지만 적용 가능한지 여부와 방법을 잘 모르겠습니다. 현재 사운드 카드를 사용하여 800bps의 비트 전송률로 2 개의 주파수로 작업하고 있다고 가정하십시오.

답변:


8

현재 음향 FSK 변조 및 복조를 구현하고 있습니다. 나는 신호 처리자가 아닙니다…

필터가 일치한다고 말하고 비 일관성 감지에 대해 언급 했으므로 이미 디지털 커뮤니케이션 담당자라고 생각합니다. DSP 담당자가되는 단계는 매우 작습니다. :)

본격적인 동기화 기 SDR 접근 방식

2fsymbol,max

나는 빠른 실수 값 대역 통과 신호 FSK demod를 만들었다. (이를 다시 수행하면 두 개의 대역 통과 필터를 하나의 결합 된 주파수 변환과 하나의 저역 통과 필터로 교체하여 복잡한 기저 대역을 제공하거나 다상 필터 뱅크를 던졌다 고 생각한다 GNU Radio 컴패니언의 도움을 받아 GNU Radio에서 문제가 발생했습니다 ( 여기에서 플로우 그래프 파일 ).

FSK recv

요점은 아마도 분할과 임계 값 블록 사이에서 심볼 타이밍 동기화를 원한다는 것입니다. 우리는 나중에 고전적인 "마이크로 컨트롤러 및 디지털 하드웨어 디자인"접근 방식이 실제로 뮬러 앤 뮬러 클록 싱크 (Muller & Mueller clock sink)가 될 수 있으며, 그 기능도 마찬가지로 작동하지만 슬로프 정보를 낭비하지는 않겠습니다.

여기에 다상 클럭 동기화를 추가하겠습니다. 나는 해리스의 제자 인 톰 이 시조 GNU 라디오 블록 의 문서에서했던 것보다 더 잘 공식화 할 수 없다는 것을 인정해야한다 .

다상 필터 뱅크를 사용하는 타이밍 동기화 기.

이 블록은 필터링 된 신호의 미분을 최소화하여 PAM 신호에 대한 타이밍 동기화를 수행하며, 이는 SNR을 최대화하고 ISI를 최소화합니다.

sincsinc(0)=1,sinc′(0)=0

di[n]ixi[n]

e[n]=ℜ{xi[n]}⋅ℜ{di[n]}+ℑ{xi[n]}⋅ℑ{di[n]}2.0 .

xi[n]xi[n]xi[n]부호 대신 SNR이 낮은 신호에 특히 좋습니다.

e[n]dkdratedratedratedkdratedkdαdβdαdβgain24

이것이 오디오 주파수임을 인식

그래서, 제대로이 블록을 매개 변수화 (그리고 아마도 감소 bpf_decim및 lpf_decim변화 단계에 더 많은 헤드 룸 싱크로 나이저를 제공하는) 당신은 매우 안정적인 심볼 타이밍 복구를 만들 수, 그 응용 프로그램에 대한 완전히 잔인한 것 😁

양쪽 끝에 사운드 카드를 사용하여 샘플링을 수행하고 도플러를 처리 할 필요가 없다고 가정하기 때문에 심볼 속도는 반송파 주파수와 고정 된 관계를 갖습니다 (예 : 전송 측의 반송파는 8 개의 사운드 카드 샘플 기간이 있고 심볼에는 항상 128 샘플이 있다고 가정하므로 고정 비율이 있습니다)) 바로 가기를 취할 수 있습니다.

darctandt[n]

패킷 동기화에 대하여

신호가 없을 때 동기화가 너무 많이 실행되는 복조기가 작동하므로 알려진 고정 데이터 시퀀스를 사용하여 패킷을 찾으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.