% method of class @signal
% function sig=generatesinus(sig,[fre],[amplitude],[phase])
%   INPUT VALUES:
%       sig: original @signal with length and samplerate 
%       fre: frequency (Hz) [1000]
%       amplitude: [1]
%       phase: startphase [0]
%       phases must be in degrees!
%   RETURN VALUE:
%       sig:  @signal 
%
% (c) 2003-2008, University of Cambridge, Medical Research Council 
% Maintained by Tom Walters (tcw24@cam.ac.uk), written by Stefan Bleeck (stefan@bleeck.de)
% http://www.pdn.cam.ac.uk/cnbh/aim2006
% $Date: 2008-06-10 18:00:16 +0100 (Tue, 10 Jun 2008) $
% $Revision: 585 $


function sig=generatesinus(sig,fre,amplitude,phase)

if nargin < 4
    phase=0;
end
if nargin < 3
    amplitude=1;
end
if nargin < 2
    fre=1000;
end

nr_points=getnrpoints(sig);
sr=getsr(sig);
length=getlength(sig);

von=0+phase;
periode=1/fre;
bis=2*pi*length/periode + phase;


temp=linspace(von,bis,nr_points);
data=sin(temp);

data=data*amplitude;

sig=signal(data);
sig=setsr(sig,sr);
sig=setname(sig,sprintf('Sinus %4.2f kHz',fre/1000));