void upsample(const Array1D<T>& v, int usf, Array1D<T>& u) { // it_assert1(usf >= 1, "upsample: upsampling factor must be equal or greater than one" ); u.set_size(v.length()*usf); u.clear(); for(long i=0;i<v.length();i++) u(i*usf)=v(i); }
void lininterp(const Array1D<T>& v, int usf, Array1D<T>& u) { // it_assert1(usf >= 1, "lininterp: upsampling factor must be equal or greater than one" ); long L = (v.length()-1)*usf+1; u.set_size(L); for (long j = 0; j < L-1; j++) { //u(j) = (v(j/usf) + (j % usf)/((float)usf)*(v((j+usf)/usf)-v(j/usf))); u(j) = (v(j/usf) + (j % usf)/((double)usf)*(v((j+usf)/usf)-v(j/usf))); } u(L-1) = v(v.length()-1); }