잡음이 발생하는 톤 버스트의 시작 시간을 추정합니까?


14

시끄러운 신호에서 정현파 톤 버스트의 시작 시간을 추정하기 위해 어떤 기술을 사용할 수 있습니까?

톤 버스트에 알려진 고정 주파수 (알 수없는 위상)와 매우 급격한 상승 시간이 있고, 목표는 상승 시간의 절반보다 나은 시간 및 / 또는 톤 주파수의 한주기 내에서 시작 시간을 추정하는 것이라고 가정합니다. , 가능하다면. S / N 비율이 매우 낮 으면 (1보다 훨씬 작음) 추정 기법이 어떻게 변할 수 있습니까?

추가 : 톤 버스트의 길이는 알 수 없지만 상승 시간과 주파수주기의 작은 배수보다 길다고 가정합니다.

추가 : DFT / FFT는 매우 가능성있는 톤의 존재를 보여줍니다. 문제는 FFT 창에서 FFT 창 내에서 톤 (또는 동일한 주파수의 다중 톤 버스트)이 시작된 위치를 정확하게 파악하거나 현재 톤이 해당 DFT 창 밖에서 시작되었는지 확인하는 것입니다. 추가 시간 도메인 데이터.

레이더 펄스 감지 정확도는 톤의 길이가 알려지지 않았고 알려진 상승 시간이 아닌 변조되지 않은 경우에 가장자리 만있는 것을 제외하고는 필요한 분해능에 더 가깝습니다. 협 대역 통과 필터는 상승 시간을 왜곡하여 에지 도착 추정 분해능을 제거합니다.


1
우리는 소음에 대해 무엇을 가정 할 수 있습니까? 고정되어 있습니까? 어떤 종류의 배포판을 따르고 있습니까?
Phonon

2
탐지기의 잘못된 경보는 바람직하지 않습니까? 각 펄스를 올바르게 감지 할 확률에 대한 사양이 있습니까? 이는 프론트 엔드 레이더 신호 처리와 매우 유사합니다. 노이즈에 임베드 된 (가능하게 변조 된) 펄스를 찾아서 해당 파라미터를 추정합니다.
Jason R

1
실시간으로해야합니까, 아니면 오프라인 분석입니까?
nibot

2
@ hotpaw2 : 당신은에 대해 어떻게 좋아하지 않았다 Goertzel 알고리즘 에 따라 이 SO의 대답은 ?
Peter K.

1
Goertzel 알고리즘은 톤 감지에 사용됩니다. 필터의 출력은 튜닝되는 주파수에서 신호의 "전력"을 추정 한 것입니다. 임계 값을 선택하십시오. 필터 출력이 이보다 높으면 신호음을 감지 한 것입니다. 임계 값을 적절하게 설정하면 톤의 시작을 조기에 감지 할 수 있습니다 (또한 잘못된 경보가 발생하기 쉽습니다).
Peter K.

답변:


6

주석에서 논의했듯이 Goertzel 알고리즘 은 노이즈 톤을 감지하는 일반적인 방법입니다. 토론 후, 나는 그것이 당신이 무엇을 겪고 있는지 확신 할 수 없지만 ( 시작 시간 을 원합니다 ) Goertzel 알고리즘이 문제에 어떻게 적용될 수 있는지 혼란스러워 보였습니다. 여기.

고 르트 젤 알고리즘

Goertzel 알고리즘은 원하는 톤의 주파수를 알고 있고 ( 라고 부르는 경우 ) 적절한 감지 임계 값을 선택할 수 있도록 노이즈 레벨에 대한 합리적인 아이디어가있는 경우 사용하는 것이 좋습니다.fg

Goertzel 알고리즘은 항상 ONE FFT bin의 출력을 계산하는 것으로 생각할 수 있습니다.

y(n)=eȷ2πfgnk=0nx(n)eȷ2πfgk

여기서 는 원하는 주파수입니다.fg

Wikipedia 페이지에서 이를 계산하는 더 좋은 방법이 있습니다.

Scilab 을 구현하려는 시도 는 다음과 같습니다 .

function [y,resultr,resulti] = goertzel(f_goertzel,x)
realW = 2.0*cos(2.0*%pi*f_goertzel);
imagW = sin(2.0*%pi*f_goertzel);

d1 = 0;
d2 = 0;

for n = 0:length(x)-1,
    y(n+1) = x(n+1) + realW*d1 - d2;
    d2 = d1;
    d1 = y(n+1);
    resultr(n+1) = 0.5*realW*d1 - d2;
    resulti(n+1) = imagW*d1;
end
endfunction

ϕ = 4.4318752 인 신호를 고려하십시오 .f=0.0239074ϕ=4.4318752

x=sin(2πfn+ϕ)+ϵ(n)

ϵ(n)

이 예에서, 톤은 인덱스 (1001)에서 신호의 1/3을 시작한다.

fg=f0.001

fg=f

네 가지 흔적은 다음과 같습니다.

  • xyfg=0.0229074
  • resultr2+resulti2
  • xyfg=0.0239074
  • resultr2+resulti2

보시다시피, 우리가 관심있는 톤은 약 250에서 피크입니다. 감지 임계 값을이 값의 약 절반으로 설정하면 (125) 감지가 발생합니다 (제곱근 값은 125보다 큼). ) 톤 시작 후 약 인덱스 1450 --- 450 샘플.

이 임계 값 (125)은 다른 경우 (이 실행의 경우)에 감지를 유발하지 않지만 해당 출력의 최대 값은 115.24이므로 잘못된 감지를하지 않으면 임계 값을 너무 줄일 수 없습니다.

임계 값을 116으로 줄이면 인덱스 1401에서 실제 (이 실행의 경우) 탐지가 발생하지만 더 많은 잘못된 경보의 위험이 있습니다.

여기에 이미지 설명을 입력하십시오


고정 길이 창 내에서만 존재 추정치를 찾는 경우 실행중인 Goertzel 필터가 더 적합합니다. 손실 / 부패 기간이없는 Goertzel을 실행하면 길이에 따라 대역폭이 변경되고 나중에 대역폭이 좁을수록 도착 시간 추정치가 악화되고 노이즈 및 임계 값 오류에 더 민감합니다.
hotpaw2

@ hotpaw2 : 맞습니다. Goertzel을 계속 실행하기 위해 "잊어 버리는 요인"을 도입 할 수 있지만 그렇지 않으면 모든 것을 기억합니다.
Peter K.

모든 것을 기억합니까? 재귀 형태로 구현할 수있는 FIR입니다. 여기서 무엇을 놓쳤습니까?
Oliver Charlesworth

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