function Cxw=my_conv_no_err(x,w);
% вычисление свертки + забивка искаженных данных NaN и ограничение
% 
% Вызов:        Cxw=my_conv_no_err(x,w);
%
%   x - ряд 1 (измерения) длиной nx
%   w - ряд 2 (весовая функция) длиной nw
%
% Cxw - итоговая свертка
%
% w(1) w(2) ... w(nw)  --->    w(1) w(2) ... w(nw)
%               x(1)  x(2) ... x(nx)
%
% 1) делаем свертку Cxw=conv(x,w) и получаем Cxw длиной nx+nw-1
% 2) искаженные элементы Сxw c 1 по (nw-1) и с (nx+nw-1)-(nw-1) по (nx+nw-1) 
% заполняем NaN
% 3) оставляем ряд Cxw равный по длине исходному ряду x (зависит от
% четности ряда весовых коэффициентов: при четной длине W будем иметь
% смещенную оценку (на 0.5 шага к началу ряда)

% 11.06.2008    С.Ю.Хомутов

nx=length(x); nw=length(w);
Cxw=conv(x,w);  % свертка
nc=length(Cxw);
% заполняем NaN-ами искаженные краевые значения (где использовались только
% часть весовых коэффициентов)
Cxw(1:nw-1)=NaN; Cxw(nc-(nw-1)+1:nc)=NaN;
% обрезаем Cxw до длины исходного
if rem(nw,2), % нечетная длина второго ряда (коэффициентов фильтра)
    Cxw=Cxw(fix(nw/2)+1:nc-fix(nw/2));
else
    Cxw=Cxw(fix(nw/2)+1:nc-fix(nw/2)+1);
end



