Як порівняти складні відповіді (та обґрунтування)?


11

Я розробляю програмне забезпечення, яке обчислює відповідь системи шляхом порівняння FFT вхідних і вихідних сигналів. Вхідні та вихідні сигнали поділяються на вікна, і для кожного вікна сигнали відбиваються посередньо та множать функцію Ханна. Відповідь інструменту для цього вікна - це співвідношення 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, але люди, з якими я працюю, відповіли, сказавши: "Добре, ми відображатимемо лише амплітуду".

Отже, мої запитання:

  • Чи правильно я вважаю, що другий підхід, як правило, неправильний і для амплітуд?
  • Якщо так, чи є якісь винятки, які можуть бути актуальними, і які можуть пояснити, чому люди, з якими я працюю, віддають перевагу другому методу? Наприклад, схоже, що два підходи погодиться, коли шум стає малим, тож, можливо, це прийняте наближення для низького рівня шуму?
  • Якщо другий підхід невірний, чи є якісь переконливі, авторитетні посилання, які я можу використати, щоб показати це?
  • Якщо другий підхід невірний, чи є хороші, прості для розуміння приклади, які показують це за амплітудою (як це в середньому для фази 0 і 360 градусів)?
  • Як варіант, якщо я невірний, що б мені було хорошою книгою, щоб я краще навчався?

Я намагався стверджувати, що середнє значення -1 1 1 -1 1 -1 -1 має бути нульовим, а не 1, але це було непереконливо. І хоча я думаю, що я міг би з часом побудувати аргумент, що ґрунтується на оцінці максимальної вірогідності з урахуванням конкретної шумової моделі, люди, з якими я працюю, не будуть слухати. Тож, якщо я не помиляюся, мені потрібен або вагомий аргумент влади, або «очевидна» демонстрація.

[Я намагався додати більше тегів, але не можу знайти відповідні і не можу визначити нових як нового користувача - вибачте]


Яку причину вони нехтують вашим методом?
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. Якщо ваші вимірювання входу та виходу y мають будь-який додатковий шум, то оцінка функції передачі буде неправильною.xy

Ваш метод та описаний нами метод обходять ці проблеми за допомогою когерентного усереднення .

Список літератури

Загальна ідея використання перекритих, усереднених сегментів для обчислення спектральної щільності потужності відома як метод Вельча . Я вважаю, що розширення використання цього методу для оцінки функцій передачі також часто називають методом Вельча, хоча я не впевнений, чи згадується він у роботі Велча. Перегляд паперу Велча може бути цінним ресурсом. Корисна монографія на цю тему - книга Бендата та Пірсола « Випадкові дані: процедури аналізу та вимірювання» .

Перевірка

Для перевірки вашого програмного забезпечення я пропоную застосувати кілька тестових випадків, коли ви генеруєте білий гауссовий шум і подаєте його через цифровий фільтр із відомою функцією передачі. Введіть входи та виходи в процедуру оцінки функції передачі та переконайтеся, що оцінка збігається з відомим значенням функції передачі.


ах! Дякую. я буду досліджувати / спробувати це.
andrew cooke

@nibot Які, точні, довжини FFT тут використовуються?
Спейси

Ви можете використовувати будь-яку довжину. Довжина визначає роздільну здатність, а, неявно (з урахуванням фіксованого обсягу даних для роботи), кількість середніх. Більш довгий fft = краща роздільна здатність, але й більші помилки через менший середній показник.
nibot

ок, ще одна відмінність полягає в тому, що у вас є <F (y) F * (x)> / <F (x) F * (x)>, тоді як у Phonon є <F (y)> <F * (x)> / (< F (x)> <F * (x)>) afaict: o (
andrew cooke

Немає сенсу обчислювати <F (y)> <F * (x)> / (<F (x)> <F * (x)>), оскільки <F * (x)> s скасується негайно. Я думаю, що це правильно, як я це написав.
nibot

12

Ласкаво просимо до обробки сигналів!

Ви абсолютно праві. Не можна просто середні величини та фази DFT окремо, особливо фази. Ось проста демонстрація:

z=a+bi|z|zz

|z|=a2+b2
z=tan1(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)2a12+b12+a22+b222

Також,

z=tan1(b1a1)+tan1(b2a2)2tan1(2(b1+b2)2(a1+a2))

|z|z

Тепер, щоб робити те, що ви намагаєтесь зробити, я пропоную наступне. Теоретично можна знайти імпульсну характеристику системи, поділивши 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
Дякую; я не був впевнений, чи голосувати за цього чи найбольше за найкращу відповідь - я думаю, що вони виступають за той самий процес, тому я пішов із рекомендацією книги, але якби у мене було два голоси, я б також включив це ...
andrew cooke

1
@andrewcooke Так, вони обидва виступають за абсолютно одне і те ж. Я сподіваюся, що це прояснить справи для вас і колег.
Фонон

це була величезна допомога для мене (ще раз дякую). у понеділок я запропоную мені (1) застосувати запропонований метод та (2) порівняти з відомими (синтетичними) даними для всіх трьох. то, сподіваємось, найкращий підхід переможе: o)
andrew cooke

@Phonon Які довжини FFT ми використовуємо для обчислення FFT тут? length_of_signal + max_length_of_channel + 1?
Спейси

@Mohammad Це має бути принаймні вдвічі довше затримки, яку ви очікуєте знайти. Це пов'язано з круговою симетрією DFT, тому ви отримаєте як причинно-наслідкові, так і позапричинні значення затримки у своєму результаті.
Фонон

3

Це різниця між когерентним та некогерентним усередненням спектрів FFT. Узгоджене усереднення швидше відхиляє випадковий шум в аналізі. Невідповідна швидше підкреслює випадкові величини шуму. Що з них важливіше для вашого звіту про результати?


якщо вони дають різні результати, я думаю, я хочу об'єктивну оцінку. чи неупереджений?
andrew cooke
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.