# Deconvolution of Guassian curve

27 ビュー (過去 30 日間)
Pouyan Msgn 2020 年 5 月 5 日
コメント済み: Alex Sha 2020 年 5 月 6 日
I have a curve here which I have to deconvolve it into many other curves with different peaks. The resault is this in another program: That is I have to deconvolve one curve in 4 curves in Matlab! I want to do the same thing in Matlab but I failed!
clc
clear all
D398=importdata('J398.txt');
D398=flipud(D398); %its a spectrum from higher values to smaller!
X1=D398(:,1); Y1=D398(:,2);
[X,Y]=deconv(X1,Y1);
plot(X1,Y1)
hold on
plot(X,Y,'r')
set(gca, 'XDir','reverse')
grid on
But it is not correct! Is that possible to do this in Matlab ?

サインインしてコメントする。

### 回答 (1 件)

Alex Sha 2020 年 5 月 5 日
Hi, you may try 4 Gauss Function: The results will be:
Root of Mean Square Error (RMSE): 451.21462729511
Sum of Squared Residual: 49066308.2123007
Correlation Coef. (R): 0.999771552934335
R-Square: 0.999543158056732
Determination Coef. (DC): 0.999543158056733
Parameter Best Estimate
---------- -------------
y0 6181.08011049796
a1 -3146.47497260807
w1 1.88004200222529
xc1 528.043585459549
a2 67855.6616645231
w2 1.23677625792812
xc2 533.256290476665
a3 89669.8140293669
w3 1.73388329145185
xc3 531.944238118754
a4 -58214.4714395774
w4 -1.73177439354019
xc4 534.823600475954  #### 2 件のコメント

Pouyan Msgn 2020 年 5 月 5 日
Thank you but could you please tell me what the code is and how I should perform this algorithm ?
Is this just to add this code:
f = fit(X,Y,'gauss4')
???
Alex Sha 2020 年 5 月 6 日
Combination of 4 Gauss function looks like:
y = y0+(a1/(w1*sqrt(pi/2)))*exp(-2*((x-xc1)/w1)^2)+(a2/(w2*sqrt(pi/2)))*exp(-2*((x-xc2)/w2)^2)+(a3/(w3*sqrt(pi/2)))*exp(-2*((x-xc3)/w3)^2)+(a4/(w4*sqrt(pi/2)))*exp(-2*((x-xc4)/w4)^2)
In Matlab, you can use lsqcurvefit, the problem is it is not easy to guess/provide proper initial start value for each parameter.

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!