매우 낮은 주파수 (250Hz)로 신호를 보내는 가장 좋은 방법은 무엇입니까?


8

저는 전자 질문에 직면 한 프로그래머이므로 여기에 물어볼 곳이라고 생각했습니다!

  • 초당 250 번 자기장 값 (XYZ 축)을 제공하는 자기장 센서가 있습니다.
  • 프로그래밍 가능한 마이크로 프로세서가있는 전자 회로는 코일을 제어하여이 센서에 충분히 가까운 자기장을 변경할 수 있습니다. 그러나 두 장치가 엄격하게 배치되지 않았으므로 위치 측정을 중계 할 수 없습니다.
  • 회로에서 센서로 2 가지 유형의 신호를 보내고 싶습니다.이 신호는 자기장의 강한 노이즈를 견딜 수 있으며 0.5 초보다 짧습니다 (예, 초-우리는 250 Hz에 있습니다!)

현재 솔루션은 신호 A에 대해 17Hz 구형파, 12Hz, 17Hz를 전송하여 신호 B에 대한 순서를 반대로하는 것입니다. 그러나 이러한 신호를 감지하려면 충분히 긴 파도를 보내 신호의 길이를 약 1.5로 설정해야합니다. 초.

제 질문은 여기에 있습니다 : 더 빠른 신호를 보내는 데 사용될 수있는 음악적 패턴과 같은 패턴이 여전히 신뢰할 수있는 방법이 있습니까?

답변:


7

250Hz의 샘플 속도로 100 비트 / 초 이상을 쉽게 전송할 수 있습니다. 0.5 초 안에 50-60 비트 정도입니다.

문제는 서로 쉽게 구별 할 수있는 비트 패턴과 외부 노이즈 및 간섭과 같은 비트 패턴을 선택해야합니까? 일반적인 해결책은 원하는 낮은 상호 상관을 갖는 의사 난수 비트 시퀀스 ( 바커 코드 라고도 함)를 사용 하는 것입니다.

" 매칭 필터 " 라고하는 DSP 기술을 사용하여 코드를 감지 할 수 있습니다.


재미 있겠다! 그러나 계산적으로 복잡한 "일치 필터"가 얼마나 복잡한 지 방황하고 있습니까? 무거운 FFT / 기타 계산이 필요합니까?
rubmz

Matched Filter에 대한 C ++ 구현을 확인했으며 신호를 감지하려면 상당한 계산이 필요한 것 같습니다. 따라서 센서 측 코드가 RT 환경에서 실행되기 때문에 나에게 유용하지 않을 수 있으므로 너무 많은 계산없이 0.5 초 이내에 2 가지 유형의 신호를 보낼 수있는 다른 필터가 있습니다 ?
rubmz

2
푸리에 변환은 필요하지 않지만 3 개의 입력 채널 각각에 대해 FIR (유한 임펄스 응답) 필터와 동등한 것이 필요합니다. 이는 모든 새 채널에 대해 2 개의 128- 샘플 벡터에 대해 도트 곱을 수행하는 것과 수학적으로 같습니다. 들어오는 샘플 (필터 당 매초 총 ~ 33k 곱하기 추가 연산 또는 총 약 100k MAC / 초)에 대해 128 곱하기 및 128 더하기 (초당 250 회). Microchip dsPIC와 같은 초저가 DSP 칩조차도 이러한 종류의 실시간 계산을 쉽게 처리 할 수 ​​있습니다.
Dave Tweed

2
명확히하기 위해 감지 할 수있는 각 코드마다 별도로 계산을 실행해야합니다. 예를 들어, 언제라도 하나의 코드를 전송할 수있는 10 개의 서로 다른 코드가있는 경우 총 10 만 개의 일치 필터를 병렬로 실행해야합니다. dsPIC 또는 유사한 칩. 응용 프로그램에서 더 짧은 코드가 충분히 견고하면 해당하는 더 짧은 필터를 사용할 수 있으며 계산 부하가 비례 적으로 떨어집니다.
Dave Tweed
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.