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 ] 

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



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

Сейчас этот форум просматривают: Pythagoras


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

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