clear; close all; clc;

n = 0:599;   % 3 periods (3 × 200 samples)

x = sin(2*pi*0.005*n) ...
    + (1/3)*sin(2*pi*0.005*3*n) ...
    + (1/5)*sin(2*pi*0.005*5*n) ...
    + (1/7)*sin(2*pi*0.005*7*n);

stem(n,x)
grid on
xlabel('n')
ylabel('x[n]')
title('Signal over 3 periods')

load("Filter_coefficients.mat","-mat")

y_FIR = filter(b1,a1,x);
y_IIR = filter(b2,a2,x);

figure

plot(n,x,'y','LineWidth',1.5)
hold on

plot(n,y_FIR,'b')
plot(n,y_IIR,'r')

legend('Original','FIR','IIR')
grid on
title('Comparison of Signals')

figure

subplot(2,1,1)
freqz(b1,a1)
title('FIR Frequency Response')

figure

subplot(2,1,2)
freqz(b2,a2)
title('IIR Frequency Response')
