sb_peak.cpp
来自「Digital filter designer s handbook C++ c」· C++ 代码 · 共 55 行
CPP
55 行
//
// file = sb_peak.cpp
//
#include "fs_spec.h"
#include <iostream.h>
double FindStopbandPeak( FreqSampFilterSpec *filter,
int numPts,
double H[])
{
double peak;
int n, nBeg, nEnd, indexOfPeak;
cout << "doing case " << filter->GetBandConfig() << endl;
switch (filter->GetBandConfig())
{
case 1: /* lowpass */
nBeg = 2*numPts*(filter->GetN2())/(filter->GetNumTaps());
nEnd = numPts-1;
break;
case 2: /* highpass */
case 3: /* bandpass */
nBeg = 0;
nEnd = 2*numPts*filter->GetN1()/filter->GetNumTaps();
break;
case 4: /* bandstop */
nBeg = 2*numPts*filter->GetN2()/filter->GetNumTaps();
nEnd = 2*numPts*filter->GetN3()/filter->GetNumTaps();
break;
}
cout << "nBeg = " << nBeg << endl;
cout << "nEnd = " << nEnd << endl;
peak = -9999.0;
for(n=nBeg; n<nEnd; n++) {
if(H[n]>peak) {
peak=H[n];
indexOfPeak = n;
}
}
if(filter->GetBandConfig() == 4) { /* bandpass has second stopband */
nBeg = 2*numPts*filter->GetN4()/filter->GetNumTaps();
nEnd = numPts;
for(n=nBeg; n<nEnd; n++) {
if(H[n]>peak) {
peak=H[n];
indexOfPeak = n;
}
}
}
return(peak);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?