У меня есть следующий код, который используется для деконволюции сигнала. Это работает очень хорошо, в пределах моего предела погрешности... пока я делю свой окончательный результат на очень большой коэффициент (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).
100
. - person Schorsch   schedule 01.07.2013y(t) = h(t)*u(t)
а тебе даноh(t)
иy(t)
? - person macduff   schedule 01.07.2013