
Sum Scaled Waves of Different Lengths

jjweimer
dwave = destination wave
wlist = string list of waves to sum
Different lengths are handled by the Interpolate2 operation.
Example
Make three waves using the table edit. Assume they are named wave0, wave1, and wave2 with 6, 3, and 9 points respectively. Add data to the waves. Execute the following three commands on the command line.
SetScale/P x 1,0.5,"", wave2 SetScale/P x 0,2,"", wave1 SumWavesInX(wave2,"wave0;wave1;")
Function
Function SumWavesInX(dwave, wlist) wave dwave string wlist variable ic, np, nt, sn string theOne nt = ItemsInList(wlist) duplicate/O dwave tmp_dwave, tmp_swave tmp_dwave=0 tmp_swave=0 np = numpnts(dwave) for (ic=0;ic<nt;ic+=1) theOne = StringFromList(ic,wlist) wave swave = $theOne sn = numpnts(swave) if (sn!=np) interpolate2/I=3/Y=tmp_swave swave else tmp_swave = swave endif tmp_dwave+=tmp_swave endfor dwave = tmp_dwave killwaves/Z tmp_dwave, tmp_swave return 0 end

Forum

Support

Gallery
Igor Pro 9
Learn More
Igor XOP Toolkit
Learn More
Igor NIDAQ Tools MX
Learn More