You will implement a second-order low-pass filter using the finite difference method. The finite difference method is a useful mathematical method that is used to numerically solve differential equations. Numerical techniques become very handy when there is no analytical solution for a given equation. In the finite difference method, all continuous signals are discretized as
Here, is the time step and N is the total number of time steps. is just a convenient way to express V at time step . Another approximation used in the finite difference method is the discretization of derivatives. Derivatives are approximated by finite differences of discrete signals:
The differential equation for the second-order low-pass filter i s given by
where is the cutoff frequency. For the MP, we will consider an input signal given by . You can play with other input signals later. In the test input files, we set the frequencies so that . Our goal is to numerically solve the above differential equation and find the approximate solution to . Using the finite difference method, the differential equation is discretized as follows.
This is the time-stepping equation that you have to evaluate for this MP. For every time step n, you use the values of the input and output signals at step n or before to calculate the output signal at time step n+1. You may assume that .
Once you implement this, you need to output your calculated values of in the following format:
printf("%lf\n", variable_name);
Attachment:- cprogram.zip