두 개의 스피커에서 방출 된 초음파 신호를 사용하여 휴대 전화를 지리적 위치 (스피커에 대한)로 지정하는 상당히 간단한 TDOA 시스템을 만들었습니다. 두 신호는 주파수로 분리됩니다.
시스템에는 다음과 같은 제약 조건이 있습니다.
- 신호가 들리지 않아야합니다. 이를 위해 17kHz 이상의 주파수를 사용합니다. 몇몇 사람들은 여전히 그것을들을 수 있지만 대부분은들을 수 없습니다.
- 샘플링 속도는 44.1kHz입니다.
- 일반적으로 음악이 재생되므로 낮은 주파수에서 많은 간섭이 발생합니다.
- 스피커와 마이크가 더 높은 주파수에서 얼마나 잘 작동하는지 제어 할 수 없으므로 상한을 약 20kHz로 유지했습니다.
내가 사용하고있는 특정 신호는 좋은 자기 상관 특성으로 인해 BPSK 변조 된 13 비트 바커 코드입니다. 자기 상관은 다음과 같습니다.
그래도 예상 신호와 실제 수신 신호를 상호 연관시킬 때 일반적으로 얻는 것은 다음과 같습니다.
파란색은 스피커 1 신호와의 상호 상관 관계이고 빨간색은 스피커 2 신호와의 상호 상관 관계입니다. 에코의 영향은 유감 스럽지만 불행히도 마이크의 방향성 이득으로 인해 직접 경로 신호보다 강한 경우가 많습니다.
직접 경로 일 가능성이 높기 때문에 신호의 가장 빠른 모양을 감지하려고했습니다. 이 접근법은 신호가 존재하는 시점을 결정하는 데 사용하는 임계 값에 매우 민감하므로 전혀 견고하지 않습니다.
신호의 "진정한"도착 시간, 즉 직접 경로 신호의 도착 시간을 결정하는 강력한 접근 방법을 원합니다. 아마도 어떤 형태의 채널 추정 및 디컨 볼 루션? 그렇다면 어떻게 작동합니까?
데이터 / 코드 : 데이터를 분석하거나 코드를 검사 할 사람이 아무도 없다는 것을 분명히하고 싶습니다. 원하는 경우에 대비하여 사용할 수 있도록 만들었습니다. 나는 대부분 아이디어에 관심이 있습니다.
원시 수신 신호와 변조 된 예상 신호를 다운로드 할 수있게 만들었습니다. 그것들은 모두 44.1 kHz에서 샘플링됩니다. 수신 신호를 예상 신호와 상관 시키면 수신 신호를 기저 대역으로 이동하고 예상 신호와 상관시키기 전에 데시 메이션하기 때문에 위의 그림과 유사하지만 동일하지는 않습니다.
Matlab 스크립트 Matlab 스크립트에는 신호 생성 스크립트 (genLocationSig.m)와 수신 / 처리 스크립트 (calcTimingOffset.m)가 있습니다.