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!

 Réponse acceptée

Mathieu NOE
Mathieu NOE le 23 Nov 2020

1 vote

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 commentaires

Charles
Charles le 24 Nov 2020
Modifié(e) : Charles le 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
Charles
Charles le 24 Nov 2020
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)
Mathieu NOE
Mathieu NOE le 24 Nov 2020
yes you're right

Connectez-vous pour commenter.

Plus de réponses (0)

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by