DSP库里面当前只有一个信噪比的函数做了简单处理,仅仅是简单处理,判断除数是否为NAN值0x7FC00000(NaN的一种情况)。 
 
大家在使用有什么好的建议。 
 
float arm_snr_f32(float *pRef, float *pTest, uint32_t buffSize) 
{ 
  float EnergySignal = 0.0, EnergyError = 0.0; 
  uint32_t i; 
  float SNR; 
  int temp; 
  int *test; 
 
  for (i = 0; i < buffSize; i++) 
    { 
           /* Checking for a NAN value in pRef array */ 
          test =   (int *)(&pRef); 
      temp =  *test; 
 
          if (temp == 0x7FC00000) 
          { 
                          return(0); 
          } 
 
          /* Checking for a NAN value in pTest array */ 
          test =   (int *)(&pTest); 
      temp =  *test; 
 
          if (temp == 0x7FC00000) 
          { 
                          return(0); 
          } 
      EnergySignal += pRef * pRef; 
      EnergyError += (pRef - pTest) * (pRef - pTest); 
    } 
 
        /* Checking for a NAN value in EnergyError */ 
        test =   (int *)(&EnergyError); 
    temp =  *test; 
 
    if (temp == 0x7FC00000) 
    { 
                  return(0); 
    } 
 
 
  SNR = 10 * log10 (EnergySignal / EnergyError); 
 
  return (SNR); 
 
} |   
     
  
 |