function genplot(fx,ft,xstr,ystr,style)
% GENPLOT plots complex function
%

if nargin<5
    style = 'phase';
end

fr = real(ft);
fi = imag(ft);
%fprintf('maximum real value %g\n',max(abs(fr)));
%fprintf('maximum imag value %g\n',max(abs(fi)));

if (max(abs(fr))<1e-10)
    plot(fx,fi,'k','LineWidth',2);
    grid;
    ylabel([ystr ' imag part']);
elseif max(abs(fi))<1e-10
    plot(fx,fr,'k','LineWidth',2);
    grid;
    ylabel(ystr);
else
    fa = abs(ft);
    phase = angle(ft)*180/pi;
    if strmatch('phase',style)>0
        [ax,h1,h2] = plotyy(fx,fa,fx,phase);
        set(get(ax(1),'YLabel'),'String',['|' ystr '|']);
        set(get(ax(2),'YLabel'),'String','Phase (degrees)');
    else
        [ax,h1,h2] = plotyy(fx,fr,fx,fi);
        set(get(ax(1),'YLabel'),'String',[ystr ' real part']);
        set(get(ax(2),'YLabel'),'String',[ystr ' imag part']);
    end
    set(h2,'LineStyle','--');
    set(h1,'LineWidth',2);
    set(h2,'LineWidth',2);
    set(gca,'xgrid','on','ygrid','on')
end
xlabel(xstr);