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); 
}
Exemple #2
0
Array2D CombinationByBinary(Array1D array, int K)
{
    Array2D result;
    if (array.empty() || K <= 0) { return result; }
    if (array.size() < K) {
        result.push_back(array);  /** @warning maybe exclude it */
        return result;
    }
    /** @warning sort or not */
    Array1D temp;
    int begin = (1 << K) - 1, end = (1 << array.size()) - (1 << (array.size() - K));
    for (int bit = begin; bit <= end; bit = NextBit(bit)) {
        temp.clear();
        for (int i = 0; i < array.size(); i++) {
            if (bit & (1 << i)) {
                temp.push_back(array[i]);
            }
        }
        result.push_back(temp);
    }
    return result;
}