svv осмыслил все, что вы написали, большое спасибо за развернутый ответ.
Собственно эффект называется растекание спектра.
Поэкспериментировал. Работает.
Хочется это переложить в программу и максимально автоматизировать.
Первое, что пришло в голову это искусственное увеличение разрешения разложения, путем добавления нулей к сигналу.
Работает, но бесконечно увеличивать разрешение очевидно не получится. Ситуация конечно улучшается но не разрешается полностью.
Попробовал задачу решать несколько иначе. Очевидно:
Где:
- амплитуда гармоники;
- начальная фаза гармоники;
- начальное значение дискретного ряда гармоники;
Решая данное уравнение относительно
, можно найти начальную фазу.
Но очевидно тут те же проблемы, из за растекания спектра не получить точное значение амплитуды, что сильно влияет на результат. Да и вычислительно очень затратно, нужно выделить гармонику из спектра для получения начального отсчета.
Попробовал гетеродирование сигнала.
Умножаю сигнал на
Где:
- малая величина, на которую мы хотим сместить гармонику по частоте в спектре АЧХ.
- номер дискретного отсчета.
Гетеродирование применяю в первый раз.
Да, сигнал разделяется на 2 рядом стоящих, можно подобрать такое значение
чтобы один из них совпал с дискретным отсчетом спектра и не растекался. Но второй все равно стоит рядом и его растекание все портит.
По теории если
выбрать достаточно большим, то второй образовавшийся сигнал должен уйти за пределы спектра. Но такого у меня не происходит, они вместе ездят по спектру на достаточно близком расстоянии.
В общем данным методом точно амплитуду я так и не смог выделить.
Кто нибудь знает как грамотно применить гетеродирование и таки сместить гармонику в спектре АЧХ для ее четкой идентификации?
Нет ли еще каких либо способов выделить параметры гармоник, желательно автоматизированных без ручного анализа?