iir filter for loop code

c1 = 8
c2 = 2
c3 = 7
Can you guys help me to find the first seven impulse response of the IIR filter with filter coefficient b0 = 0.05 * c1, b1 = 0.03 * c2, b2 = 0.02 * c3, a1 = 0.5, a2 = 0.5 using for loop code in matlab, this picture may also help
thanks <3

Respuestas (1)

Mathieu NOE
Mathieu NOE el 25 de Oct. de 2021

0 votos

helo
here you are
clc
clearvars
c1 = 8;
c2 = 2;
c3 = 7;
b0 = 0.05 * c1;
b1 = 0.03 * c2;
b2 = 0.02 * c3;
a1 = 0.5;
a2 = 0.5;
% manual for loop coding
x = [1; zeros(6,1)];
samples = length(x);
y(1) = b0*x(1) + 0 + 0 + 0 + 0;
y(2) = b0*x(2) + b1*x(1) + 0 + a1*y(1) + 0;
for k = 3:samples
y(k) = b0*x(k) + b1*x(k-1) + b2*x(k-2) + a1*y(k-1) + a2*y(k-2);
end
figure(1)
plot(y)

10 comentarios

Robert Manalo
Robert Manalo el 25 de Oct. de 2021
Hello mate, thank you for this <3 but how can i get the answer? Im running the code but the output is just the graph. My prof is not accepting it. lol
Mathieu NOE
Mathieu NOE el 25 de Oct. de 2021
the output is y
you can see the values if you type y in the workspace
Robert Manalo
Robert Manalo el 25 de Oct. de 2021
i got it bro. thanks <3
Robert Manalo
Robert Manalo el 28 de Oct. de 2021
Good day mate! Can i asked you about the code the you gave me before? This one really help me and i answer was correct but can you please help me to make it as a function in matlab?
Mathieu NOE
Mathieu NOE el 28 de Oct. de 2021
hello
see bleow
c1 = 8;
c2 = 2;
c3 = 7;
b0 = 0.05 * c1;
b1 = 0.03 * c2;
b2 = 0.02 * c3;
a1 = 0.5;
a2 = 0.5;
%% filter numerator / denominator in vector form
B = [b0 b1 b2];
A = [1 a1 a2];
%% manual for loop coding
x = [1; zeros(6,1)];
y = myfilter(x,B,A);
figure(1)
plot(y)
%%%%%%%%%%%%%%%%%%%
function y = myfilter(x,B,A)
samples = length(x);
b0 = B(1);
b1 = B(2);
b2 = B(3);
a1 = A(2);
a2 = A(3);
y(1) = b0*x(1) + 0 + 0 + 0 + 0;
y(2) = b0*x(2) + b1*x(1) + 0 + a1*y(1) + 0;
for k = 3:samples
y(k) = b0*x(k) + b1*x(k-1) + b2*x(k-2) + a1*y(k-1) + a2*y(k-2);
end
end
Kennedy Allen Aday
Kennedy Allen Aday el 28 de Oct. de 2021
got it bro! <3 thank you so much
Mathieu NOE
Mathieu NOE el 28 de Oct. de 2021
do you accept my answer this time ?
tx
Robert Manalo
Robert Manalo el 30 de Oct. de 2021
yes bro tnx!
Johnny Dela Vega
Johnny Dela Vega el 31 de Oct. de 2021
@Mathieu NOE Hey, can I ask you one question? I have a code for the same problem but was rejected. Can you tell me what is wrong with my code?
function y=IIR_Filter(b,a,x)
c=[4 8 1 2 3];
b0=0.05*c(4);
b1=0.03*c(3);
b2=0.02*c(2);
b=[b0 b1 b2];
a=[0.5 0.5];
x=[1 0 0 0 0 0 0];
N=length(a)-1;
M=length(b)-1;
y=zeros(1,length(x));
for n=1:length(x)
y1=0;
for k=1:N
if n-k>=1
y1=y1+a(k+1)*y(n-k);
end
end
y2=0;
for k=0:M
if n-k>=1
y2=y2+b(k+1)*x(n-k);
end
end
y(n)=-y1+y2;
end
Mathieu NOE
Mathieu NOE el 19 de Nov. de 2021
maybe you didn't push the "accept" button...?
all the best

Iniciar sesión para comentar.

Categorías

Más información sobre Install Products en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 25 de Oct. de 2021

Comentada:

el 19 de Nov. de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by