Library / Signal processing and digital filters / DSP-43
Signal processing and digital filters
Forward–backward filtering amplitude response
Net amplitude response of a real-coefficient filter applied forwards and then backwards, away from the end transients of a finite record, from the one-pass complex response H.
- Ref
- DSP-43
- Rev
- v1
- Field
- Signal processing and digital filters
- Result
- Gfb
Running a real-coefficient filter forwards and then backwards through a record gives H(ω) × conj(H(ω)) = |H(ω)|²: the phase cancels, so the filtering is zero-phase, and the amplitude response is squared. A −3 dB point becomes −6 dB and the attenuation in dB doubles. It applies away from the ends of a finite record, where the transients of the two passes do not die out.
Net amplitude response of a real-coefficient filter applied forwards and then backwards, away from the end transients of a finite record, from the one-pass complex response H. The net phase is zero, and the attenuation in dB doubles relative to a single pass.
Calculator
- One-pass gain, |H|0.5
- One-pass attenuation−6.021 dB
- Forward–backward attenuation−12.04 dB
What drives the result
Each variable is moved across its typical range while the others stay at the values above. The longest bar is the key driver.
- One pass gives 0.5 (−6.02 dB); forwards and backwards gives 0.25 (−12 dB), exactly double the attenuation.
- The net phase is zero, so features keep their timing; the cost is that the filter is non-causal and needs the whole record.
Chart data as tables
Ranked variables
| Variable | Typical range | Lowest result | Highest result | Swing () | Local step | Change in result |
|---|---|---|---|---|---|---|
| Re H Real part of the one-pass response | −2 to 2 | 0.16 | 4.16 | 4 | +0.08 | +21.8 % |
| Im H Imaginary part of the one-pass response | −2 to 2 | 0.09 | 4.09 | 4 | +0.08 | +28.2 % |
Sweep of Real part of the one-pass response
| Real part of the one-pass response | Zero-phase gain |
|---|---|
| −2 | 4.16 |
| −1.5 | 2.41 |
| −1 | 1.16 |
| −0.5 | 0.41 |
| 0 | 0.16 |
| 0.5 | 0.41 |
| 1 | 1.16 |
| 1.5 | 2.41 |
| 2 | 4.16 |
Sweep one variable
Variables and how each one contributes
Zero-phase gain
What the equation gives you. Everything else feeds it.
Real part of the one-pass response
The real part of the one-pass response H(ω). Raises the magnitude and so the squared gain. Raising it by 10 % (to 0.33) moves the result by +7.56 %, from 0.25 to 0.2689.
Imaginary part of the one-pass response
The imaginary part of the one-pass response H(ω). Raises the magnitude and so the squared gain. Raising it by 10 % (to 0.44) moves the result by +13.4 %, from 0.25 to 0.2836.
Worked example with the values above
- Magnitude squared: |H|² = 0.3² + 0.4² = 0.09 + 0.16.
- One pass: |H| = 0.5.
- G_fb = |H|² = 0.25.
Assumptions and limits
- A stable, linear, time-invariant filter at a steady sinusoidal frequency in rad/sample.
- Phase that is consistently unwrapped, with magnitude not equal to zero at the frequency used.
Common mistakes
- Using wrapped phase, which jumps by 2π and ruins the delay.
- Mixing hertz and rad/sample in the delay formulas.
- Applying the forward–backward result to a single pass or to a record with large end transients.
Statistics and uncertainty
Phase and group delay come from phase differences, so they amplify noise where the magnitude is small and fail at zeros of the response. A secant estimate also carries an error of order Δω² times the third derivative of phase.
Where it is used
- Evaluating gain, phase and delay of a digital filter at a chosen frequency.
- Combining sections and predicting zero-phase filtering.
Maths you need
- Frequency response: H(ω) evaluated on the unit circle
- Group delay: the negative slope of phase against frequency
- Phase delay: the negative phase divided by frequency