cmProc2.h : Changed name of cmFIRTest() to cmFIRTest0(). Added cmFIRTest1().

This commit is contained in:
Kevin Larke 2015-05-29 11:22:44 -07:00
parent c734464b0e
commit ba5cd463f0
2 changed files with 38 additions and 6 deletions

View File

@ -823,7 +823,7 @@ cmRC_t cmFIRInitKaiser( cmFIR* p, unsigned procSmpCnt, double srate, double pass
// in practice the ripple must be equal in the stop and pass band - so take the minimum between the two
double d = cmMin(dPass,dStop);
// convert the ripple bcmk to db
// convert the ripple back to db
double A = -20 * log10(d);
// compute the kaiser alpha coeff
@ -914,7 +914,7 @@ cmRC_t cmFIRExec( cmFIR* p, const cmSample_t* sbp, unsigned sn )
// calc the output sample
while( cbp<cep)
{
// note that the delay is being iterated bcmkwards
// note that the delay is being iterated backwards
if( di == -1 )
di=delayCnt-1;
@ -936,7 +936,7 @@ cmRC_t cmFIRExec( cmFIR* p, const cmSample_t* sbp, unsigned sn )
return cmOkRC;
}
void cmFIRTest( cmRpt_t* rpt, cmLHeapH_t lhH, cmSymTblH_t stH )
void cmFIRTest0( cmRpt_t* rpt, cmLHeapH_t lhH, cmSymTblH_t stH )
{
unsigned N = 512;
cmKbRecd kb;
@ -978,6 +978,37 @@ void cmFIRTest( cmRpt_t* rpt, cmLHeapH_t lhH, cmSymTblH_t stH )
cmFIRFree(&ffp);
}
void cmFIRTest1( cmCtx* ctx )
{
const char* sfn = "/home/kevin/temp/sig.va";
const char* ffn = "/home/kevin/temp/fir.va";
unsigned N = 44100;
unsigned srate = N;
unsigned procSmpCnt = N;
double passHz = 15000;
double stopHz = 14000;
double passDb = 1.0;
double stopDb = 60.0;
unsigned flags = kHighPassFIRFl;
cmSample_t x[ procSmpCnt ];
cmVOS_Fill(x,procSmpCnt,0);
x[0] = 1;
cmVOS_Random(x,procSmpCnt, -1.0, 1.0 );
cmFIR* f = cmFIRAllocKaiser( ctx, NULL, procSmpCnt, srate, passHz, stopHz, stopDb, passDb, flags );
cmFIRExec( f, x, procSmpCnt );
cmVectArrayWriteMatrixS(ctx, ffn, f->outV, 1, f->outN );
cmVectArrayWriteMatrixS(ctx, sfn, x, 1, N );
cmFIRFree(&f);
}
//------------------------------------------------------------------------------------------------------------

View File

@ -190,8 +190,9 @@ extern "C" {
cmRC_t cmFIRInitSinc( cmFIR* p, unsigned procSmpCnt, double srate, unsigned sincSmpCnt, double fcHz, unsigned flags, const double* wndV );
cmRC_t cmFIRFinal( cmFIR* p );
cmRC_t cmFIRExec( cmFIR* p, const cmSample_t* sp, unsigned sn );
void cmFIRTest();
void cmFIRTest0( cmRpt_t* rpt, cmLHeapH_t lhH, cmSymTblH_t stH );
void cmFIRTest1( cmCtx* ctx );
//------------------------------------------------------------------------------------------------------------
// Apply a generic function to a windowed signal with a one sample hop size.
@ -771,7 +772,7 @@ extern "C" {
//------------------------------------------------------------------------------------------------------------
// cmVectArray buffers row vectors of arbitrary lenght in memory.
// cmVectArray buffers row vectors of arbitrary length in memory.
// The buffers may then be access using the cmVectArrayGetXXX() functions.
// The entire contents of the file may be written to a file using atVectArrayWrite().
// The file may then be read in back into memory using cmVectArrayAllocFromFile()