コード例 #1
0
ファイル: Decimator.c プロジェクト: liufeigit/FxDSP
Error_t
DecimatorProcessD(DecimatorD*   decimator,
                  double*       outBuffer,
                  const double* inBuffer,
                  unsigned      n_samples)
{
    if (decimator && outBuffer)
    {
        unsigned declen = n_samples / decimator->factor;
        double temp_buf[declen];
        ClearBufferD(outBuffer, declen);

        for (unsigned filt = 0; filt < decimator->factor; ++filt)
        {
            CopyBufferStrideD(temp_buf, 1, inBuffer, decimator->factor, declen);
            FIRFilterProcessD(decimator->polyphase[filt], temp_buf, temp_buf, declen);
            VectorVectorAddD(outBuffer, (const double*)outBuffer, temp_buf, declen);
        }
        return NOERR;
    }
    else
    {
        return NULL_PTR_ERROR;
    }
}
コード例 #2
0
ファイル: TestDSP.cpp プロジェクト: eriser/FxDSP
TEST(DSPDouble, TestVectorVectorAdd)
{
    double out[10];
    VectorVectorAddD(out, zerosD, rampD, 10);
    for (unsigned i = 0; i < 10; ++i)
    {
        ASSERT_DOUBLE_EQ(rampD[i], out[i]);
    }
}