Clear[xStep]; xStep[n_] := 0 /; n <= 0; xStep[n_] := 1 /; n > 0; ListPlot[ Table[xStep[n], {n, 20}], PlotRange -> {0, 1.1}] Clear[yStep]; yStep[n_] := yStep[n] = 0.098 xStep[n] + 0.195 xStep[n - 1] + 0.098 xStep[n - 2] + 0.942 yStep[n - 1] - 0.333 yStep[n - 2]; yStep[-1] = yStep[0] = 0 ListPlot[ Table[yStep[n], {n, 20}], PlotRange -> {0.0, 1.1}] ListPlot[ Table[yStep[n], {n, 20}], PlotRange -> {0.90, 1.07}] (* Explanation of xSine. A sine wave with frequency f can be described by the function sin(2\[Pi] f t), where t is the time in seconds. If we sample this function with a sampling rate s (s times per second), we can discretize the time as t = n/s, where n=0,1,2, \[Ellipsis] is an integer representing the index of the sample. If the sampling rate is s=8000 Hz, n=8000 corresponds to the time 1 second. In the definition below s is written as samplingRate. *) Clear[xSine]; samplingRate = 8000.; (* This is how often the signal is sampled. Do not change! *) xSine[freq_, n_] := Sin[2 Pi freq n/samplingRate]; x[n_] := Sin[2 Pi freq n/samplingRate]; ListPlot[ Table[xSine[500, n], {n, 30}]] Clear[y]; y[freq_, n_] := y[n] = 0.098 xSine[freq, n] + 0.195 xSine[freq, n - 1] + 0.098 xSine[freq, n - 2] + 0.942 y[n - 1] - 0.333 y[n - 2]; y[0] = y[-1] = 0 yList = ListPlot[ Table[y[400, n], {n, 30}], PlotRange -> {-1, 1}]