samer@34: function [x,phi]=block(o,phi0,N,f0,f1) samer@34: % block - Generate block of hardsync signal data samer@34: % samer@34: % block :: samer@34: % hardsync, samer@34: % 0--1 ~'initial phase of master' samer@34: % N:natural ~'number of samples to compute', samer@34: % 0--1 ~'normalised frequency of master (1=sampling freq)', samer@34: % 0--1 ~'normalised frequency of slave (1=sampling freq)', samer@34: % -> [[1,N]] ~'signal data', samer@34: % 0--1 ~'initial phase for next block'. samer@34: samer@34: x=zeros(1,N); samer@34: l0=round(1/f0); samer@34: samer@34: j=1; T=round(l0*(1-mod(phi0,1))); samer@34: phi1=f1*mod(phi0,1); samer@34: samer@34: while j<=N && T<=N samer@34: M=T-j+1; samer@34: x(j:T)=phi1+f1*(0:M-1); samer@34: j=T+1; samer@34: T=T+l0; samer@34: phi1=0; samer@34: end samer@34: phi0=0; samer@34: samer@34: M=N-j+1; samer@34: x(j:N)=phi1+f1*(0:M-1); samer@34: phi1=phi1+f1*M; samer@34: phi0=f0*M; samer@34: samer@34: