Thanks to the nice article from Xilinx TechXclusives [XLNX-TECH], let us try to understand the probable digital implementation of resistor-capacitor based low pass filter. Consider a simple RC filter shown in the figure below. Assuming that there is no load across the capacitor, the capacitor charges and discharges through the resistor path.

**Figure: RC low pass filter**

is the voltage at the input of resistor and

is the voltage at the output.

From capacitor theory, the charge in the capacitor is , where

is the capacitance

is the voltage and

is the constant current flowing for short duration of time .

With the input voltage is greater than output voltage , resulting in current flowing through the resistor , where

.

When this current flows into the capacitor for a short time , the capacitor will charge and the voltage across the capacitor increases to

, where

is the new value of output voltage.

**Digital Implementation**

The above equation seems to be convenient for digital implementation as shown in the equation below:

where,

,

is ,

is and

is .

The transfer function of the above equation is

.

## Simulation model

Script for plotting the frequency and step response of a digital RC low pass filter.

Click here to download.

**Figure: Frequency response of the digital implementation of RC low pass filter**

**Figure: Step response of the digital implementation of RC low pass filter**

**Observations**

1. As expected, lower the value of k, tighter is the frequency response and slower is the settling time. This is in synch with analog RC implementation, where a higher value of R and C suggests that the capacitor takes more time to charge/discharge (Note that k is inversely proportional to RC).

2. To facilitate simpler digital implementations not involving multipliers, the value of k can be chosen to be a power of 2.

**References**

[XLNX-TECH] Xilinx TechXclusives: Digitally Removing a DC Offset (or “DSP Without Math?”), By Ken Chapman Senior Staff Engineer, Applications Specialist, Xilinx UK.

Hope this helps.

Krishna

You will find the artile now in this white paper:

http://www.xilinx.com/support/documentation/white_papers/wp279.pdf

@Henk: Thanks for the link. I updated the post.

Hello Sir,

Do u have a C program for the above? It would be really great if u can provide the C code for my project purpose.

Thanks and regards,

Raj

@raj: Sorry, I do not have the C code