- SignalFilter filter (m_idFilter, m_dFilterMin, m_dFilterMax, m_nFilterPoints, m_dBandwidth, m_dFilterParam, SignalFilter::DOMAIN_FREQUENCY);
- m_adFilter = new double [m_nFilterPoints];
- filter.copyFilterData (m_adFilter, 0, m_nFilterPoints);
- shuffleNaturalToFourierOrder (m_adFilter, m_nFilterPoints);
+ } else { // Even
+ m_dFilterMin = -1. / (2 * m_dSignalInc);
+ m_dFilterMax = 1. / (2 * m_dSignalInc);
+ m_dFilterInc = (m_dFilterMax - m_dFilterMin) / m_nFilterPoints;
+ m_dFilterMax -= m_dFilterInc;
+ }
+
+ SignalFilter filter (m_idFilter, m_dFilterMin, m_dFilterMax, m_nFilterPoints, m_dBandwidth, m_dFilterParam, SignalFilter::DOMAIN_FREQUENCY);
+ m_adFilter = new double [m_nFilterPoints];
+ filter.copyFilterData (m_adFilter, 0, m_nFilterPoints);
+ if (m_traceLevel >= TRACE_PLOT) {
+ SGPDriver sgpDriver ("Frequency Filter: Natural Order");
+ SGP sgp (sgpDriver);
+ EZPlot ezplot (sgp);
+
+ ezplot.ezset ("title Filter Filter: Natural Order");
+ ezplot.addCurve (m_adFilter, m_nFilterPoints);
+ ezplot.plot();
+ cio_put_str ("Press any key to continue");
+ cio_kb_getc ();
+ }
+ shuffleNaturalToFourierOrder (m_adFilter, m_nFilterPoints);
+ if (m_traceLevel >= TRACE_PLOT) {
+ SGPDriver sgpDriver ("Frequency Filter: Fourier Order");
+ SGP sgp (sgpDriver);
+ EZPlot ezplot (sgp);
+
+ ezplot.ezset ("title Filter Filter: Fourier Order");
+ ezplot.addCurve (m_adFilter, m_nFilterPoints);
+ ezplot.plot();
+ cio_put_str ("Press any key to continue");
+ cio_kb_getc ();
+ }