function [vMod] = generateRFFrequencyVectorOrg(f1,Nmod1,varargin) % generateRFFrequencyVector generates the RF frequency vetor % required by the initial Optickle call % % Example vMod = generateRFFrequencyVector(f1,Nmod1,f2,Nmod2,f3,Nmod3) % % fi: Modulation frequency % Nmodi: Maximum order of higher harmonic % N=nargin; if mod(N,2) || N<2 disp('Need even number of arguments, at least 2.'); disp('Example: vMod = generateRFFrequencyVector(f1,Nmod1,f2,Nmod2,f3,Nmod3)'); error('Wrong number of arguments!'); end n1 = (-Nmod1:Nmod1)'; N1 = length(n1); vMod1 = zeros(N1, 1); % f1 sideband vector for n = 1:N1 vMod1(n,:) = n1(n) * f1; end % add them together constructively vMod = vMod1; for m=3:2:N f2 = varargin{m-2}; Nmod2 = varargin{m-1}; n2 = (-Nmod2:Nmod2)'; N2 = length(n2); vMod2 = zeros(N2, 1); % f2 sideband vector for n = 1:N2 vMod2(n,:) = n2(n) * f2; end for n = 1:N2 % if the N2 frequency is already in the list, add to the exisiting field if ~sum(ismember(vMod(:,1),vMod2(n,1))) vMod = [vMod;vMod2(n,:)]; end end end vMod = sortrows(vMod, 1);