- fftw_real out[m_nFilterPoints];
- rfftw_one (m_realPlanForward, m_vecRealFftInput, out);
- for (int i = 0; i < m_nFilterPoints; i++) {
- out[i] *= m_vecFilter[i];
- }
- fftw_real outFiltered[m_nFilterPoints];
- rfftw_one(m_realPlanBackward, out, outFiltered);
- for (int i = 0; i < m_nSignalPoints; i++)
- output[i] = outFiltered[i];
+ fftw_real fftOutput [ m_nFilterPoints ];
+ rfftw_one (m_realPlanForward, m_vecRealFftInput, fftOutput);
+ for (int i = 0; i < m_nFilterPoints; i++)
+ m_vecRealFftSignal[i] = m_vecFilter[i] * fftOutput[i];
+ for (int i = m_nFilterPoints; i < m_nOutputPoints; i++)
+ m_vecRealFftSignal[i] = 0;
+
+ fftw_real ifftOutput [ m_nOutputPoints ];
+ rfftw_one(m_realPlanBackward, m_vecRealFftSignal, ifftOutput);
+ for (int i = 0; i < m_nSignalPoints * m_preinterpolationFactor; i++)
+ output[i] = ifftOutput[i];