Здравствуйте!
Задача техническая в математической плоскости.
Есть ПК, в котором стоит плата цифро-аналогового преобразователя, с помощью которой генерируется "чистый" синус:

промышленной частоты 50Гц. Сигнал поступает на вход электроустановки, задача которой повысить его и выдать на свой выход. В ходе этого повышения сигнал немного искажается (есть какой-то нелинейный элемент в схеме) и реально на выходе сигнал не "чистый" (в разложении в ряд Фурье присутствуют гармоники высших частот: 100Гц, 150Гц, 200Гц и так далее). Это видно, когда анализируется сигнал, поступающий на плату аналого-цифрового преобразователя этого же ПК после уменьшения до исходного уровня с выхода электроустановки. Задача: подать на вход электроустановки такой сигнал, чтобы на выходе был "чистый" синус(накладывается условие на "чистоту": разница между основной гармоникой и любой другой из первых одиннадцати не менее 52дБ). Проще говоря, какой-бы такой сигнал подать на вход черного ящика, чтобы на выходе было то, что нужно.
Какие были попытки решений:
1. Разложить выходной сигнал в спектр, найти все его гармоники. Найти коэффициент трансформации черного ящика, найдя отношение амплитуды основной гармоники к амплитуде входного сигнала. Вычесть все неосновные гармоники с учетом коэффициента трансформации из входного сигнала и подать такой сигнал на вход вместо входного. Но это не правильно, система то нелинейная.
2. Представить, что математическая модель черного ящика есть полином одиннадцатой степени:

. Т.е. аргумент полинома - входной сигнал, а результат выходной. Тогда полином можно представить в виде:

, где

а

(где

- действительное число) с помощью формул кратных дуг. А с другой стороны разложение в ряд Фурье:

. И можно приравнять

и составить такую систему уравнений и найти из нее коэффициенты полинома, а зная полином можно находить точку на входе, чтобы получить заданную на выходе. Но тут есть нестыковка: аргументы у косинусов при приравнивании не одинаковые. Есть иллюстрация этого подхода в Maple и в Mathcad.
Буду рад любой помощи, идее!
Спасибо.