svv осмыслил все, что вы написали, большое спасибо за развернутый ответ.
Собственно эффект называется растекание спектра.
Поэкспериментировал. Работает.
Хочется это переложить в программу и максимально автоматизировать.
Первое, что пришло в голову это искусственное увеличение разрешения разложения, путем добавления нулей к сигналу.
Работает, но бесконечно увеличивать разрешение очевидно не получится. Ситуация конечно улучшается но не разрешается полностью.
Попробовал задачу решать несколько иначе. Очевидно:

Где:

- амплитуда гармоники;

- начальная фаза гармоники;

- начальное значение дискретного ряда гармоники;
Решая данное уравнение относительно

, можно найти начальную фазу.
Но очевидно тут те же проблемы, из за растекания спектра не получить точное значение амплитуды, что сильно влияет на результат. Да и вычислительно очень затратно, нужно выделить гармонику из спектра для получения начального отсчета.
Попробовал гетеродирование сигнала.
Умножаю сигнал на

Где:

- малая величина, на которую мы хотим сместить гармонику по частоте в спектре АЧХ.

- номер дискретного отсчета.
Гетеродирование применяю в первый раз.
Да, сигнал разделяется на 2 рядом стоящих, можно подобрать такое значение

чтобы один из них совпал с дискретным отсчетом спектра и не растекался. Но второй все равно стоит рядом и его растекание все портит.
По теории если

выбрать достаточно большим, то второй образовавшийся сигнал должен уйти за пределы спектра. Но такого у меня не происходит, они вместе ездят по спектру на достаточно близком расстоянии.
В общем данным методом точно амплитуду я так и не смог выделить.
Кто нибудь знает как грамотно применить гетеродирование и таки сместить гармонику в спектре АЧХ для ее четкой идентификации?
Нет ли еще каких либо способов выделить параметры гармоник, желательно автоматизированных без ручного анализа?