3
\$\begingroup\$

I was reading a chapter in a textbook on Infinite Impulse Response filters. The author in the beginning of the chapter states that" impulse response h(n) for a realizable filter is "

h(n)=0 for n<=0

Can anyone please tell me why? If the answer to this question is lengthy please feel free to suggest any websites/links where I may find the answer to this question.

\$\endgroup\$

1 Answer 1

5
\$\begingroup\$

The simplest reason is that all realizable filters need to be causal.

A physically realizable filter can't predict the future. If it were to have any type of response BEFORE the input actually happens, it would need to know that the input will occur before it does. When we're analyzing a filter as a system, we usually consider the input to come in the moment of t=0, so for any t<0, the filter doesn't know that the input is coming and can't produce output.

Imagine that you're driving a car and then suddenly you see a car in front of you in your lane moving in opposite direction. You move your car to a side of the road and avoid the car going straight towards you. This would be an example of a "realizable filter". You couldn't have known that there is a car coming towards you until you saw it, so it was impossible to respond to the other car until the moment you detected its presence.

IIR filters and other types of non-causal systems can be used for batch processing of data that has been already gathered, so that we already have the "future" recorded somewhere. Even in that case, we need to properly initialize starting values for the filter or to design the system in such way that the first few values don't make a major impact on the results.

\$\endgroup\$
2
  • \$\begingroup\$ What do you mean by " we need to properly initialize starting values for the filter or to design the system in such way that the first few values don't make a major impact on the results."? Thanks for the clear explanation by the way!+1 \$\endgroup\$ Commented Oct 25, 2013 at 6:52
  • 1
    \$\begingroup\$ @Vineet Kaushik Let's take a look at this example of discrete time average filter: \$ y[n]=\frac{x[n]+x[n-1]}{2}\$ If our datastream starts at time moment n, then we need to provide artificial value for time moment n-1. If for example x[n]=1, x[n+1]=1.5, x[n+2]=1.8 and we place the x[n-1]=1000, then we'd get a sudden jump for the first value of the average which doesn't actually exist. If the filter is a bit more complicated and takes several values from the past, then providing those initial values will have an even greater impact on the results. \$\endgroup\$
    – AndrejaKo
    Commented Oct 25, 2013 at 18:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.