복잡한 반응 (및 정당화)을 평균화하는 방법은 무엇입니까?


11

입력 및 출력 신호의 FFT를 비교하여 시스템의 응답을 계산하는 소프트웨어를 개발 중입니다. 입력 및 출력 신호는 창으로 분할되며 각 창마다 신호가 중간 빼기되고 Hann 함수가 곱해집니다. 해당 창에 대한 계측기 응답은 처리 된 데이터의 FFT 비율입니다.

나는 위의 표준 절차라고 생각하지만, 잘 설명하지는 못합니다. 내 문제는 여러 창에서 응답을 결합하는 방법에 있습니다.

내가 알 수있는 한, 올바른 접근 방식은 모든 창에서 복잡한 값을 평균화하는 것입니다. 진폭 및 위상 응답은 각 주파수에서 평균의 복잡한 값의 진폭 및 위상입니다.

av_response = sum_windows(response) / n
av_amplitude = sqrt(real(av_response)**2 + imag(av_response)**2)
av_phase = atan2(imag(av_response), real(av_response))

주파수 빈에 대한 암시 적 루프.

그러나 각 창에서 진폭과 위상을 먼저 계산 한 다음 모든 창에서 진폭과 위상을 평균화하도록 이것을 변경하라는 요청을 받았습니다 .

amplitude = sqrt(real(response)**2 + imag(response)**2)
av_amplitude = sum_windows(amplitude) / n
phase = atan2(imag(response), real(response))
av_phase = sum_windows(phase) / n

예를 들어 평균 각도가 "정확하지 않기"때문에 이것이 잘못되었다고 주장했습니다. 예를 들어 평균 0과 360 도는 180입니다. 그러나 함께 일하는 사람들은 "OK, 우리는 진폭 만 표시합니다"라고 대답했습니다.

그래서 내 질문은 :

  • 두 번째 접근 방식이 일반적으로 진폭에도 올바르지 않다고 생각하는 것이 맞습니까?
  • 그렇다면 관련이있을 수있는 예외가 있습니까? 그리고 내가 함께 일하는 사람들이 두 번째 방법을 선호하는 이유를 설명 할 수있는 것은 무엇입니까? 예를 들어, 잡음이 작아 질수록 두 가지 접근 방식에 동의하는 것 같습니다. 아마도 이것이 저잡음에 대한 근사치일까요?
  • 두 번째 접근 방식이 올바르지 않은 경우이를 증명하는 데 사용할 수있는 설득력 있고 신뢰할만한 참조가 있습니까?
  • 두 번째 접근 방식이 올바르지 않은 경우 진폭에 대해이를 보여주는 좋은 이해하기 쉬운 예가 있습니까 (평균 0 및 360도 위상에 대해)?
  • 또는 내가 틀렸다 면 나 자신을 더 잘 교육시키는 좋은 책은 무엇입니까?

나는 평균 -1 1 -1 1 -1 -1의 평균값이 1이 아니라 0이어야한다고 주장하려했지만 설득력이 없었다. 시간이 지남에 따라 특정 노이즈 모델을 고려할 때 최대 가능성 추정을 기반으로 한 논증을 구성 할 수 있다고 생각하지만, 함께 일하는 사람들이들을 수있는 이유는 아닙니다. 따라서 내가 틀리지 않으면 권위의 강력한 논증이나 "명백한"시위가 필요합니다.

[태그를 추가하려고했지만 관련 태그를 찾을 수없고 새 사용자로 새 태그를 정의 할 수 없습니다-죄송합니다]


그들이 당신의 방법을 싫어하는 이유는 무엇입니까?
— nibot

두 번째 방법으로 플롯하면 응답이 더 부드럽게 보입니다. 필자는이 사례를 살펴보면 유의미한 신호 (f는 높음)가없고 두 번째 접근 방식에서는 신호가 노이즈에서 "나타나도록"강제하기 때문이라고 생각합니다. 또한, 당신이 짐작할 수있는 다양한 정치 / 통신 문제들.
— Andrew cooke

1
몇 가지 테스트 사례를 제공하려고 했습니까? 임의의 데이터를 취하여 알려진 주파수 응답이있는 일부 필터를 통해 필터링하십시오. 전달 함수 추정치가 알려진 전달 함수로 수렴되는지 확인하십시오.
— nibot

아니. 나는하지 않았다. 좋은 제안입니다. 감사. 제대로 제시되면 설득력이 있음을 알 수있었습니다.
— Andrew cooke

답변:


13

전달 함수 추정은 일반적으로 설명하는 방법과 약간 다르게 구현됩니다.

당신의 방법은 계산

⟨F[y]F[x]⟩

여기서 꺾쇠 괄호 은 데이터 세그먼트에 대해 취한 평균을 나타내며, 푸리에 변환 ( )을 수행 하기 전에 각 데이터 세그먼트에 윈도우 함수가 적용됩니다 .⟩ F⟨⟩F

보다 일반적인 구현은 x와 y의 스펙트럼 간 밀도 를 x의 전력 스펙트럼 밀도 로 나눈 값을 계산합니다 .

⟨F[y]⋅F[x]∗⟩⟨|F[x]|2⟩=⟨F[y]⋅F[x]∗⟩⟨F[x]⋅F[x]∗⟩

여기서 는 점별 곱을 나타내며 복합 복소수입니다.∗⋅∗

이것은 빈이 지나치게 작은 데이터 세그먼트의 영향을 줄이는 것이라고 생각합니다 .F[x]

일관되지 않은 추정

고용주는 다음을 사용하여 전달 함수를 추정 할 것을 제안했습니다.

|⟨F[y]|⟩⟨|F[x]|⟩

이것은 작동 하지만 두 가지 큰 단점이 있습니다.

  1. 위상 정보가 없습니다.
  2. 입력 및 출력 대한 측정에 추가 노이즈가 있으면 전달 함수 추정이 정확하지 않습니다.xy

내가 설명한 방법과 방법은 일관된 평균 을 사용하여 이러한 문제를 피할 수 있습니다 .

참고 문헌

겹치는 평균 세그먼트를 사용하여 전력 스펙트럼 밀도를 계산하는 일반적인 아이디어를 Welch의 방법이라고 합니다. 전달 함수 를 추정하기 위해 이것을 사용하는 확장 은 Welch의 방법으로도 알려져 있지만 Welch의 논문에 언급되어 있는지 확실하지 않습니다. Welch의 논문을 찾는 것은 귀중한 자원 일 수 있습니다. 이 주제에 대한 유용한 논문은 Bendat and Piersol의 저서 인 Random Data : Analysis and Measurement Procedures 입니다.

확인

소프트웨어의 유효성을 검사하기 위해 가우시안 화이트 노이즈를 생성하고 알려진 전송 기능이있는 디지털 필터를 통해 공급하는 몇 가지 테스트 사례를 적용하는 것이 좋습니다. 입력 및 출력을 전달 함수 추정 루틴에 공급하고 추정값이 전달 함수의 알려진 값으로 수렴되는지 확인하십시오.


아! 감사합니다. 나는 이것을 조사 / 시도 할 것입니다.
— 앤드류 쿡

@nibot 여기서 정확히 사용되는 FFT 길이는 무엇입니까?
— Spacey

당신은 어떤 길이를 사용할 수 있습니다. 길이는 해상도 및 내재적으로 (작업 할 고정 된 양의 데이터 제공) 평균 수를 결정합니다. fft가 길수록 해상도가 좋아 지지만 평균이 낮아 오류가 커집니다.
— nibot

좋아, 또 다른 차이점은 <F (y) F * (x)> / <F (x) F * (x)>이고 Phonon에는 <F (y)> <F * (x)> / (< F (x)는> <F * AFAICT (X)는>) : O (
— 앤드류 쿡

<F * (x)>는 즉시 취소되므로 <F (y)> <F * (x)> / (<F (x)> <F * (x)>)를 계산할 필요가 없습니다. 내가 쓴대로 맞다고 생각합니다.
— nibot

12

신호 처리에 오신 것을 환영합니다!

당신 말이 맞아요 DFT 크기와 위상, 특히 위상을 개별적으로 평균화 할 수는 없습니다. 다음은 간단한 데모입니다.

이라고하자 . 정의에 따라 크기 의 위상 는 다음과 같습니다.z=a+bi|z|∠zz

|z|=a2+b2
∠z=tan−1⁡(ba)

두 개의 복소수 값 및 의 평균 는zz1z2

z=z1+z22=a1+b1i+a2+b2i2=(a1+a2)+(b1+b2)i2

이 경우

|z|=(a1+a2)24+(b1+b2)24=12(a1+a2)2+(b1+b2)2≠a12+b12+a22+b222

또한,

∠z=tan−1⁡(b1a1)+tan−1⁡(b2a2)2≠tan−1⁡(2(b1+b2)2(a1+a2))

이러한 불평등의 정도를 비교하면 의 근사값을 말할 수 있습니다. 에 대한 근사값 은 완전히 의미가없는 2 차 항에 의해 해제됩니다 .|z|∠z

지금, 당신이하려는 일을하기 위해 다음을 제안합니다. 이론적으로 출력의 DFT를 입력의 DFT로 나누어 시스템의 임펄스 응답을 찾을 수 있습니다. 그러나 노이즈가있는 경우 매우 이상한 결과를 얻을 수 있습니다. 약간 더 나은 방법은 다음과 같은 이중 채널 FFT 임펄스 응답 추정을 사용하는 것입니다 (여기서는 제공되지 않지만 온라인에서 찾을 수 있음).

하자 , 의 DFT 인 - 차 (따라서 첨자 ) (첨자 따라서 입력 신호의 청크를 윈도 윙 위한 입력 ). 마찬가지로 출력 신호의 경우 . 신호는 단순히 윈도우 DFT의 평균 이라는 것을 알 수 있습니다 . 임펄스 응답 대한 통계적 듀얼 채널 FFT 근사 는 다음과 같이 주어진다.Gi(f)=Fi1(f)+Fi2(f)+⋯+FiN(f)NFik(f)kkiGo(f)=Fo1(f)+Fo2(f)+⋯+FoN(f)NGH^(f)H(f)

H^(f)=Go(f)Gi∗(f)|Gi(f)|2

여기서 는 복잡한 활용을 나타냅니다 (모든 가상 부품의 부호를 뒤집습니다).(⋅)∗


2
감사; 이 답변이나 니봇의 가장 좋은 답변으로 투표 할 지 확신이 없었습니다. 그들은 동일한 절차를 옹호하고 있다고 생각합니다. 따라서 도서 추천서와 함께 갔지만, 2 개의 투표권이 있다면 이것도 포함했을 것입니다 ...
— Andrew cooke

1
@andrewcooke 네, 둘 다 똑같은 것을 옹호합니다. 이것이 당신과 당신 동료들을 위해 일을 정리하기를 바랍니다.
— Phonon

그것은 나를 위해 큰 도움이되었습니다 (다시 감사합니다). 월요일에 나는 (1) 제안 된 방법을 구현하고 (2) 세 가지 모두에 대해 알려진 (합성) 데이터와 비교할 것을 제안 할 것이다. 그렇다면 최선의 접근 방식이 이길 것입니다 : o)
— Andrew cooke

@Phonon 여기서 FFT를 계산하기 위해 어떤 FFT 길이를 사용하고 있습니까? length_of_signal + max_length_of_channel + 1?
— Spacey

@Mohammad 적어도 예상되는 지연 시간의 두 배가되어야합니다. 이는 DFT의 원형 대칭으로 인한 것이므로 결과에 인과 관계와 비인 과적 지연 값이 모두 있습니다.
— Phonon

3

이것은 FFT 스펙트럼의 코 히어 런트와 코 히어 런트 평균의 차이입니다. 코 히어 런트 평균은 분석에서 랜덤 노이즈를 거부 할 가능성이 높습니다. 비 간섭은 임의 노이즈 크기를 강조 할 가능성이 높습니다. 이 중 어느 것이 결과 보고서에 더 중요합니까?


그들이 다른 결과를 주면 나는 편견없는 추정을 원한다고 생각합니다. 편견이 있습니까?
— Andrew cooke
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.