Уход за ногами

Применение спектрального анализа. A. Спектральный анализ

Применение спектрального анализа. A. Спектральный анализ

Впервые спектральный анализ попытались сделать Кирхгоф и Бунзен еще в 1859 году. Два создали спектроскоп, похожий на трубу неправильной формы. С одной стороны имелось отверстие (коллиматор), в которое попадали исследуемые лучи света. Внутри трубы располагалась призма, она отклоняла лучи и направляла их в сторону другого отверстия трубы. На выходе физики могли видеть свет, разложенный на спектр.

Ученые решили провести эксперимент. Затемнив комнату и завесив окно плотными шторами, они зажгли свечу возле щели коллиматора, а потом брали кусочки разных веществ и вводили их в пламя свечи, наблюдая, изменится ли спектр. И оказалось, что горячие пары каждого вещества давали различные спектры! Так как призма строго разделяла лучи и не давала им наслаиваться друг на друга, то по получившемуся спектру можно было точно идентифицировать вещество.

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

Особенности спектрального анализа

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

Типы спектрального анализа

Спектральный анализ бывает атомный и молекулярный. Посредством атомного анализа можно выявить, соответственно, атомный состав вещества, а посредством молекулярного – молекулярный.

Способов измерить спектр существует два: эмиссионный и абсорбционный. Эмиссионный спектральный анализ проводится посредством изучения того, какой спектр излучают выбранные атомы или молекулы. Для этого им нужно придать энергию, то есть, возбудить их. Абсорбционный анализ, напротив, проводится по спектру поглощения электромагнитного изучения, направленного на объекты.

Посредством спектрального анализа можно измерить множество различных характеристик веществ, частиц или даже больших физических тел (например, космических объектов). Именно поэтому спектральный анализ дополнительно делится на различные методы. Чтобы получить требуемый для конкретной задачи результат, нужно правильно выбрать оборудование, длину волн для исследования спектра, а также саму область спектра.

Спектральный анализ подразделяют на несколько самостоятельных методов. Среди них выделяют: инфракрасную и ультрафиолетовую спектроскопию, атомно-абсорбционный, люминесцентный и флуоресцентный анализ, спектроскопию отражения и комбинационного рассеяния, спектрофотометрию, рентгеновскую спектроскопию, а также ряд других методов.

Абсорбционный спектральный анализ основан на изучении спектров поглощения электромагнитного излучения. Эмиссионный спектральный анализ проводится по спектрам испускания атомов, молекул или ионов, возбужденных различными способами.

Атомно-эмиссионный спектральный анализ

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

Работа со спектрами

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

Виды спектров

Непрерывный спектр излучения дают вещества, находящиеся в твердом или жидком состоянии, а также плотные газы. В таком спектре нет разрывов, в нем представлены волны всех длин. Его характер зависит не только от свойств отдельных атомов, но и от их взаимодействия друг с другом.

Линейчатый спектр излучения характерен для веществ в газообразном состоянии, при этом атомы почти не взаимодействуют друг с другом. Дело в том, что изолированные атомы одного химического элемента излучают волны строго определенной длины волны.

При увеличении плотности газа спектральные линии начинают расширяться. Для наблюдения такого спектра используют свечение газового разряда в трубке или паров вещества в пламени. Если пропускать белый свет через неизлучающий газ, на фоне непрерывного спектра источника появятся темные линии спектра поглощения. Газ интенсивнее всего поглощает свет тех длин волн, которые он испускает в нагретом состоянии.

Химический состав вещества – важнейшая характеристика используемых человечеством материалов. Без его точного знания невозможно со сколько-нибудь удовлетворительной точностью спланировать технологические процессы в промышленном производстве. В последнее время требования к определению химического состава вещества еще более ужесточились: многие сферы производственной и научной деятельности требуют материалы определенной «чистоты» - это требования точного, фиксированного состава, а также жесткого ограничения на наличие примесей инородных веществ. Всвязи с этими тенденциями разрабатываются все боле прогрессивные методики определения химического состава веществ. К ним относится и метод спектрального анализа, обеспечивающий точное и быстрое изучение химии материалов.

Фантастика света

Природа спектрального анализа

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

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

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

Получая избыточную энергию, атомы вещества излучают ее в виде света и возвращаются в свое обычное энергетическое состояние. Именно этот испускаемый атомами свет и используется для спектрального анализа. К самым распространенным видам излучения относят: тепловое излучение, электролюминесценция, катодолюминесценция, хемилюминесценция.

Спектральный анализ. Окрашивание пламени ионами металлов

Виды спектрального анализа

Различают эмиссионную и абсорбционную спектроскопию. Метод эмиссионной спектроскопии основан на свойствах элементов к излучению света. Для возбуждения атомов вещества используются высокотемпературный нагрев, равный нескольким сотням или даже тысячам градусов, – для этого пробу вещества помещают в пламя или в поле действия мощных электрических разрядов. Под воздействием высочайшей температуры молекулы вещества разделяются на атомы.

Атомы, получая избыточную энергию, излучают ее в виде квантов света различной длины волны, которые регистрируются спектральными аппаратами – приборами, визуально изображающими получившийся световой спектр. Спектральные аппараты служат также и разделительным элементом системы спектроскопии, потому как световой поток суммируется от всех присутствующих в пробе веществ, и в его задачи входит разделение общего массива света на спектры отдельных элементов и определение их интенсивности, которая позволит в будущем сделать выводы о величине присутствующего элемента в общей массе веществ.

  • В зависимости от методов наблюдения и регистрации спектров различают спектральные приборы: спектрографы и спектроскопы. Первые регистрируют спектр на фотопленке, а вторые делают доступным просмотр спектра для прямого наблюдения человеком через специальные зрительные трубы. Для определения размеров используются специализированные микроскопы, позволяющие с высокой точностью определить длину волны.
  • После регистрации светового спектра он подвергается тщательному анализу. Выявляются волны определенной длины и их положение в спектре. Далее выполняется соотношение их положения с принадлежностью к искомым веществам. Делается это с помощью сравнения данных положения волн с информацией, расположенной в методических таблицах, указывающих на типичные длины волн и спектры химических элементов.
  • Абсорбционная спектроскопия проводится подобно эмиссионной. В этом случае вещество помещают между источником света и спектральным аппаратом. Проходя через анализируемый материал, испущенный свет достигает спектрального аппарата с «провалами» (линии поглощения) по некоторым длинам волн – они и составляют поглощенный спектр исследуемого материала. Дальнейшая последовательность исследования аналогична для приведенного выше процесса эмиссионной спектроскопии.

Открытие спектрального анализа

Значение спектроскопии для науки

Спектральный анализ позволил человечеству открыть несколько элементов, которые невозможно было определить традиционными методами регистрации химических веществ. Это такие элементы, как рубидий, цезий, гелий (он был открыт с помощью спектроскопииСолнца – задолго до его обнаружения на Земле), индий, галлий и другие. Линии этих элементов были обнаружены в спектрах излучения газов, и на момент их исследования были неидентифицируемы.

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

Огромное значение спектроскопия приобрела в астрофизике

Спровоцировав колоссальный скачок в понимании структуры Вселенной и утверждении того факта, что все сущее состоит из одних и тех же элементов, которыми, в том числе, изобилует и Земля. Сегодня метод спектрального анализа позволяет ученым определять химический состав находящихся за миллиарды километров от Земли звезд, туманностей, планет и галактик – эти объекты, естественно, не доступны методикам прямого анализа ввиду своего большого удаления.

С помощью метода абсорбционной спектроскопии возможно изучение далеких космических объектов, не обладающих собственным излучением. Это знание позволяет устанавливать важнейшие характеристики космических объектов: давление, температуру, особенности структуры строения и многое другое.

Спектральный анализ – метод определения химического состава вещества по его спектру. Этот метод разработан в 1859 г. немецкими учеными Г.Р. Кирхгофом и Р.В. Бунзеном.

Но прежде чем рассматривать этот довольно сложный вопрос, давайте сначала поговорим о том, что такое спектр.
Спектр (лат. spectrum «виде́ние») в физике - распределение значений физической величины (обычно энергии, частоты или массы). Обычно под спектром подразумевается электромагнитный спектр - спектр частот (или то же самое, что энергий квантов) электромагнитного излучения.

В научный обиход термин спектр ввёл Ньютон в 1671-1672 годах для обозначения многоцветной полосы, похожей на радугу, которая получается при прохождении солнечного луча через треугольную стеклянную призму. В своём труде «Оптика» (1704 г.) он опубликовал результаты своих опытов разложения с помощью призмы белого света на отдельные компоненты различной цветности и преломляемости, то есть получил спектры солнечного излучения и объяснил их природу. Он показал, что цвет есть собственное свойство света, а не вносятся призмой, как утверждал Бэкон в XIII веке. Фактически Ньютон заложил основы оптической спектроскопии: в «Оптике» он описал все три используемых поныне метода разложения света -преломление, интерференцию (перераспределение интенсивности света в результате наложения нескольких световых волн) и дифракцию (огибание препятствия волнами).
А вот теперь возвратимся к разговору о том, что такое спектральный анализ.

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

Призма как спектральный прибор

В телескопах для получения спектра используют специальные приборы – спектрографы , устанавливаемые за фокусом объектива телескопа. В прошлом все спектрографы были призменными, но теперь вместо призмы в них используют дифракционную решетку , которая также разлагает белый свет в спектр, его называют дифракционным спектром.
Всем известно, что свет распространяется в виде электромагнитных волн. Каждому цвету соответствует определенная длина электромагнитной волны. Длина волны в спектре уменьшается от красных лучей к фиолетовым примерно от 700 до 400 ммк. За фиолетовыми лучами спектра лежат ультрафиолетовые лучи, не видимые глазом, но действующие на фотопластинку.

Еще более короткую длину волны имеют рентгеновские лучи, применяемые в медицине. Рентгеновское излучение небесных светил атмосфера Земли задерживает. Только недавно оно стало доступно для изучения посредством запусков высотных ракет, поднимающихся выше основного слоя атмосферы. Наблюдения в рентгеновских лучах производят также автоматические приборы, установленные на космических межпланетных станциях.

За красными лучами спектра лежат инфракрасные лучи. Они невидимы, но и они действуют на специальные фотопластинки. Под спектральными наблюдениями понимают обычно наблюдения в интервале от инфракрасных до ультрафиолетовых лучей.

Для изучения спектров применяют приборы, называемые спектроскопом и спектрографом . В спектроскоп спектр рассматривают, в спектрографе его фотографируют. Фотография спектра называется спектрограммой .

Виды спектров

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

Учеными составлены таблицы с перечнем линий каждого газа и с указанием яркости каждой линии. Например, в спектре натрия особенно ярки две желтые линии. Установлено, что спектр атома или молекулы связан с их строением и отражает определенные изменения, происходящие в них в процессе свечения.

Линейчатый спектр поглощения дают газы и пары, когда за ними находится яркий и более горячий источник, дающий непрерывный спектр. Спектр поглощения состоит из непрерывного спектра, перерезанного темными линиями, которые находятся в тех самых местах, где должны быть расположены яркие линии, присущие данному газу. Например, две темные линии поглощения натрия расположены в желтой части спектра.

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

Но спектральный анализ позволяет определять химический состав только самосветящихся или поглощающих излучение газов. Химический состав твердого или жидкого тела при помощи спектрального анализа определить нельзя.

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

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

Под катом краткий обзор метода выделения гармоник из произвольного сигнала с помощью цифрового гетеродинирования, и немного особой, Фурье-магии.

Итак, что имеем.
Файл с отсчетами оцифрованного сигнала. Известно, что сигнал представляет собой сумму синусоид со своими частотами, амплитудами и начальными фазами, и, возможно, белый шум.

Что будем делать.
Использовать спектральный анализ для того, чтобы определить:

  • количество гармоник в составе сигнала, а для каждой: амплитуду, частоту (далее в контексте числа длин волн на длину сигнала), начальную фазу;
  • наличие/отсутствие белого шума, а при наличии, его СКО (среднеквадратическое отклонение);
  • наличие/отсутствие постоянной составляющей сигнала;
  • всё это оформить в красивенький PDF отчёт с блэкджеком и иллюстрациями.

Будем решать данную задачу на Java.

Матчасть

Как я уже говорил, структура сигнала заведомо известна: это сумма синусоид и какая-то шумовая составляющая. Так сложилось, что для анализа периодических сигналов в инженерной практике широко используют мощный математический аппарат, именуемый в общем «Фурье-анализ» . Давайте кратенько разберём, что же это за зверь такой.
Немного особой, Фурье-магии
Не так давно, в 19 веке, французский математик Жан Батист Жозеф Фурье показал, что любую функцию, удовлетворяющую некоторым условиям (непрерывность во времени, периодичность, удовлетворение условиям Дирихле) можно разложить в ряд, который в дальнейшем получил его имя - ряд Фурье .

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

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

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


Рис. 1. Соответствие ряда Фурье и преобразования Фурье на примере амплитудного спектра.

Легко видно, что коэффициенты ряда Фурье являются ни чем иным, как значениями преобразования Фурье в дискретные моменты времени.

Однако, преобразование Фурье сопоставляет непрерывной во времени, бесконечной функции другую, непрерывную по частоте, бесконечную функцию - спектр. Как быть, если у нас нет бесконечной во времени функции, а есть лишь какая-то записанная её дискретная во времени часть? Ответ на этот вопрос даёт дальнейшей развитие преобразования Фурье - дискретное преобразование Фурье (ДПФ) .

Дискретное преобразование Фурье призвано решить проблему необходимости непрерывности и бесконечности во времени сигнала. По сути, мы полагаем, что вырезали какую-то часть бесконечного сигнала, а всю остальную временную область считаем этот сигнал нулевым.

Математически это означает, что, имея исследуемую бесконечную во времени функцию f(t), мы умножаем ее на некоторую оконную функцию w(t), которая обращается в ноль везде, кроме интересующего нас интервала времени.

Если «выходом» классического преобразования Фурье является спектр – функция, то «выходом» дискретного преобразования Фурье является дискретный спектр. И на вход тоже подаются отсчёты дискретного сигнала.

Остальные свойства преобразования Фурье не изменяются: о них можно прочитать в соответствующей литературе.

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


Рис. 2. Амплитудный спектр синусоидального сигнала.

Я уже упомянул, что, вообще говоря, мы рассматриваем не исходную функцию, а некоторое её произведение с оконной функцией. Тогда, если спектр исходной функции - F(w), а оконной W(w), то спектром произведения будет такая неприятная операция, как свёртка этих двух спектров (F*W)(w) (Теорема о свёртке).

На практике это означает, что вместо дельта-функции, в спектре мы увидим что-то вроде этого:


Рис. 3. Эффект растекания спектра.

Этот эффект именуют также растеканием спектра (англ. spectral leekage). А шумы, появляющиеся вследствие растекания спектра, соответственно, боковыми лепестками (англ. sidelobes).
Для борьбы с боковыми лепестками применяют другие, непрямоугольные оконные функции. Основной характеристикой «эффективности» оконной функции является уровень боковых лепестков (дБ). Сводная таблица уровней боковых лепестков для некоторых часто используемых оконных функций приведена ниже.

Основной проблемой в нашей задаче является то, что боковые лепестки могут маскировать другие гармоники, лежащие рядом.


Рис. 4. Отдельные спектры гармоник.

Видно, что при сложении приведённых спектров, более слабые гармоники как бы растворятся в более сильной.


Рис. 5. Чётко видна лишь одна гармоника. Нехорошо.

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

Для установления точной частоты и комплексной амплитуды нужной гармоники, мы воспользуемся приёмом, широко применяемым во многих отраслях инженерной практики – гетеродинирование .

Посмотрим, что получится, если умножить входной сигнал на комплексную гармонику Exp(I*w*t). Спектр сигнала сдвинется на величину w вправо.
Этим свойством мы и воспользуемся, сдвигая спектр нашего сигнала вправо, до тех пор, пока гармоника не станет ещё больше напоминать дельта-функцию (то есть, пока некоторое локальное отношение сигнал/шум не достигнет максимума). Тогда мы и сможем вычислить точную частоту нужной гармоники, как w 0 – w гет, и вычесть её из исходного сигнала для подавления эффекта растекания спектра.
Иллюстрация изменения спектра в зависимости от частоты гетеродина показана ниже.


Рис. 6. Вид амплитудного спектра в зависимости от частоты гетеродина.

Будем повторять описанные процедуры до тех пор, пока не вырежем все присутствующие гармоники, и спектр не будет напоминать нам спектр белого шума.

Затем, надо оценить СКО белого шума. Хитростей здесь нет: можно просто воспользоваться формулой для вычисления СКО:

Автоматизируй это

Пришло время для автоматизации выделения гармоник. Повторим ещё разочек алгоритм:

1. Ищем глобальный пик амплитудного спектра, выше некоторого порога k.
1.1 Если не нашли, заканчиваем
2. Варируя частоту гетеродина, ищем такое значение частоты, при которой будет достигаться максимум некоторого локального отношения сигнал/шум в некоторой окрестности пика
3. При необходимости, округляем значения амплитуды и фазы.
4. Вычитаем из сигнала гармонику с найденной частотой, амплитудой и фазой за вычетом частоты гетеродина.
5. Переходим к пункту 1.

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

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


Рис. 7. Функция распределения гармоник.

Теперь построим еще и функцию - плотность распределения. Т.е., значения конечных разностей от функции распределения.


Рис. 8. Плотность функции распределения гармоник.

Абсцисса максимума плотности распределения и является амплитудой гармоники, встречающейся в спектре наибольшее число раз. Отойдем от пика вправо на некоторое расстояние, и будем считать абсциссу этой точки оценкой уровня шума в нашем спектре. Вот теперь можно и автоматизировать.

Посмотреть на кусок кода, детектирующий гармоники в составе сигнала

public ArrayList detectHarmonics() { SignalCutter cutter = new SignalCutter(source, new Signal(source)); SynthesizableComplexExponent heterodinParameter = new SynthesizableComplexExponent(); heterodinParameter.setProperty("frequency", 0.0); Signal heterodin = new Signal(source.getLength()); Signal heterodinedSignal = new Signal(cutter.getCurrentSignal()); Spectrum spectrum = new Spectrum(heterodinedSignal); int harmonic; while ((harmonic = spectrum.detectStrongPeak(min)) != -1) { if (cutter.getCuttersCount() > 10) throw new RuntimeException("Unable to analyze signal! Try another parameters."); double heterodinSelected = 0.0; double signalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); for (double heterodinFrequency = -0.5; heterodinFrequency < (0.5 + heterodinAccuracy); heterodinFrequency += heterodinAccuracy) { heterodinParameter.setProperty("frequency", heterodinFrequency); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); double newSignalToNoise = spectrum.getRealAmplitude(harmonic) / spectrum.getAverageAmplitudeIn(harmonic, windowSize); if (newSignalToNoise > signalToNoise) { signalToNoise = newSignalToNoise; heterodinSelected = heterodinFrequency; } } SynthesizableCosine parameter = new SynthesizableCosine(); heterodinParameter.setProperty("frequency", heterodinSelected); heterodinParameter.synthesizeIn(heterodin); heterodinedSignal.set(cutter.getCurrentSignal()).multiply(heterodin); spectrum.recalc(); parameter.setProperty("amplitude", MathHelper.adaptiveRound(spectrum.getRealAmplitude(harmonic))); parameter.setProperty("frequency", harmonic - heterodinSelected); parameter.setProperty("phase", MathHelper.round(spectrum.getPhase(harmonic), 1)); cutter.addSignal(parameter); cutter.cutNext(); heterodinedSignal.set(cutter.getCurrentSignal()); spectrum.recalc(); } return cutter.getSignalsParameters(); }

Практическая часть

Я не претендую на звание эксперта Java, и представленное решение может быть сомнительным как по части производительности и потреблению памяти, так и в целом философии Java и философии ООП, как бы я ни старался сделать его лучше. Написано было за пару вечеров, как proof of concept. Желающие могут ознакомиться с исходным кодом на