Как посчитать ширину спектра произвольной формы?

Статус
Закрыто для дальнейших ответов.

Samsonov

Участник
Топикстартер
Сообщения
886
Реакции
89
Задачка для тех, кто устал флудить. :)

Нужно посчитать ширину спектра. Если сигнал однополосный или около того, то обычно просто берут границу на 0,5 от максимума по мощности. Но что делать, если форма спектра не позволяет столь однозначно выделить граничную частоту (например, синяя линия на этом графике), а прибегать к приблизительным прикидкам не хочется?

Слышал, что для такого общего случая вполне нормально использовать среднеквадратичное отклонение. И действительно, мой склероз возрождает в памяти какие-то картины из области статистического анализа: есть мат. ожидание «по середине», и мы от него в стороны откладываем разброс — правило трёх сигм, все дела… — вроде как раз именно то, что требуется. Но одно дело считать просто дисперсию скалярной величины — значения функции f(x). И совсем другое дело, если нам нужна дисперсия самой переменной x с учётом f(x) как функции плотности распределения.

Эффективное «среднее значение» можно найти довольно легко — разделить сумму x∙f(x) на сумму f(x). А вот как быть с дисперсией или среднеквадратичным отклонением? Что-то никак в голову не возьму. Смотрю на формулы в справочнике — кажутся уже какой-то китайской грамотой, и дело вовсе не в том, что сейчас вечер пятницы. ;) Прикинул разные варианты: получается полная ерунда, даже в самом простейшем случае — если принять f(x)=1 на каком-то участке.
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Ответ: Как посчитать ширину спектра произвольной формы?

Если можно, уточните термин "ширина спектра".
Хотите ограничиться неким диапазоном, чтобы не проходить всю полосу для вычисления компонент XYZ? ИМХО, современная вычислительная мощность компьютеров позволяет вычислять интегралы не только по методу трапеций. Метод трапеций даёт, кстати, ошибку тем большую, чем больше высшие производные. При равноотстоящих узлах (что имеет место в нашем случае), оптимально может сработать интегрирование методом Симпсона. Прорежая сетку (выбрасывая отдельные узлы), можно оценить погрешность интегрирования и получить достаточно точные значения.

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

Поэтому вначале идёт первая стадия - печать и промер. Вторая - получение усреднённых F(x) с учётом весов отдельных узлов в области каждой спектральной линии. И третья - использование усреднённых данных для вычисления XYZ. Погрешность суммирования будет зависеть от метода вычисления сумм.

Я сейчас дома на ночь читаю такую старую книженцию. Называется "Численные методы". Там очень подробно разжёвываются все методы интерполяции, аппроксимации, сглаживания, статобработки и т.д. Даже упоминаются заблуждения физиков, которые необоснованно применяют некоторые методы без достаточного математического обоснования. Формулы достаточно громоздкие для упоминания здесь, тем более мой склероз не позволяет привести их в оригинальном виде.

Прошу прощения, если высказал банальные мысли, но пока я не сделаю свою версию измерений, говорить подробно не смогу. Да и книжки под рукой не имеется - я на работе, она дома. :)
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Ответ: Как посчитать ширину спектра произвольной формы?

Исправление невозможно, а я упустил важную мысль.

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

Samsonov

Участник
Топикстартер
Сообщения
886
Реакции
89
Ответ: Как посчитать ширину спектра произвольной формы?

ch_alex, эк вас занесло-то! :)


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

По поводу «ограничиться неким диапазоном» у меня действительно были кое-какие мысли, но немного в другом ключе. То есть, в том же, что и выше: как посчитать спектральную чистоту (радиометрическую «насыщенность»)? Если, к примеру, максимальное значение делить на среднее, то неизбежно попадаем в зависимость от ширины исследуемого отрезка: чем она больше, тем ниже получится среднее значение. Поэтому и пришла идея посчитать противоположную величину — ширину спектра.
 

rrr2001

Участник
Сообщения
178
Реакции
0
Ответ: Как посчитать ширину спектра произвольной формы?

Samsonov сказал(а):
Задачка для тех, кто устал флудить. :)
Нужно посчитать ширину спектра.


Не по теме:
Мы не устали пока флудить :)


Интегрировать пробовали? В смысле относительную площадь под кривой считать? Для сравнительных оценок в определенном диапазоне это Вас должно спасти.
 

Samsonov

Участник
Топикстартер
Сообщения
886
Реакции
89
Ответ: Как посчитать ширину спектра произвольной формы?

rrr2001 сказал(а):
Интегрировать пробовали? В смысле относительную площадь под кривой считать?
Естественно, вычисление площади фигуры под кривой было одним из первых, что пришло в голову. Но дальше-то что с этим делать? Можно было бы поделить на среднее значение f(x), чтобы узнать «эффективную ширину» фигуры (Δx), но тут мы опять возвращаемся к вышеупомянутой проблеме выбора границ для взятия среднего. Получается замкнутый круг: чтобы узнать ширину из площади, надо знать высоту, для определения которой необходимо знать ширину. :)
 

rrr2001

Участник
Сообщения
178
Реакции
0
Ответ: Как посчитать ширину спектра произвольной формы?

Samsonov сказал(а):
ch_alex, эк вас занесло-то! :)
Нет, задача именно в том, чтобы дать численную оценку спектральной [не]чистоте. Например, чтобы сравнить эффективную ширину спектра от светодиодов со спектром от флуоресцентных ламп.

Если задача сложнее, чем мне показалось, то берете интересующий Вас диапазон. Разбиваете его на некоторое количество полос частот. Ранжируете их в соответствии со своим критерием нечистоты. В смысле, если там есть, то это плохо. Получаете коэффициенты. Считаете площади по полосам, умножаете на коэффициенты получаете оценку "чистоты". Сравниваете со спектром другого источника...

Докторскую пишите, надеюсь :)
 

JAW

15 лет на форуме
Сообщения
15 797
Реакции
3 454
Ответ: Как посчитать ширину спектра произвольной формы?

Кстати... Чисто практический вопрос.
Есть 5 промеров. Усреднили при помощи PM.
В градиентах в тенях какая-то откровенная лажа.
По логике стоило бы сделать нормальную интерполяцию и отбросить "выкидыши", т.е. точки находящиеся вне кривой интерполяции и создающие погрешность.

Каким инструментом это делается?
 

rrr2001

Участник
Сообщения
178
Реакции
0
Ответ: Как посчитать ширину спектра произвольной формы?

JAW,

Вам, видимо, ответят на этот вопрос. Со временем. В другом разделе и активной теме про использование инструментов. Когда перестанут "посылать в поиск".

А это -- другая тема.
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Ответ: Как посчитать ширину спектра произвольной формы?

JAW сказал(а):
Есть 5 промеров. Усреднили при помощи PM.
********
По логике стоило бы сделать нормальную интерполяцию и отбросить "выкидыши", т.е. точки находящиеся вне кривой интерполяции и создающие погрешность.
Андрей, есть существенные тонкости.
1. Реальные стимулы никогда не равны целым процентам. Например, в фирменном тесте для нашей Минолты стимулы записаны дробными процентами. Это понятно - ориентация на диапазон 0-255. Корел в этом отношении более демократичен, ибо позволяет использовать аппаратные стимулы. Поэтому в твоём, Андрей, случае имеются систематические ошибки, вызванные индивидуальными смещениями стимулов. Обычно они частично (из-за систематической ошибки самого измерительного прибора) корректируются при повторном тесте с учётом линеаризации. Но пока я такого теста не встречал (это не значит, что его нет, просто не встречал '))'. Только учёт кривых для перехода от нелинейных зависимостей к условно-линейным, что не исключает ошибки из-за смещения стимула.
2. "Выкидыши" можно определять на основаннии статанализа (критерий Стьюдента). А можно сделать проще - вычислить среднее значение измерений для одного стимула, затем присвоить каждому измерению вес, зависящий от отклонения от среднего значения и повторно определить среднее с учётом веса. Average(Y)=Sum(Pj*Yj)/Sum(Pj), где j=0..5 для твоего случая. Чем дальше точка от "центра масс", полученного на первом шаге, тем меньше её вес Pj.
3. Передаточная функция реального устройства не может быть просто так интерполирована степенной функцией. Во-первых, степенные члены не ортогональны, поэтому при возрастании степени интерполирующего многочлена (в попытке получить меньшую среднеквадратичную ошибку интерполяции) нарастает ошибка вычислениий. Слишком маленькие степени, порядка 5-й, дадут значительную погрешность, особенно если учесть смещение стимулов из-за дискретизации. Проблема в том, что невозможно описать тот же струйник как устройство с передаточной функцией, имеющей непрерывные высшие производные на всём протяжении. Кроме того, слабая изменчивость результатов измерений для соседних Xj (смещение начала тоновой кривой к концу исследуемого интервала или заливание краской полей в конце интервала) приводят к плохой обусловленности системы уравнений и значительным ошибкам при вычислении коэффициентов интерполирующего многочлена. Поэтому для получения хорошего результата следует выделить участки с наименьшей погрешностью интерполяции и выполнять интерполяцию на каждом из них отдельно. Делает ли это PM? Навряд ли.

Диссертацией тут не пахнет - это уже описано в большинстве институтских учебников. Это просто нужно реализовать.
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Ответ: Как посчитать ширину спектра произвольной формы?

Samsonov сказал(а):
То есть, в том же, что и выше: как посчитать спектральную чистоту (радиометрическую «насыщенность»)? Если, к примеру, максимальное значение делить на среднее, то неизбежно попадаем в зависимость от ширины исследуемого отрезка: чем она больше, тем ниже получится среднее значение.
Я не силён в спектрометрии. Посему могу предложить оценить дисперсию, асимметрию и эксцесс взвешенного распределения. В основе - вычисление центральных моментов распределения на основании вычисленной информации о положении среднего значения Y(x) и его модуле (в принципе, это неотрицательное значение). Думаю, в спектрометрии есть нечто подобное. Чем выше дисперсия, тем хуже спектральная чистота. Я так думаю. :)

В данном контексте спектр "взвешен" кривой на графике.
 

rrr2001

Участник
Сообщения
178
Реакции
0
Ответ: Как посчитать ширину спектра произвольной формы?

ch_alex сказал(а):
Диссертацией не пахнет - это уже описано в большинстве институтских учебников. Это просто нужно реализовать.

Я извиняюсь за оверквотинг, захвативший и цитату из Вашего сообщения. Мой ответ был адресован Samsonov.
 

ch_alex

Погулять вышел.
15 лет на форуме
Сообщения
8 420
Реакции
2 709
Ответ: Как посчитать ширину спектра произвольной формы?


Не по теме:
Ничего страшного. Я ведь отвечал JAW'у.
 
Статус
Закрыто для дальнейших ответов.