Добрый день, моя задача лежит в области оптических спектральных измерений, однако является задачей по цифровой обработке сигналов.
Имеется оптический спектр (по абсциссе взяты деления монохроматора, чтобы обеспечить равномерность отсчетов). Он был снят в "идеальных" условиях, и можно считать, что не имеет искажений. Имеется тот же спектр, но снятый уже в неидеальных условиях и потому искаженный. Требуется найти аппаратную функцию, свертка с которой и дает такой искаженный результат, чтобы в дальнейшем ее исключать уже в отсутствие "идеального" спектра.
Из теории оптической спектрометрии известно, что аппаратная функция спектрометра при этих условиях должна быть в виде трапеции, однако попытки делать свертку хорошего спектра и пробных трапеций не дают такого результата, как наш "плохой" спектр. На картинке spectra.png хороший спектр - зеленый, красный - искаженный, а черный - попытка использования в качестве аппаратной функции трапецию (из теории).
Ну и ладно, зачем нам угадывать аппаратную функцию, когда можно ее вычислить. Искаж.спектр = Хор.спектр * Апп.ф., поэтому Апп.ф = IFFT ( FFT(Искаж. сп.) / FFT (Хор. сп.) ). Однако при выполнении этих численных операций аппаратная функция - это просто шум с большой амплитудой, и повторное применение свертки для проверки результата оказывается неверным. По всей видимости, я что-то делаю не так. Комплексные значения FFT обоих сигналов очень похожи, и при комплексном делении одного на другой получается просто шумовая дорожка с большой амплитудой, обратный FFT от которой разумеется тоже неинформативен. Пробовал делать FFT с разными окнами и без него, результаты такие же.
Оба спектра, если кто-то захочет поиграться, приведены в файле spectra.txt (формат CSV).
Заранее благодарен за указание, где ошибка.
spectra.txt