Multiple echo FIR Filter in Matlab

1.7k Views Asked by At

enter image description here

This is my final homework for the semester, I would be glad if you can help me.

1

There are 1 best solutions below

1
On BEST ANSWER

Here's some help with the theory. From the following $\mathcal{Z}$-transform correspondence

$$x[n-kR]\Longleftrightarrow X(z)z^{-kR}$$

you get

$$Y(z)=X(z)\sum_{n=0}^{N}a^kz^{-kR}=X(z)H(z)$$

with

$$H(z)=\sum_{n=0}^{N}a^kz^{-kR}$$

Using the formula for the geometric sum, you can rewrite $H(z)$ as

$$H(z)=\frac{1-a^{N+1}z^{-R(N+1)}}{1-az^{-R}}\tag{1}$$

which is the answer to part (i). Even though it may seem from (1) that $H(z)$ has a pole at $z$ which satisfies $1-az^{-R}=0$, this is not the case, because this pole is cancelled by a zero of the numerator. After all, the filter is an FIR filter, which only has poles at $z=0$.

Using $H(z)=Y(z)/X(z)$ and transforming (1) back to the time domain results in the answer to (ii):

$$Y(z)(1-az^{-R})=X(z)(1-a^{N+1}z^{-R(N+1)})\\ y[n]-ay[n-R]=x[n]-a^{N+1}x[n-R(N+1)]\tag{2}$$

As for the Matlab implementation, simply implement the original equation given in the question to get the non-recursive filter, and implement (2) for the recursive filter. If you define an input vector $x=[1,0,0,\ldots,0]$, you get the impulse response as output. The coefficients of the recursive filter are given by the coefficients of the numerator and denominator polynomials in (1).