Цитата(phantom @ Nov 18 2008, 20:24)

Спасибо за советы - буду пробовать. Смотрел еcho cancellation еще раньше - там все более по телефонии - известный сигнал от абонента воспроизводится динамиком и попадает в микрофон вместе с полезным сигналом, и мне как-то не приходило в голову модифицировать такие алгоритмы. В моем случае же сигнал искажается за счет отражений от неизвестной конфигурации трубы (она конечно известна, но не хотелось бы каждую трубу описывать аналитически). Задача практическая - надо чтобы в любую трубу можно было "запустить" хотя бы приблизительно одинаковые по форме импульсы. Система думаю линейная - поскольку импульсы при пролете сквозь трубу формы своей ощутимо не изменяют. (В трубе стоят два микрофона - один около динамика, другой - на другом конце. При "выстреле" импульса 1-й микрофон фиксирует его измененную форму - второй - то же через время пролета в трубе.)
Это Вы предполагаете, что линейна. А что если жидкость вязкая?
Есть и ещё один вопрос. У вас есть исполнительный элемент - поршень (формально описываемый вектор входного сигнала Х соответствует чему-то вроде ускорению или может координате этого поршня) и два микрофона (вектор выхода Y включает в себя сигнал от обоих и при естественной дискретизации в два раза длинней X по размерности)
Вы сразу получаете переопределённую систему уравнений H*X = Y которую можно решить только в смысле минимума квадратов невязки Min (H*X-Y)*(H*X-Y) Откуда сразу получаются нормальные уравнения хоть для h, хоть для X, в зависимости от того что Вы считаете переменной, а что известно
H или Х
Хорошо, получили Х (если известно H или напротив получили h, если известно Х). Но вы скорее всего физически не сможете его реализовать, поскольку ускорение Х подчиняется уравнениям движения. Например идеальную дельта-функцию Вы не сможете реализовать никак, тем более её производные. Значит в исходную систему уравнений нужно дописывать ограничения на движение, например что на всех высоких частотах движение поршня равно нулю, как его не толкай. Хотя если поршень - это линейный исполнительный элемент - его отклик в жидкости на приложенное напряжение лучше сразу загнать в неизвестный отклик H (сделать Х напряжением, подаваемым на привод) и то что он плохо двигается будет сидеть в уравнениях, которые получаются в результате опыта. Нормальные уравнения
(Ht*H) * X = Ht*Y cделаются некорректными и нужно будет делать им регуляризацию
[(Ht*H) + e*I] * X = Ht*Y
Вопрос адекватности и вменяемости модели как раз самый важный

Математику можно всяко навести