Mercurial > hg > aimmat
view aim-mat/tools/@signal/genfm.m @ 4:537f939baef0 tip
various bug fixes and changed copyright message
author | Stefan Bleeck <bleeck@gmail.com> |
---|---|
date | Tue, 16 Aug 2011 14:37:17 +0100 |
parents | 20ada0af3d7d |
children |
line wrap: on
line source
% method of class @signal % function sig=genfm(sig,fc,f_mod,modindex,amplitude) % % INPUT VALUES: % sig: original @signal with length and samplerate % fc: carrier frequency (Hz) % fmod: modulation frequency (Hz) % modindex: modulation index b = % maximum carrier frequency deviation / modulation frequency % % modulation depth = modulation index * modulation_frequency / carrier frequency % modulation index = modulation_frequency * carrier frequency/100/modulation_depth; % % RETURN VALUE: % sig: @signal % % This external file is included as part of the 'aim-mat' distribution package % (c) 2011, University of Southampton % Maintained by Stefan Bleeck (bleeck@gmail.com) % download of current version is on the soundsoftware site: % http://code.soundsoftware.ac.uk/projects/aimmat % documentation and everything is on http://www.acousticscale.org function sig=genfm(sig,fc,f_mod,modindex,amplitude) if nargin<5 amplitude=1; end if nargin<4 modindex=0.1; end if nargin<3 f_mod=100; end if nargin<2 fc=1000; end sr=getsr(sig); len=getlength(sig); d=getvalues(sig); d=zeros(size(d)); t=0:1/sr:len-1/sr; fm=amplitude*cos(2*pi*fc.*t + modindex*sin(2*pi*f_mod.*t)); sig=setvalues(sig,fm); % f1=fc-f_mod; % f2=fc; % f3=fc+f_mod; % sin1=sinus(len,sr,f1,modgrad/2,0); % sin2=sinus(len,sr,f2,1,0); % sin3=sinus(len,sr,f3,modgrad/2,0); % sig=sin1; % sig=sig+sin2; % sig=sig+sin3; name=sprintf('FM: modulation: %3.1f Hz, carrier: %4.1f kHz, mod index: %2.1f',f_mod,fc/1000,modindex); sig=setname(sig,name); % sig=scaletomaxvalue(sig,1); % sig=RampAmplitude(sig,0.01); % baue eine Rampe