Commit 7ea0cc71 authored by 袁通's avatar 袁通
Browse files

First version of LAB 2

parent d5773129
Loading
Loading
Loading
Loading

LAB2/P2_10_a.m

0 → 100644
+81 −0
Original line number Diff line number Diff line
% Problem 2.10(a)

load inputs/lineup.mat

% sound(y, 8192); 

figure;
plot(y)
title('Sound befor filtering');

saveas(gcf, "plots/P2_10_ini_out.png");
close;

% 2.10(a) -------------------------------
x = [1 zeros(1, 1000)];
nx = 0:1000;

he = zeros(1, 1001);
nhe = 0:1000;

for i = 1:1001
    if i < 1001
        he(i) = x(i);
    else
        he(i) = x(i) + 0.5*x(i-1000);
    end    
end

figure;
stem(nhe, he);
title('h_e[n]');
xlabel('n');

saveas(gcf, "plots/P2_10_a_out.png");
close;

% 2.10(b) -------------------------------

% This is not a problem that require to be verified by MATLAB

% 2.10(c) -------------------------------
a = [1 zeros(1, 999) 0.5];
b = [1];
d = [1, zeros(1, 4000)];
nd = 0:4000;
her = filter(b, a, d);
nher = 0:4000;

figure;
stem(nd, her);
title('h_{er}[n]');
xlabel('n');

saveas(gcf, "plots/P2_10_c_out.png");
close;

% 2.10(d) -------------------------------
%  I feel that the given value 1000 and 0.5 are fine. 

a = [1 zeros(1, 999) 0.5]
z = filter(1, a, y);

figure;
plot(z);
title('Sound after filtering');

saveas(gcf, "plots/P2_10_d_out.png");
close;
sound(z, 8192); 

% 2.10(e) -------------------------------
hoa = conv(her, he);
nhoa = (nher(1)+nhe(1)):(nher(end)+nhe(end));

figure;
stem(nhoa, hoa);
title('h_{oa}[n]');
xlabel('n');

saveas(gcf, "plots/P2_10_e_out.png");
close;
 No newline at end of file

LAB2/P2_10_f.asv

0 → 100644
+69 −0
Original line number Diff line number Diff line
% Problem 2.10(f)

load inputs/lineup.mat

% For y1 ----------------------------------------
ryy1 = conv(y, flip(y));
nryy1 = -(length(y)-1):(length(y)-1);

figure;
plot(nryy1, ryy1);
title('y[n]*y[-n]');
saveas(gcf, "plots/P2_10_f_out1_1.png");
close;
%! Here N is equal to the distance of tow peak.

% N: 1000
% Peak 1: 9967
% Peak 2: 3957
% alpha: 0.4938

N = 1000;
alpha = 0.5;
yo1 = filter([1 zeros(1, N) alpha], 1, y);
sound(yo1, 8192); 

% For y2 ----------------------------------------
ryy2 = conv(y2, flip(y2));
nryy2 = -(length(y2)-1):(length(y2)-1);

figure;
plot(nryy2, ryy2);
title('y_2[n]*y_2[-n]');
saveas(gcf, "plots/P2_10_f_out1_2.png");
close;

% N: 501
% Peak 1: 13160
% Peak 2: 6938
% alpha: 

N = 500;
alpha = 0.5;
yo2 = filter([1 zeros(1, N) alpha], 1, y);
sound(yo2, 8192);

% For y3 ----------------------------------------
ryy3 = conv(y3, flip(y3));
nryy3 = -(length(y3)-1):(length(y3)-1);

figure;
plot(nryy3, ryy3);
title('y_3[n]*y_3[-n]');
saveas(gcf, "plots/P2_10_f_out1_3.png");
close;

% N1: 751
% alpha1: 0.4
% N2: 2252
% alpha2: 0.28
% Peak 1: 14010
% Peak 2: 4884
% Peak 3: 3597

N = 750;
N1 = 2250;
alpha = 0.5;
alpha1 = 0.28;
yo3 = filter([1 zeros(1, N) alpha zeros(1, N1-N-1) alpha1], 1, y);
% sound(yo3, 8192);
 No newline at end of file

LAB2/P2_10_f.m

0 → 100644
+70 −0
Original line number Diff line number Diff line
% Problem 2.10(f)

load inputs/lineup.mat

% For y1 ----------------------------------------
ryy1 = conv(y, flip(y));
nryy1 = -(length(y)-1):(length(y)-1);

figure;
plot(nryy1, ryy1);
title('y[n]*y[-n]');
saveas(gcf, "plots/P2_10_f_out1_1.png");
close;
%! Here N is equal to the distance of tow peak.

% N: 1000
% Peak 1: 9967
% Peak 2: 3957
% alpha: 0.4938

N = 1000;
alpha = 0.5;
yo1 = filter(1, [1 zeros(1, N-1) alpha], y);
% sound(yo1, 8192); 

% For y2 ----------------------------------------
ryy2 = conv(y2, flip(y2));
nryy2 = -(length(y2)-1):(length(y2)-1);

figure;
plot(nryy2, ryy2);
title('y_2[n]*y_2[-n]');
saveas(gcf, "plots/P2_10_f_out1_2.png");
close;

% N: 501
% Peak 1: 13160
% Peak 2: 6938
% alpha: 0.1 Too small, the peak is fake !!!!!

N = 500;
alpha = 0.1;
yo2 = filter(1, [1 zeros(1, N-1) alpha], y);
% sound(yo2, 8192);

% For y3 ----------------------------------------
ryy3 = conv(y3, flip(y3));
nryy3 = -(length(y3)-1):(length(y3)-1);

figure;
plot(nryy3, ryy3);
title('y_3[n]*y_3[-n]');
saveas(gcf, "plots/P2_10_f_out1_3.png");
close;

% N1: 751
% alpha1: 0.4
% N2: 2252
% alpha2: 0.28
% Peak 1: 14010
% Peak 2: 4884
% Peak 3: 3597

N = 751;
N1 = 2252;
alpha = 0.5;
alpha1 = 0.28;
b = [1 zeros(1, N-1) alpha zeros(1, N1-1)] + [1 zeros(1, N1-1) alpha1 zeros(1, N-1)];
yo3 = filter(1, b, y);
sound(yo3, 8192);
 No newline at end of file
+15.2 KiB
Loading image diff...
+10.1 KiB
Loading image diff...
Loading