2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 14:14 


02/07/19
52
Здравствуйте.
У меня имеются два спектрометра (старый и новый). В каждом спектрометре спектр измеряется на 2048 каналах. Каждый канал откалиброван по длинам волн. Мы в рентгеновском диапазоне пользуемся для удобства не нанометрами, а энергией в киловольтах. Связь между энергией и номером канала выражается квадратичной зависимостью:
$E_k=a_{0}+a_{1}K+a_{2}K^2$
K - номер канала.
В матричном виде эту связь я могу записать так:
$
K=\begin{pmatrix}
 1&  1& 1^2\\
 1&  2& 2^2\\
&\cdots & \\
 1&  2048& 2048^2
\end{pmatrix}
a=\begin{pmatrix}
 a_0 \\
 a_1 \\
 a_2 
\end{pmatrix}
Ka=E
$
Дальше у меня стоит задача, для которой ищу решение.
Мне необходимо спектр со старого прибора открыть в новом, с другим диапазоном энергий. В старом приборе диапазон энергий, от 0 до 35 кВ, в новом от 0 до 50 кВ. То есть на новом приборе интенсивности каналов старого спектра нужно прописать в соответствующие каналы нового прибора. То есть мне нужно посчитать в какие номера каналов на новом приборе попадает вектор энергий, снятый на старом приборе. Как к этому подошел я. В обозначениях через индекс - 0 исходный старый прибор, через индекс - 1 новый :
$K_1a_1=E $
Домножаю справа на транспонированный вектор коэффициентов, чтобы получить квадратную матрицу
$K_{1}a_{1}a_{1}^{T}=Ea_1^T\\ \\
$K_{1}a_{1}a_{1}^{T}(a_{1}a_{1}^{T})^{-1}=Ea_1^T(a_{1}a_{1}^{T})^{-1}$\\ \\
$K_{1}=Ea_1^T(a_{1}a_{1}^{T})^{-1}
$
Пробовал решать на реальных коэффициентах.
$
a_0=\begin{pmatrix}
-0.013671 \\
0.0172611\\
3.38752\cdot10^{-11} 
\end{pmatrix}$$ \\ \\ \\
a_1=\begin{pmatrix}
-0.0200684 \\
0.0225984\\
2.10629\cdot10^{-11} 
\end{pmatrix}$$
$
Использовал в качестве инструмента для расчётов Wolfram Mathematica
Матрица для обращения получилась вырожденной. Попробовал решить её через SVD-разложение. Заметил, что получается единственное собственное число равное $a^Ta$.
Так как в $K_0$ первый столбец был 1, то матрицу $K_1$ можно было упростить. Выбросить столбец единиц, а из каждого члена вектора E вычесть значение первого элемента вектора $a_1$, после чего из вектора $a_1$ так же выбросить первый элемент.
В результате, из-за того, что последний элемент вектора коэффициентов близок к нулю, у меня получился относительно правдоподобный ответ в первом столбце для матрицы $K_1$

$
K_1=$$\begin{pmatrix}
 0.28309 & 2.63855\cdot10^{-10} \\
 1.04691 & 9.75776\cdot10^{-10} \\
 1.81073 & 1.6877\cdot10^{-9} \\
 2.57455 & 2.39962\cdot10^{-9} \\
  & \cdots \\
 1563.83 & 1.45757\cdot10^{-6}
\end{pmatrix}$$
$
Второй столбец по задумке должен быть квадратом первого. Я неправильно составил уравнение изначально. Видимо для составления уравнения матрица $К_1$ должна являться комбинацией других матриц. В общем, требуется помощь с решением.
Я мог бы эту задачу решить через решение квадратных уравнений по каждому каналу отдельно в цикле компьютерной программы, но меня заинтересовала матричная математика. Решение сложных задач она предлагает в очень изящном виде.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 14:34 
Заслуженный участник


09/05/12
25179
А задача в такой постановке имеет смысл? У каждого канала есть характерная ширина полосы регистрации, соответственно, даже без учета профиля могут получаться разные варианты: полосы идеально точно совпадают, полосы частично перекрываются, полосы не перекрываются. В итоге один и тот же канал на старом приборе может разным образом "размазываться" по новым, инъективного отображения не будет.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 20:18 


02/07/19
52
Хочу сделать базу данных спектров автокатализаторов. У каждого производителя катализаторов своя матрица хим. элементов. Без возможности воспроизводить спектры на другом приборе, в случае поломки или замены одного из них, такой труд будет напрасным. У нас приборы одной фирмы, только с разным диапазоном энергии. Изготовитель спектрометров програмно эту задачу решил. Я спектры накладывал средствами его ПО. В силу схожести реализации электронной базы спектрометров спектры со старого прибора с некоторыми отличиями довольно неплохо повторяют линии этих же образцов но снятых на новом спектрометре. Каналы достаточно узкие, на одну линию приходится порядка от 10 до 40 каналов, в зависимости от интенсивности. Т.е. есть запас для работы. Могу задачу решить в лоб перебором каналов в цикле, но меня заинтересовала математическая сторона матричных вычислений. Прикладного опыта таких расчётов у меня мало, а тут на форуме можно через решение этой задачи немного подкачать свой скилл.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 20:34 
Заслуженный участник


09/05/12
25179
Просто если задача в том, чтобы по номеру канала в одном приборе найти номер канала в другом, то действительно достаточно решить одно квадратное уравнение (вернее, несколько десятков - сколько та. Натуральным числом результат не будет, но можно округлить. А если каналы не идеально совпадают, то проблем на самом деле существенно больше.

В общем, как-то кажется, что вы взяли либо очень простую задачу, к которой пытаетесь приделать непомерно сложное решение, либо, наоборот, не учитываете реальную сложность задачи (при этом сконцентрировавшись на несущественных для дела деталях).

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 21:00 


02/07/19
52
Pphantom в сообщении #1546130 писал(а):
Просто если задача в том, чтобы по номеру канала в одном приборе найти номер канала в другом, то действительно достаточно решить одно квадратное уравнение (вернее, несколько десятков - сколько та. Натуральным числом результат не будет, но можно округлить. А если каналы не идеально совпадают, то проблем на самом деле существенно больше.

В общем, как-то кажется, что вы взяли либо очень простую задачу, к которой пытаетесь приделать непомерно сложное решение, либо, наоборот, не учитываете реальную сложность задачи (при этом сконцентрировавшись на несущественных для дела деталях).

Вы правы. Задача достаточно сложная. Просто я решаю её пока по частям. Для начала мне нужно, чтобы независимо от того как были сняты спектры одного и того же образца на разных приборах их можно было дискретно разместить в матрицу для расчётов. А потом уже вычислять матрицы перехода интенсивностей от одного спектра к другому. Да, в конечном результате не уверен, но что-то в конце концов должно получиться, а там уже по результату буду искать ошибку в логике.
Так как спектральные датчики дискретны, логично привязываться к их каналам. Спектральные диапазоны почти полностью перекрываются, просто в одном приборе он шире, чем в другом. Можно или один спектр уширять до каналов другого спектра с использованием интерполяции, или наоборот сжимать спектр до каналов второго с использованием суммирования сигналов или усреднения - это уже потом буду думать. Линии - почти гауссоиды. Максимумы гауссоид точно должны совпасть, это без вариантов, так как из физических законов энергия у них одинакова (ну, если не брать некоторую погрешность калибровки каналов). Для начала спектры надо просто хоть как-то совместить (отмасштабировать), чтобы можно было корректно пользоваться матричными преобразованиями.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 21:15 
Заслуженный участник


09/05/12
25179
Просто с физической точки зрения это совсем другая задача. У вас есть какой-то спектр, который вы регистрируете с помощью прибора с определенной кривой чувствительности, фактически получая свертку исходного спектра с определенным окном сглаживания. Фактически вам надо по свертке и окну восстановить сначала регистрируемый спектр, а потом - снова свернуть его с другим окном. Вот так прямо "в лоб" она переделывается в дискретную только при сильном везении, иначе там можно наполучать всякого.

Поэтому тут есть три возможных осмысленных пути. Первый - реализовать исходную идею с квадратными уравнениями. Не факт, что получится что-то хорошее, но это можно сделать быстро. Второй - сделать примерно то, что описано выше. Ну и если спектр достаточно гладкий, тогда можно просто построить его аппроксимацией по одному комплекту данных, а потом снять отсчеты для другого.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение14.01.2022, 22:42 
Заслуженный участник
Аватара пользователя


11/03/08
9906
Москва
McConst в сообщении #1546103 писал(а):
Решение сложных задач она предлагает в очень изящном виде.


А точно она даёт решение? А то мне представляется, что Вы решаете какую-то иную задачу. В исходной явно есть нелинейность, за счёт квадратного члена. А в Вашем решении она куда-то убежала.
Так что либо переходить к энергии от номеров каналов, затем решать квадратное уравнение, получая номера каналов на другом приборе, либо рассматривать, как сигнал, зарегистрированный с одной частотой оцифровки, и перецифровывая на другую частоту.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение15.01.2022, 08:58 


02/07/19
52
Евгений Машеров в сообщении #1546139 писал(а):
McConst в сообщении #1546103 писал(а):
Решение сложных задач она предлагает в очень изящном виде.


В исходной явно есть нелинейность, за счёт квадратного члена. А в Вашем решении она куда-то убежала.

Да, верно, нелинейность убежала. Но у меня не получается правильно это уравнение составить. Должна быть какая-то комбинация матриц, чтобы получить квадратичный вид. Типа какого-нибудь произведения вектор-столбца на вектор-строку. Или векторов и диагональных матриц.

Через развёртку - это развёртка в ряд Фурье? Там совершенно другая математика, я этим инструментом никогда не пользовался. Для рентгеновского диапазона эти методы в литературе как-то не попадались, хотя наверняка тоже можно. Мне ближе вот это https://arxiv.org/pdf/2006.00089.pdf
но там для начала нужно, чтобы спектры имели хотя бы один масштаб - лежали на одной шкале длин волн.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение15.01.2022, 15:19 
Заслуженный участник
Аватара пользователя


11/03/08
9906
Москва
В общем, не вижу я здесь места для матриц. Хотя вообще-то люблю их и уважаю.
Вижу два возможных подхода.
1. У нас есть уравнения для зависимости энергии от № канала для первого и второго приборов.
$E=a_0+a_1K_1+a_2K_1^2$
и
$E=b_0+b_1K_2+b_2K_2^2$
Для каждого канала первого прибора получаем энергию, затем решаем уравнение относительно № канала во втором, подставив в него энергию, получается пересчёт. В принципе может не быть действительных решений или их может быть два осмысленных, но готов поспорить на умеренную сумму, что решение будет действительным, и второй корень отрицателен, так что отбрасывается сразу. Если № дробный - распределяем между каналами в зависимости от дробной части.
2. Рассматриваем последовательность отсчётов, как сигнал, зарегистрированный с разной частотой оцифровки. Ну, скажем музыку можно писать с частотой 44100 Гц или 48000 Гц. И используем методы обработки сигналов для такой задачи.

 Профиль  
                  
 
 Re: Перенос спектров с прибора на прибор (масштабирование)
Сообщение16.01.2022, 12:49 


02/07/19
52
Спасибо. Как минимум узнал мнение профессионалов.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group