EngineFilterButterworth8::EngineFilterButterworth8(filterType type, int sampleRate, double freqCorner1, double freqCorner2) { m_type = type; switch(type) { case FILTER_LOWPASS: m_bufSize = 8; Q_ASSERT(freqCorner2 == 0); m_coef[0] = 1 * fid_design_coef(m_coef + 1, 8, "LpBu8", sampleRate, freqCorner1, 0, 0); break; case FILTER_BANDPASS: m_bufSize = 16; m_coef[0]= 1 * fid_design_coef(m_coef + 1, 16, "BpBu8", sampleRate, freqCorner1, freqCorner2, 0); break; case FILTER_HIGHPASS: m_bufSize = 8; Q_ASSERT(freqCorner2 == 0); m_coef[0] = 1 * fid_design_coef(m_coef + 1, 8, "HpBu8", sampleRate, freqCorner1, 0, 0); break; } //Initialize Buffers for(int i=0; i < m_bufSize; i++) { m_buf1[i] = 0; m_buf2[i] = 0; } }
void EngineFilterButterworth8High::setFrequencyCorners(int sampleRate, double freqCorner1) { m_sampleRate = sampleRate; // Copy the old coefficients into m_oldCoef memcpy(m_oldCoef, m_coef, MAX_COEFS * sizeof(double)); m_coef[0] = fid_design_coef(m_coef + 1, 8, "HpBu8", m_sampleRate, freqCorner1, 0, 0); initBuffers(); m_doRamping = true; }
void EngineFilterButterworth8High::setFrequencyCorners(double freqCorner1) { m_coef[0] = 1 * fid_design_coef(m_coef + 1, 8, "HpBu8", m_sampleRate, freqCorner1, 0, 0); initBuffers(); }
void EngineFilterButterworth8Band::setFrequencyCorners(double freqCorner1, double freqCorner2) { m_coef[0]= 1 * fid_design_coef(m_coef + 1, 16, "BpBu8", m_sampleRate, freqCorner1, freqCorner2, 0); initBuffers(); }