44 lines
661 B
Matlab
44 lines
661 B
Matlab
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')
|