clear; close all; clc;
% Define filter coefficients
b0 = 1;

b = b0 * [1 1 1 1];
a = [1 -1.5 0.625];

% Frequency response
[H,w] = freqz(b,a,1024);

% Magnitude and phase plots
figure;

subplot(2,1,1);
plot(w/pi, 20*log10(abs(H)), 'LineWidth', 1.5);
grid on;
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Magnitude (dB)');
title('Magnitude Response');

subplot(2,1,2);
plot(w/pi, unwrap(angle(H)), 'LineWidth', 1.5);
grid on;
xlabel('Normalized Frequency (\times\pi rad/sample)');
ylabel('Phase (rad)');
title('Phase Response');

% Define filter coefficients
b0 = 1;

b = b0 * [1 1 1 1];
a = [1 -1.5 0.625];

% Generate impulse signal
n = 0:50;
x = [1 zeros(1,50)];

% Compute impulse response
h = filter(b,a,x);

% Plot impulse response
figure;
stem(n,h,'filled');
grid on;
xlabel('n');
ylabel('h[n]');
title('Impulse Response (0 \leq n \leq 50)');
