function y=cshift1d(x,nshift)
% CSHIFT1D circular shift operation 
% cshift(x,shift)
[nx nz]=size(x);
if nz > nx, nx=nz; end

if nshift < 0
	    y(1:nx+nshift)=x(1-nshift:nx);
	    y(nx+nshift+1:nx+nshift+abs(nshift))=x(1:abs(nshift));
end

if nshift > 0
	    y(nshift+1:nx)=x(nshift+1-nshift:nx-nshift);
	    y(1:nshift)=x(nx-nshift+1:nx);
end

if nshift == 0
y=x;
end
