Преобразование Гильберта для экспериментальных спектров
Добавлено: 21 янв 2013, 07:31
Здравствуйте, уважаемые участники форума.
Заранее извиняюсь за неточности - тема для меня новая.
Возникла задача написать алгоритм, который делал бы преобразование Гильберта, то есть по действительной части функции комплексной функции восстанавливал мнимую.
Я рассматриваю частный случай, когда для физической величины, выраженной комплексной функцией, действительная и мнимая части не являются независимыми, а заведомо удовлетворяют условию ортогональности. Пример - диэлектрическая проницаемость ?*(f), где f - частота. Её действительная ?'(f) и мнимая ?''(f) части связаны соотношениями Крамерса-Кронига
http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 0%B3%D0%B0
которые аналогичны преобразованию Гильберта. Поэтому, зная спектр ?'(f), можно восстановить спектр ?''(f) и наоборот. Этим часто пользуются на практике, чтобы не делать лишних измерений.
Однако найти готовых программ, которые делали бы такое преобразование, мне не удалось, поэтому я решил написать алгоритм самостоятельно. Обычно я провожу численные расчёты в Wolframm Mathematica, и этот случай не стал исключением. Первые попытки показали, что если зависимость ?'(f) аппроксимируется элементарной функцией, особых проблем с преобразованием Гильберта не возникает (за исключением некоторых случаев расхождения интегралов, которые, по-видимому были связаны с особенностями выбранных элементарных функций). Но экспериментальная зависимость ?'(f) может быть какой угодно (но при этом гладкая), и чаще всего не аппроксимируется элементарными функциями. Поэтому необходим общий алгоритм, позволяющий обработку экспериментальных данных на конечном отрезке оси частот. Я был бы благодарен, если бы получил некоторые советы, какие основные этапы должен включать такой алгоритм. Основные вопросы представлены ниже.
Итак, с самого начала:
1. Есть "сырые" экспериментальные данные, представляющие зависимость ?'(f), заданную точками в частотном диапазоне от 1 Гц до 1 МГц. Интервалы между точками неравномерные, или равномерные в логарифмическом масштабе частоты. Каким образом нужно представить функцию для дальнейшей обработки? Интерполировать?
2. Для преобразования Фурье на конечном интервале времени используется умножение на оконную функцию. Как применить подобный подход для преобразования Гильберта?
Заранее извиняюсь за неточности - тема для меня новая.
Возникла задача написать алгоритм, который делал бы преобразование Гильберта, то есть по действительной части функции комплексной функции восстанавливал мнимую.
Я рассматриваю частный случай, когда для физической величины, выраженной комплексной функцией, действительная и мнимая части не являются независимыми, а заведомо удовлетворяют условию ортогональности. Пример - диэлектрическая проницаемость ?*(f), где f - частота. Её действительная ?'(f) и мнимая ?''(f) части связаны соотношениями Крамерса-Кронига
http://ru.wikipedia.org/wiki/%D0%A1%D0% ... 0%B3%D0%B0
которые аналогичны преобразованию Гильберта. Поэтому, зная спектр ?'(f), можно восстановить спектр ?''(f) и наоборот. Этим часто пользуются на практике, чтобы не делать лишних измерений.
Однако найти готовых программ, которые делали бы такое преобразование, мне не удалось, поэтому я решил написать алгоритм самостоятельно. Обычно я провожу численные расчёты в Wolframm Mathematica, и этот случай не стал исключением. Первые попытки показали, что если зависимость ?'(f) аппроксимируется элементарной функцией, особых проблем с преобразованием Гильберта не возникает (за исключением некоторых случаев расхождения интегралов, которые, по-видимому были связаны с особенностями выбранных элементарных функций). Но экспериментальная зависимость ?'(f) может быть какой угодно (но при этом гладкая), и чаще всего не аппроксимируется элементарными функциями. Поэтому необходим общий алгоритм, позволяющий обработку экспериментальных данных на конечном отрезке оси частот. Я был бы благодарен, если бы получил некоторые советы, какие основные этапы должен включать такой алгоритм. Основные вопросы представлены ниже.
Итак, с самого начала:
1. Есть "сырые" экспериментальные данные, представляющие зависимость ?'(f), заданную точками в частотном диапазоне от 1 Гц до 1 МГц. Интервалы между точками неравномерные, или равномерные в логарифмическом масштабе частоты. Каким образом нужно представить функцию для дальнейшей обработки? Интерполировать?
2. Для преобразования Фурье на конечном интервале времени используется умножение на оконную функцию. Как применить подобный подход для преобразования Гильберта?