Zajmuję się tworzeniem oprogramowania, które oblicza odpowiedź systemu poprzez porównanie FFT sygnałów wejściowych i wyjściowych. Sygnały wejściowy i wyjściowy są podzielone na okna i dla każdego okna sygnały są odejmowane mediany i mnożone przez funkcję Hann. Reakcja instrumentu dla tego okna jest wówczas stosunkiem FFT przetwarzanych danych.
Uważam, że powyższe jest standardową procedurą, chociaż być może źle ją opisuję. Mój problem polega na tym, jak połączyć odpowiedzi z wielu okien.
O ile widzę, poprawne podejście polega na uśrednieniu wartości złożonych we wszystkich oknach. Amplituda i odpowiedź fazowa są wówczas amplitudą i fazą średniej wartości zespolonej dla każdej częstotliwości:
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))
z niejawnymi pętlami nad przedziałami częstotliwości.
Ale zostałem poproszony o zmianę tego, aby najpierw obliczyć amplitudę i fazę w każdym oknie , a następnie uśrednić amplitudy i fazy we wszystkich oknach:
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
Argumentowałem, że jest to niepoprawne, ponieważ uśrednianie kątów jest „po prostu złe” - na przykład średnia 0 i 360 stopni wynosi 180, ale ludzie, z którymi pracuję, odpowiedzieli „OK, pokażemy tylko amplitudę”.
Więc moje pytania to:
- Czy mam rację sądząc, że drugie podejście jest generalnie niewłaściwe również dla amplitud?
- Jeśli tak, to czy są jakieś wyjątki, które mogą być istotne i które mogą wyjaśnić, dlaczego ludzie, z którymi pracuję, wolą drugą metodę? Na przykład wygląda na to, że oba podejścia się ze sobą zgadzają, ponieważ hałas staje się mały, więc może jest to przyjęte przybliżenie niskiego poziomu hałasu?
- Jeśli drugie podejście jest nieprawidłowe, czy istnieją jakieś przekonujące, autorytatywne odniesienia, których mogę użyć, aby to pokazać?
- Jeśli drugie podejście jest niepoprawne, czy istnieją jakieś dobre, łatwe do zrozumienia przykłady, które pokazują to dla amplitudy (podobnie jak dla fazy 0 i 360 stopni)?
- Ewentualnie, jeśli się mylę , jaka byłaby dobra książka dla mnie, aby lepiej się kształcić?
Próbowałem argumentować, że średnia -1 1 1 -1 -1 1 -1 -1 powinna wynosić zero zamiast 1, ale to nie było przekonujące. I chociaż wydaje mi się, że z czasem mogłem skonstruować argument oparty na oszacowaniu maksymalnego prawdopodobieństwa, biorąc pod uwagę konkretny model hałasu, nie jest to rodzaj rozumowania, którego słuchają ludzie, z którymi pracuję. Więc jeśli się nie mylę, potrzebuję mocnego argumentu ze strony autorytetu lub „oczywistej” demonstracji.
[Próbowałem dodać więcej tagów, ale nie mogę znaleźć odpowiednich i nie mogę zdefiniować nowych jako nowy użytkownik - przepraszam]
źródło
Odpowiedzi:
Oszacowanie funkcji przenoszenia jest zwykle realizowane nieco inaczej niż opisana metoda.
Twoja metoda jest obliczana
Bardziej typowa implementacja obliczy gęstość widmową krzyża xiy podzieloną przez gęstość widmową mocy x:
Niespójne oszacowanie
Twój pracodawca zasugerował, abyś oszacował za pomocą funkcji przeniesienia
To zadziała , ale ma dwie duże wady:
Twoja metoda i metoda, którą opisałem, omijają te problemy, stosując spójne uśrednianie .
Bibliografia
Ogólna idea stosowania nakładających się, uśrednionych segmentów do obliczania gęstości widmowych mocy jest znana jako metoda Welcha . Uważam, że rozszerzenie zastosowania tego do szacowania funkcji przenoszenia jest często znane jako metoda Welcha, chociaż nie jestem pewien, czy wspomniano o tym w pracy Welcha. Przyglądanie się pracy Welcha może być cennym zasobem. Przydatną monografią na ten temat jest książka Bendata i Piersola „ Random Data: Analysis and Measurement Procedures” .
Uprawomocnienie
Aby sprawdzić poprawność oprogramowania, sugeruję zastosowanie kilku przypadków testowych, w których generujesz biały szum Gaussa i przepuszczasz go przez filtr cyfrowy o znanej funkcji przenoszenia. Wprowadź dane wejściowe i wyjściowe do procedury szacowania funkcji przenoszenia i sprawdź, czy oszacowanie jest zbieżne ze znaną wartością funkcji przenoszenia.
źródło
Witamy w Signal Processing!
Masz całkowitą rację. Nie można po prostu uśrednić wielkości DFT i faz oddzielnie, szczególnie faz. Oto prosta demonstracja:
W tym przypadku,
Również,
Teraz, aby zrobić to, co próbujesz zrobić, proponuję następujące. Teoretycznie odpowiedź impulsową systemu można znaleźć, dzieląc DFT wyniku przez DFT wejścia. Jednak w obecności hałasu uzyskasz bardzo dziwne wyniki. Nieco lepszym sposobem na to byłoby użycie dwukanałowej estymacji odpowiedzi impulsowej FFT, która wygląda następująco (nie podano tutaj pochodnej, ale można ją znaleźć online).
źródło
Jest to różnica między spójnym a niespójnym uśrednianiem widm FFT. Spójne uśrednianie jest bardziej prawdopodobne, aby odrzucić przypadkowy szum w analizie. Niespójne jest bardziej prawdopodobne, że zaakcentuje przypadkowe wielkości hałasu. Który z nich jest ważniejszy dla raportu z wyników?
źródło