我有以下代码用于对信号进行反卷积。它工作得很好,在我的错误限制内......只要我将最终结果除以一个非常大的因子(11000)。
width = 83.66;
x = linspace(-400,400,1000);
a2 = 1.205e+004 ;
al = 1.778e+005 ;
b1 = 94.88 ;
c1 = 224.3 ;
d = 4.077 ;
measured = al*exp(-((abs((x-b1)./c1).^d)))+a2;
rect = @(x) 0.5*(sign(x+0.5) - sign(x-0.5));
rt = rect(x/83.66);
signal = conv(rt,measured,'same');
check = (1/11000)*conv(signal,rt,'same');
这就是我所拥有的。 measured
代表我收到的信号。信号是我想要找到的。检查是为了验证如果我将我的狭缝与我发现的信号进行卷积,我会得到相同的结果。如果你完全使用我所拥有的,你会看到检查和测量结果偏离了我扔在那里的 11000~ish 的因子。
有没有人有什么建议。我的想法是,狭缝高度不完全是 1,或者卷积实际上不会像我要求的那样有效地去卷积。(使用 deconv 只给了我 1 分,所以我用 convolve 代替)。