0

信号をデコンボリューションするために使用される次のコードがあります。私のエラー制限内で非常にうまく機能します...最終結果を非常に大きな係数(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 を使用しました)。

4

1 に答える 1