Digital Signal Processing Filters

Hello I need some help with this question.
๐‘ฆ[๐‘›] = ๐‘Ž1 โˆ™ ๐‘ฅ[๐‘› โˆ’ ๐‘˜1] + ๐‘Ž2 โˆ™ ๐‘ฅ[๐‘›โˆ’ ๐‘˜2] + ๐‘1 โˆ™ ๐‘ฆ[๐‘›โˆ’ ๐‘˜3].
Set a1, a2, and b1 to any positive or negative real numbers of your choice. Set k1, k2, and k3 to any positive integer numbers of your choice (k1 can be zero). Present this equation with the numbers you have chosen. Present the transfer function ๐ป(๐‘ง) of your filter
I have chosen the values so my equation looks like this
y[๐‘›] = 0.4 โˆ™ ๐‘ฅ[๐‘›] + 0.6 โˆ™ ๐‘ฅ[๐‘›โˆ’ 1] + 0.8 โˆ™ ๐‘ฆ[๐‘›โˆ’ 2].
I have worked out H(z) to be (0.4 + 0.6z^-1) / 1-0.8z^-2) is this correct?
My questions are
Is this filter an FIR or IIR type?
How do you determine the poles and zero?
How do you determine if the filter is stable or unstable?
Thanks!

 Accepted Answer

Mathieu NOE
Mathieu NOE on 23 Nov 2020
hello
1/ this is obviously an IIR filter as it has a denominator, which means the past outputs are also in the recursive equation (and that makes its impulse response infinite)
3 / 2 methods :
a/ check that all poles lies inside the unity circle (with some margin to be strictly satble)
b/ you can also prove it from the recursive equation : assuming the input x is an impulse of amplitude 1 , the output must decay after the first sample to prove the filter is stable (bounded input => bounded output)
so x(1) = 1 and the next x samples are 0
I let you calculate the first two y samples , but after 3rd iteration, ๐‘ฅ[๐‘›] = 0 and โˆ™ ๐‘ฅ[๐‘›โˆ’ 1] = 0
so y[๐‘›] = 0.8 โˆ™ ๐‘ฆ[๐‘›โˆ’ 2]. which is a strictly converging serie (toward zero) ; easy to demonstrate whatever the initial output was;

4 Comments

Charles
Charles on 24 Nov 2020
Edited: Charles on 24 Nov 2020
Thank you very much for the reply. Im slightly confused on how to input the transfer function to find the poles in matlab.
I wrote H(z) wrong it should be = 0.4z^2+0.6z/z^2โˆ’0.8
I worked the poles out using the demoninator of H(z) to get +-sqr(0.8) and the zeros using the numerator to get z = 1.5
Is this correct and how would I determine if the system is stable or unstable with these values?
Thanks.
yes
the computation of the zeros and poles are simple in thi case
as the poles are inside the unit circle , the system is stable
you can check also unsing the step or impulse response (response is bounded)
you can use isstable to check system stability (stable if output is 1)
>> sys = tf([0.4 0.6 0],[1 0 -0.8],1)
sys =
0.4 z^2 + 0.6 z
---------------
z^2 - 0.8
Sample time: 1 seconds
Discrete-time transfer function.
>> step(sys)
>> isstable(sys)
ans =
logical
1
Thank you for this. Have I calculated the poles and zeros correctly using this method? (roots of numerator for zeros and roots of denominator for poles)
yes you're right

Sign in to comment.

More Answers (0)

Products

Asked:

on 22 Nov 2020

Commented:

on 24 Nov 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!