% varyphas.m animierte Demonstration des Effektes 
%   einer Phasenverschiebung
%   FTINVEC kann vordefiniert werden
%     intern wird die Funktion shrg.m angewandt
if exist('FTINVEC') == 0 
  f = [ 1 1 1 1 1  zeros(1,91)  1 1 1 1]; % 100 Elemente
else
  f = FTINVEC;
end
n = length(f) ; nd = floor(n/2);  idx = 0:nd; 
%
clf; hold on
for k=1:n+1
  fp = shrg(f,k-1);
  ftr = fft(fp);
  ps = abs(2*ftr(1:nd+1)/n); mxv = max(ps);
  ps = ps .^2; mxp = mxv^2;
  ck = 2*real( ftr(1:nd+1) )/n;
  sk = -2*imag( ftr(1:nd+1) )/n;
  if k>1
    delete(hdt); delete(hdp); 
    delete(hdc); delete(hds);
  end
  subplot(2,2,1); 
  hdt = plot(fp);
  axis([0 n -1.1*max(fp) 1.1*max(fp)])
  subplot(2,2,3);
  hdp = bar(idx,ps);
  axis([0 nd 0  mxp ]);
  subplot(2,2,2);
  hdc = bar(idx,ck);
  axis([0 nd  -mxv mxv  ]);
  subplot(2,2,4);
  hds = bar(idx,sk);
  axis([0 nd  -mxv mxv ]);
  pause(0.15)
end
hold off


