瀏覽代碼

cmProc2.h: Added _cmSpecDistBump() to cmSpecDist.

master
kevin 11 年之前
父節點
當前提交
07f6e563a2
共有 1 個文件被更改,包括 47 次插入2 次删除
  1. 47
    2
      cmProc2.c

+ 47
- 2
cmProc2.c 查看文件

@@ -3838,8 +3838,50 @@ cmReal_t  _cmSpecDistCentMode( cmSpecDist_t* p, cmReal_t* X1m )
3838 3838
   return spcUnit;
3839 3839
 }
3840 3840
 
3841
-void _cmSpecDistFlipAbove( cmSpecDist_t* p, cmReal_t* X1m)
3841
+void _cmSpecDistBump( cmSpecDist_t* p, cmReal_t* x, unsigned binCnt, double thresh)
3842 3842
 {
3843
+  /*
3844
+  thresh *= -1;
3845
+  minDb = -100;
3846
+
3847
+  if db < minDb
3848
+     db = minDb;
3849
+  endif
3850
+  
3851
+  if db > thresh 
3852
+    y = 1;
3853
+  else
3854
+    x =  (minDb - db)/(minDb - thresh);
3855
+
3856
+    y = x + (x - (x.^coeff));    
3857
+  endif
3858
+
3859
+  y = minDb + abs(minDb) * y;
3860
+  */
3861
+  unsigned i=0;
3862
+  
3863
+  double minDb = -100.0;
3864
+  thresh = -thresh;
3865
+
3866
+  for(i=0; i<binCnt; ++i)
3867
+  {
3868
+    double y;
3869
+
3870
+    if( x[i] < minDb )
3871
+      x[i] = minDb;
3872
+
3873
+    if( x[i] > thresh )
3874
+      y = 1;
3875
+    else
3876
+    {
3877
+      y  = (minDb - x[i])/(minDb - thresh);
3878
+      y += y - pow(y,p->lwrSlope);
3879
+    }
3880
+
3881
+    x[i] = minDb + (-minDb) * y;
3882
+
3883
+  }
3884
+
3843 3885
   
3844 3886
 }
3845 3887
 
@@ -3915,7 +3957,10 @@ cmRC_t  cmSpecDistExec( cmSpecDist_t* p, const cmSample_t* sp, unsigned sn )
3915 3957
         break;
3916 3958
 
3917 3959
       case 4:
3918
-        _cmSpecDistFlipAbove(p,X1m);
3960
+        _cmSpecDistBump(p,X1m, p->pva->binCnt, p->thresh);
3961
+        break;
3962
+
3963
+      case 5:
3919 3964
         break;
3920 3965
 
3921 3966
       default:

Loading…
取消
儲存