Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11

Разложить спектр на индивидуальные гауссовы полосы

19.07.2017, 17:15. Показов 3801. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! Помогите, буду очень благодарен.
Задача: Есть экспериментальный спектр(s10), сглаженный, состоящий в моем случае из 6 индивидуальных полос. Я нашел полуширины, и местонахождение максимумов. необходимо методом наименьших квадратов(беру,как самый простой) найти АМПЛИТУДЫ элементарных гауссовых полос.
Параметры элементарных полос ФЛ, найденны мною(λ max, нм - местонахождение максимума, ∆λ -полуширина )
λ max, нм ∆λ, нм
530 38
552 38
578 40
600 40
618 45
646 52

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

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function [M,amplitudes]=cal_ampl(y,m,std,figure_number)
%расчет амплитуд по методу наименьших квадратов
%y - массив измеренных данных
%m - массив местоположений(в местоположениях максимума стоит 1)
%std - массив стандартных отклонений(в местоположении стоит стандартное отклонение)
%figure_number -номер фигуры, если много раз делать, мне кажется так удобнее
n=length(y);
M=0;%сначала количество гауссиан нулевое
amplitudes=zeros(1,1);%сначала массив амплитуд нулевой
for i=1:n,
    if (m(i)==1), M=M+1;end;%в этой точке есть гауссиана
end;
%-------------------------------------------------------------
if (M>0),%если есть хотя бы одна гауссиана - иначе выход с нулевыми значениями
    mo=zeros(M,1);%рабочий массив местоположений гауссиан
    std=zeros(M,M);%рабочий массив полуширин гауссиан
    %заносим значения в рабочие массивы
    m=1;
    for i=1:n,
      if (ar_m(i)==1), 
      mo(m)=i;sigma(m)=ar_sigma(i);    
      m=m+1;
      end;
    end;
    mat=zeros(M,M);%матрица для обращения
    B=zeros(M,1);%столбец свободных членов
    phi=zeros(M,n);%массив гауссиан
    %формируем массив гауссиан
    for j=1:M
        for i=1:n,
            phi(j,i)=exp(-(i-mo(j))^2/(2*sigma(j)^2));%формула гаусстаны
        end;
    end;
    %формируем матрицу для обращения и столбец свободных членов
    for j=1:M
        s=0;for i=1:n,s=s+g(i)*phi(j,i);end;B(j)=s;
        for k=1:M
            mat(j,k)=sum(phi(j,:).*phi(k,:));
        end;
    end;
    amplitudes=mat\B;
 %---------------------------
 %рисование результата разложения
 figure(figure_number);
 plot(1:n,g,'k--');
 hold on;
 for j=1:M
   plot(1:n,amplitudes(j)*phi(j,:),'b-');
   hold on;
 end;
 %общая зависимость
 result=zeros(1,n);
 for i=1:n,
    for j=1:M
    result(i)=result(i)+amplitudes(j)*phi(j,i);
    end;
 end;
plot(1:n,result,'r-');
hold off;
title(strcat('method ',num2str(figure_number)));
else disp('M=0  - there are no gaussians!');
end;
Всем благодарен за ответ.
Вложения
Тип файла: rar S10.rar (4.9 Кб, 5 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.07.2017, 17:15
Ответы с готовыми решениями:

Почему амплитудный спектр остался одинаковым, а фазовый спектр изменился
Здравствуйте! у меня такой вопрос задали по лабораторной работе изменить сигнал зеркально и посмотреть что будет в итоге у меня...

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

матричная оптика, гауссовы пучки
ЗДравствуйте помогите пожалуйста кто может с задачей У сферического зеркала с кривизной R отражательная способность изменяется по...

14
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
19.07.2017, 22:06
Цитата Сообщение от kapoyar Посмотреть сообщение
корректно не идет работа программы
Как проявляется некорректность?

Цитата Сообщение от kapoyar Посмотреть сообщение
найти АМПЛИТУДЫ элементарных гауссовых полос.
Введите еще одну переменную перед экспонентой и будет Вам амплитуда.
0
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
20.07.2017, 00:07  [ТС]
1)Все результаты которые получаются, очень далеки от того, что получается другими методами.
Например, разложить в программном пакете Origin 8.5 - Analysis-Peaks and Baseline - Peak Analyzer - Goal(Fit Peaks).

2)Амплитуду я добавляю, у меня цикл не получается, чтобы перебором искались амплитуды, я не понимаю, как алгоритм поиска написать. Те виды, что я написал, не работают.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
20.07.2017, 00:59
Цитата Сообщение от kapoyar Посмотреть сообщение
перебором искались амплитуды
Перебор - это не красиво. Попробуйте в CFTOOL

Цитата Сообщение от kapoyar Посмотреть сообщение
очень далеки от того, что получается другими методами
Как правило, такие задачи очень не устойчивые. Нужна доп информация.
1
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
20.07.2017, 07:57  [ТС]
Цитата Сообщение от Nick07
Перебор -это не красиво. Попробуйте в CFTOOL
Благодарю, попробовал. Но там нет возможности задать свои параметры индивидуальных полос. Там вычисляется по своему алгоритму, при этом ни максимум индивидуальной полосы, ни полуширину я задать не могу. Либо, я не разобрался как.
Цитата Сообщение от Nick07
Как правило, такие задачи очень не устойчивые. Нужна доп информация.
Какая именно информация? Есть значение максимума и полуширины индивидуальной полосы. По идее задача превращается в линейную. Если верно работает алгоритм, то есть "лучшие" значения амплитуд, они определяются методом наименьших квадратов, как минимальная разница между истинным спектром и полученным в квадрате.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
20.07.2017, 23:38
Цитата Сообщение от kapoyar Посмотреть сообщение
Но там нет возможности задать свои параметры индивидуальных полос
Есть.
Цитата Сообщение от kapoyar Посмотреть сообщение
разница между истинным спектром и полученным в квадрате
Это тонкий вопрос.
Цитата Сообщение от kapoyar Посмотреть сообщение
Какая именно информация?
Физическая. Какие процессы изучаете?
1
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
21.07.2017, 14:49  [ТС]
1. Подскажите, где в CFTOOL можно задать шесть гауссиан с заданными мной параметрами полуширины и максимума элементарной гауссианы?
2.
Цитата Сообщение от Nick07
Физическая. Какие процессы изучаете?
Фотолюминесцентную спектроскопию твердых растворов A2B6.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
21.07.2017, 15:13
Цитата Сообщение от kapoyar Посмотреть сообщение
где в CFTOOL можно задать шесть гауссиан
Точно не помню, но вроде в CUSTOM EQUATION.
Я свои спектры на 6 гауссиан на раскладывал, только на максимум на 5.
1
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
21.07.2017, 15:30  [ТС]
Цитата Сообщение от Nick07
Точно не помню, но вроде в CUSTOM EQUATION.
Я свои спектры на 6 гауссиан на раскладывал, только на максимум на 5.
А на 5 гауссиан задавая максимумы элементарных полос и полуширины, возможно?
Благодарю. Попробую найти.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
21.07.2017, 16:07
Цитата Сообщение от kapoyar Посмотреть сообщение
максимумы элементарных полос и полуширины
Все само находилось/вычислялось
0
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
21.07.2017, 18:11  [ТС]
Цитата Сообщение от Nick07
Все само находилось/вычислялось
Мне так не подходит. Необходимо по найденным другими методами полуширине и максимуму найти амплитуду.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
21.07.2017, 20:16
Цитата Сообщение от kapoyar Посмотреть сообщение
Необходимо по найденным
Так это еще проще
0
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
21.07.2017, 22:09  [ТС]
Цитата Сообщение от Nick07
Так это еще проще
Может и проще, только у меня не получается. Мне надо по заданным разложить, сходно с тем, что раскладывается другими системами, например Origin. А у меня пока не получается.
0
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
21.07.2017, 23:01
Цитата Сообщение от kapoyar Посмотреть сообщение
сходно с тем,
Неизвестно, где лучше
1
0 / 0 / 0
Регистрация: 29.06.2014
Сообщений: 11
29.07.2017, 13:15  [ТС]
Благодарю. Но пока очень далеко от решения вопроса. Может кто-то поможет, напишет алгоритм по разложению спектра на индивидуальные полосы, методом наименьших квадратов?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.07.2017, 13:15
Помогаю со студенческими работами здесь

Спектр амплитуд и спектр фаз
Не успел написать в предыдущей теме. А Какие формулы для получения спектра амплитуд и спектра фаз используются для данного...

Как в общем случае решается уравнение относительно x и y вида x^2+y^2 = a, используя Гауссовы числа
Как в общем случае решается уравнение относительно x и y вида x2+y2 = a используя Гауссовы числа?

Не создаются индивидуальные упаковки 1С:УТ
Не могу создать в номенклатуре "Индивидуальный набор" упаковок - кнопка "Создать" не активна. Нажимаю "Еще" -...

Разные права на папку (но индивидуальные)
Здравствуйте, граждане! Помогите, пожалуйста, решить задачу, весь инет с ног на голову перевернул не могу найти решения, суть да дело в...

Индивидуальные настройки для virtualhost (apache2)
Всем привет! помогите пожалуйста... Как задать определенному VirtualHost-у другую версию php, а именно php 5.2. Имеется сервер с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru