信号をデコンボリューションするために使用される次のコードがあります。私のエラー制限内で非常にうまく機能します...最終結果を非常に大きな係数(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 倍ずれていることがわかります。
誰にも提案はありますか。私の考えでは、スリットの高さが正確に 1 ではないか、畳み込みが実際には効果的にデコンボリューションされないということです。(deconv を使用しても 1 ポイントしか得られないため、代わりに convolve を使用しました)。