You are on page 1of 39

DSP – REPORT

Name : Lê Văn Trình – 11DT1
Hoàng Ngọc Luân – 11DT3
Nguyễn Phúc Thiện – 11DT3
Nhóm: 39A

LAB1A: Introduction to MATLAB and Scripts
Exercise 1:
diary 'TrinhLuanThien_Lab1.txt'
%INSERT your name and section into these display commands
disp('NAME: Trinh Luan Thien')
disp('SECTION: 39A')
datestr(cputime)
%dampedCosine.m produces a plot of a cosine with frequency 1 Hz, with
amplitude
% scaled by a decaying exponential
figure
x = -5:0.01:5;
y1=exp(-abs(x)).*cos(pi*x);
subplot(2,1,1);
plot(x,y1);
xlabel('time');
ylabel('amplitude');
title('f(x)=exp(-|x|)cos(pi*x)');
subplot(2,1,2);
y2=exp(-abs(x)).*cos(pi*x/2);
plot(x,y2);
xlabel('time');
ylabel('amplitude');
title('f(x)=exp(-|x|)cos(2*pi*x)');
diary off

TrinhLuanThien_dampedCosin figure
ω= 2π/T => T = 2π/ω
Chu kì tín hiệu thứ nhất: T1= 2π/π=2s
Chu kì tín hiệu thứ hai: T2=2π/(π/2) = 4 s
Exercise 2:
function compexp(f,d)
%compexp.m produces a 3D plot of a decaying complex exponential,
% with subplots of magnitude and phase and of real and imaginary
% components below it.
figure
t = 0:0.01:5;
y=3*exp(-(d*0.25+j*(f*2*pi))*t);
subplot(3,1,1);
plot3(t,real(y),imag(y));
grid
xlabel('t'),ylabel('Re(y)'),zlabel('Im(y)');
title('3-D plot of a Complex Exponential');
%produce magnitude and phase plots; t vs |y(t)| and t vs. <y(t).
subplot(3,2,3),plot(t,abs(y)),xlabel('t'),
ylabel('Magnitude'),title('Magnitude - |y(t)|');
subplot(3,2,4),plot(t,angle(y)),xlabel('t'),
ylabel('Angle'),title('Phase - Arg(y(t))');
%produce real and imag plots; t vs |y(t)| and t vs. <y(t).
subplot(3,2,5),plot(t,real(y)),xlabel('t'),
ylabel('Magnitude'),title('Re(y(t))');
subplot(3,2,6),plot(t,imag(y)),xlabel('t'),
ylabel('Angle'),title('Im(y(t))');

Làm cho tần số dao động giảm một nửa: compexp(f,d)

2): Tăng tốc độ phân rã bằng cách tăng thông số d: compexp(4.2): Giảm thông số f đi một nửa: compexp(1.2): .compexp(2.

compexp(4. level) % .4) : LAB1B: Functions in MATLAB and the Groove Station: Exercise 1 Fader function [ y ] = fade(x.

subplot(2. Exercise 2 Repeater function [ out ] = repeat(in. xlabel('original signal'). % multiply the audio vector with the ramp vector to fade y = (1 . N. yes) % yes =1 : insert silence between the repetition . end Demonstration: t=0:0.* pi .1.0.% fade(x): this function fades the audio vector x.01:1 y = cos(t . end t = linspace(0. fade(y.*(t)) . subplot(2.2). % % Example: % y = fade(x).8)).y).* x. %y = level * y. length(x)). plot(t.8').* 25). % create the ramp vector if level > 1 error('MATLAB: fade: Level must be lower than 1. xlabel('signal after using fade function with level 0.1. 1.'). plot(t.level.1).

x=[1 4 2 2 3] . .0).1.1).1. else if yes == 1 out=[out 0 out1].2. xlabel('signal after repeating 2 times').for i=0 : 1: N out1 = [in] .% don't insert the silence between the repetition b= 0:1: length(y)-1. end end Demonstration: x=[1 4 2 2 3] . a=0:1:4. subplot(2. y=repeat(x. plot(b. else out=[out out1]. end if i==0 out = [out1]. %y =[ 5 8 3 9 0]. plot(a. %x=[x y] a=0:1:4.1).1.2).x). xlabel('original signal'). subplot(2.y). subplot(2.

plot(b. y=repeat(x.1).% insert the silence between the repetition b= 0:1: length(y)-1. subplot(2. Exercise 3: Delay (Shift) function [ output ] = delay( signal.1.y). end Demonstration: subplot(2. subplot(2. plot(y).2). xlabel('signal after repeating 2 times').* fs r = zeros(1. xlabel('delayed bassdrum') . fs ) numberofzeros = delaytime .8000).1. output = [r signal]. delaytime.1.numberofzeros). plot(bassdrum'). 1/8. xlabel('bassdrum') y= delay(bassdrum'.x). xlabel('original signal').plot(a.2.2).1).

.

x2 ) n1 = length(x1). subplot(3. subplot(3. xlabel('bassdrum sound'). zero]. n2). plot(a). else b = [x1. n2 = length(x2).2).diff).1. plot(bassdrum).1). if (maxi == n1) a = [x2. zero]. output = x1 + a. end Demonstration: a=mixer(bleep. mini = min(n2.mini. plot(bleep). end m = max(output). zero = zeros(1.1.3). output = output/m. xlabel('mixed sounds'). .1.Exercise 4 Mixer function [ output ] = mixer( x1. n1). xlabel('bleep sound'). maxi= max(n1. output = x2 + b. subplot(3.bassdrum). diff = maxi .

f= [x1 x2].wav').20. 'new. sound(f).Exercise 5: Make Your Groove My groove: x1=repeat(bassdrum'. wavwrite(f. plot(f).0).0).20. x2=repeat(bleep'. .

plot(ed1(200:400)). 512). Ymag(1:257)). % get a meaningful axis plot(f.wav') % looks very periodic Dạng sóng của âm thanh trumpet ở 5 chu kỳ Phổ tín hiệu trumpet: Y = fft(ed1. % take the fft of trumpet Ymag = abs(Y). % take the mag of Y f = Fs * (0:256)/512.mat Fs=11025.Fs) figure.Fs. axis tight wavwrite(ed1. % plot Ymag (only half the points are needed) xlabel('Frequency (Hz)') ylabel('Magnitude') axis tight .'trumpet.LAB2A Exercise 1: Synthesizer load trumpet. sound(ed1.

65.wav'). 28. end sigsynth=0.999*sigsynth/max(abs(sigsynth)).69).59 38. 37. k=addcosines(time. sound(k).Đọc được 10 giá trị đỉnh cảu phổ tần số tín hiệu trumpet: (freq .99 28.(1593 .8). end Demonstration: time=3. wavwrite(sigsynth. 15.4 538. mag=[11.21].(538.75).21)} function [out]= addcosines(time. (1852 . out = sigsynth.3 796. 52.31 11.(1055 .31). mag)={(258.Fs) % Ham addcosines tao tin hieu am thanh sigsynth1.59). 52. (1335 .Fs).8 37.3 .7 1055 1335 1593 1852 2132 2390 2649 ].75 65.11 52.Fs. 38. 11.(2132 .wav t=0:1/Fs:time.(796. 11.7 .(2390 . sigsynth=zeros(1. .11 65. freq=[258.11).length(t)). Fs=11025. for i=1:length(freq) sigsynth = sigsynth + mag(i)*cos(2*pi*freq(i)*t).72).99).24).69 15.4 .'sigsynth1.72 15.(2649 . 15.

1.8 65. freq=[390.length(t)). xlabel('Tin hieu trumpet') axis tight subplot(2. end .1. plot(k(200:400)). mag=[37.2).3].11].1).subplot(2. xlabel('Tin hieu tong hop k') axis tight Exercise 2: Script phasefun: Fs=8000. for i=1:length(freq) sig1 = sig1 + mag(i)*cos(2*pi*freq(i)*t). t=0:1/Fs:3.6 578. plot(ed1(200:400)). sig1=zeros(1.

% Tao tin hieu sig2 delay 1/2 chu ky cua sig1 Fs=8000.1). subplot(3. axis tight. grid on Khi ta delay tín hiệu sig2 một khoảng thời gian bằng 1/2 chu kỳ tín hiếu sig1 thì sig2 trễ pha hơn so với sig1 1 góc 180 độ. axis tight. grid on subplot(2. xlabel('Tin hieu sig3delay').% tao tin hieu sig4 bang cach cong sig3 va sig3delay figure. plot(sig3delay(1:200)). axis tight. figure.% tao tin hieu sig3 zero2=zeros(1. axis tight.1. plot(sig4(1:200)). zero1=zeros(1. plot(sig3(1:200)).999*sig1/max(abs(sig1)).2).wav').1.21).3). plot(sig1(1:200)). xlabel('Tin hieu sig4').sig1=0. xlabel('Tin hieu sig2'). subplot(2.1. wavwrite(Fs. plot(sig2(1:200)). xlabel('Tin hieu sig1'). sig2=[zero1 sig1]. axis tight.2).1.10). grid on subplot(3.1). xlabel('Tin hieu sig3'). grid on sig3=sig1. sig3delay=[zero2 sig3]. . grid on subplot(3.'sig1.1.% tao tin hieu delay cua tin hieu sig3 sig4=[sig3 zero2]+ sig3delay.

2) == 0) fct(m)=1.*(cos(2*k(m)*pi/3)-cos(k(m)*pi/3)).(âm thanh sig2 nghe trễ hơn). mag=abs(fct). fct=Ck(k)./(j*k(m)*pi). for m=1:length(k) if ~(mod(k(m). Exercise 3: Vẽ đồ thị biên độ. end end return.Khi ta dùng lệnh soundsc(sig1) và soundsc(sig2) thì ta thấy tín hiệu 2 bị trễ 1 khoảng thời gian bằng 1/2 chu kỳ tín hiệu. . Khi dùng lệnh soundsc(sig3) và soundsc(sig4) thì ta thấy 2 tín hiệu nghe như nhau. Demonstration: k=-10:10. pha của Ck function fct=Ck(k) fct = zeros(size(k)).

Coeff.1. Trong hàm này có sử dụng hàm Ck đã được định nghĩa ở trên function [sigsynth]=gibbs(kmax) . subplot(2.2).pha=angle(fct). xlabel('k').1). stem(k. subplot(2.grid on.grid on.mag).tif Hàm gibbs: Hàm gibbs thực hiện tính : Với w0=1.1. xlabel('k').pha). stem(k.

title('kmax=5').t=-5:0. end Demonstration: a=gibbs(5). Thực hiện tương tự với lần lượt kmax bằng 15 và 30 sau đó vẽ đồ thị của tính hiệu sigsynth ta được kết quả: FourTrunc.tif LAB 2B .1). k=[-kmax:kmax]. pha=angle(fct).1:5. plot(t. for i=kmax+1:length(k) sigsynth = sigsynth + 2*mag(i)*cos((i-kmax)*t+pha(i)). t=-5:0.a).length(t)). sublot(3.1:5.1. sigsynth=zeros(1. fct=Ck(k). mag=abs(fct).

% Loc tin hieu X figure. figure. %dap ung bo loc thong thap figure. plot(w*Fs/N.abs(Y)).% Dich tan thap ve trung tam figure. title(' Pho cua tin hieu sau khi loc thong thap'). H = a .abs(H)). w = [-N/2+1:(N/2)]. Hshift = fftshift(H).abs(Hshift)). a = 500*2*pi. X = fft(x). plot(w*Fs/N. y = real(ifft(Y)).abs((X))).m x=wavread('castanets44m.* Hshift'.wav'). Fs) % original sound sound(y. Fs) % low-pass-filtered sound Result: . Fs=8000./ (a + i*w).title(' Pho cua tin hieu khi chua loc'). N = length(X).title(' Pho cua bo loc thong thap khi dich tan so').Low-pass Filtering Exercise 1: Thiết kế bộ lọc thông thấp với tần số cắt a=500*2*pi.% Bien doi fourier nguoc sound(x. plot(w*Fs/N. plot(w*Fs/N. Y = X . Script ex1.title(' Pho cua bo loc thong thap khi chua dich tan so').

.

2)./ (a + 0. a = 20*2*pi. H = a .1.% Dich tan thap ve trung tam Y = X . Fs=8000. để tạo tín hiệu x(t). x). 99) 1]. %Dap ung bo loc thong thap Hshift = fftshift(H).* Hshift.1. Exercise 2: Sử dụng hàm: x = repmat([zeros(1. % Loc tin hieu X y = real(ifft(Y)). ylabel('Bien do'). 1. X = fft(x). 1.m x = repmat([zeros(1. 5). xlabel('Tan so').% Bien doi fourier nguoc subplot(2. 5). 99) 1]. N = length(X). w = [-N/2+1:(N/2)]. Sau đó lọc tín hiệu trên bằng bộ lọc thông thấp với tần số a=20 Script ex2.5*i*w). . subplot(2.1). plot(w*Fs/N. title('x(t)').Nhận xét: tín hiệu âm thanh y( tín hiệu đã được lọc thông thấp) nghe nhỏ hơn so với tín hiệu x.

Fs=8000.plot(w*Fs/N. Y = X . plot(w*Fs/N. plot(w*Fs/N. a = 2000*2*pi.m: x=wavread('castanets44m. xlabel('Tan so'). N = length(X)./ (a + i*w). Hshift = fftshift(H). % Loc tin hieu X . X = fft(x). figure. title('y(t)'). %dap ung bo loc thong thap figure.a .title(' Pho cua bo loc thong cao khi dich tan so').* Hshift'. High-pass Filtering: Exercise 3: Thiết kế bộ lọc thông cao với tần số cắt a=2000*2*pi Script ex3.y). ylabel('Bien do').wav'). plot(w*Fs/N. w = [-N/2+1:(N/2)].abs((X))).abs(Hshift)).abs(H)).title(' Pho cua tin hieu khi chua loc').title(' Pho cua bo loc thong cao khi chua dich tan so').% Dich tan thap ve trung tam figure. H = 1.

Fs) % low-pass-filtered sound . Fs) % original sound sound(y.abs(Y)).figure. plot(w*Fs/N.% Bien doi fourier nguoc sound(x. title(' Pho cua tin hieu sau khi loc thong cao'). y = real(ifft(Y)).

wav Ta vẽ phổ của tín hiệu bassdrum trong miền tần số: x=wavread('bassdrum.Exercise 4: Lọc tín hiệu bassdrum. plot(w*Fs/N.wav').wav ra khỏi tín hiệu mixed. N = length(x). Fs=8000. w = [-N/2+1 : N/2]. X=fft(x). figure.abs(X)) Phổ của tín hiệu bassdrum .

% Uncentered H figure./ (a + i*w). N = length(x). a = 2*200*pi.b . X=fft(x). % Filter . tần số cắt của bộ lọc thông cao là b=20. H1 = a . Tách tín hiệu bassdrum: x=wavread('mixed'). plot(w*Fs/N.abs(Y)) % uncentered version of Y y = real(ifft(Y)).Dựa vào phổ của tín hiệu bassdrum ta chọn khoảng tần số mà biên độ tín hiệu bassdrum cao nhất rồi thiết kế bộ lọc thông dải để lọc. Fs=8000. plot(w*Fs/N.^10 ) . Đáp ứng bộ lọc thông dải .abs(Hshift)) Y = X. Đáp ứng tần số của bộ lọc thông dải là H=H1. Ta chọn tần số cắt của bộ lọc thông thấp là a=200.^ 10 ) .* Hshift'./ (b + i*w). Uncentered Y figure. H2 là đáp ứng tần số của bộ lọc thông cao. % Low -pass: cutoff = 200 b = 2*20*pi. % centered H Hshift = fftshift(H). H = (H1 .*H2 với H1 là đáp ứng tần số của bộ lọc thông thấp. % High-pass: cutoff = 20 w = [-N/2+1 : N/2]. H2 = 1 .* ( H2 .

Tín hiệu bassdrum sau khi được lọc ra khỏi mixed .

3). imshow(result3).1) imshow(y). subplot(2. result3=mat2gray(255-sqrt(M1. h2=[1 2 1.'jpeg').h2) subplot(2. x=imread('dailyshow'. y=rgb2gray(x).2. result1=mat2gray(255-abs(M1)). result2=mat2gray(255-abs(M2)).2. . imshow(result1). subplot(2. subplot(2.0 0 0.2). h1=[-1 0 1.-2 0 2. imshow(result2).4). imshow(x).h1) M2=conv2(y.-1 -2 -1].Lab 2: Introduction to Image Processing Exercise 1: Edge Detection clc. M1=conv2(y.2.^2)). close all. sizex=size(x) sizey=size(y).^2+M2.-1 0 1].2.

x=rgb2gray(x).Exercise 2: Scaling clc.round(temp(2)/s)). . subplot(2. hàm: function [ y ] = EX2A(s) x=imread('a'. temp=size(x). imshow(y1). y2=flipud(y). y=rgb2gray(x). y=zeros(round(temp(1)/s). for i=1:s:temp(1) for j=1:s:temp(2) tempvalue=0.1).2). close all. end end y=mat2gray(y). figure. close all. figure. imshow(y).'jpeg'). % ex2 y1=EX2A(s). x=imread('a'. imshow(x).2.j+v)/(s^2).'jpeg'). subplot(2.ceil(j/s))=tempvalue. y1=fliplr(y). s=6. y3=flipud(y1).'jpeg'). end end end y(ceil(i/s). end Exercise 3: Image Flipping clc. x=imread('DailyShow'. for u=0:1:(s-1) for v=0:1:(s-1) if (i+u)<=temp(1)&&j+v<=temp(2) tempvalue = tempvalue + x(i+u.2.

for i=1:1:temp2(1) for j=1:1:temp2(2) if mod(i.temp1(2)*2-1).j)=x(ceil(i/2).2)~=0 y(i.'jpeg').3). temp2=size(y). else if mod(i. temp1=size(x). subplot(2. y=zeros(temp1(1)*2-1.2)~=0 && mod(j. subplot(2.imshow(y1). x=rgb2gray(x). imshow(y3).2.ceil(j/2)).4). figure. result: Exercise 4: Image Expanding y2=EX4().2)~=0&&mod(j.2. imshow(y2) Hàm: function [y] = EX4() x=imread('DailyShow'.2)==0 . imshow(y2).

25*(y(i+1.j+1)+y(i-1.j-1)+y(i- 1.2)~=0 y(i.5*(y(i.j)=0.j)).j-1)).j)+y(i-1.j+1)+y(i.j)=0.j-1)+y(i+1. result: end .j+1)).5*(y(i+1. end end end end y=mat2gray(y).y(i. else if mod(i.2)==0 && mod(j.j)=0. else y(i.

2).9)nu(n). stem(h1(1:100)). un=(n>=0).1. stem(y(1:100)).3). subplot(3. grid subplot(3.1. xlabel('h1(n)').h1). un=(n>=0). n=0:1:100.LAB 3: Assignment 1: a/ x(n) = u(n-30) – u(n-50) and h1(n) = u(n-10) – u(n-20). xlabel('y(n)'). h1=(n-10>=0)-(n-20>=0). xlabel('x(n)').1. stem(xn(1:100)). n=0:1:100.1). y=conv(xn. . grid subplot(3. xn=(n-30>=0)-(n-50>=0). grid b/ x(n) = u(n-30) – u(n-50) and h2(n) = (0. xn=(n-30>=0)-(n-50>=0).

2).1. un=(n>=0). stem(h2(1:100)).1).9).h2).1. grid c/ x(n) = u(n-30) – u(n-50) and h3(n) = δ(n) – δ(n-1).1. xlabel('h2(n)').h3).1).*un. xlabel('y(n)').^n). stem(xn(1:100)).3). grid subplot(3.1. stem(xn(1:100)). stem(y(1:100)).h2=((0. grid subplot(3. y=conv(xn. xlabel('x(n)'). subplot(3. xlabel('y(n)'). stem(h2(1:100)). grid subplot(3. grid subplot(3. xlabel('h2(n)').1. y=conv(xn.3). subplot(3. stem(y(1:100)). grid . xn=(n-30>=0)-(n-50>=0). n=0:1:100. xlabel('x(n)').2).1. h3=(n==0)-(n-1==0).

Assignment 2: x=[1 2 3 4] và h=[3 2 1] a. Biểu diễn x(n) thành vector 4x1 và y(n) thành vector 6x1. Xác định y(n) = x(n)*h(n): >> y=conv(x.h) y = 3 8 14 20 11 4 b. Xác định ma trận H (6x4) mà y = Hx x = 1 2 .

x) % y = output sequence in column vector form % H = Toeplitz matrix corresponding to sequence h so that y = Hx % h = Impulse response sequence in column vector form % x = input sequence in column vector form % Nx = length(x).H]=conv_tp(h. e. y = H*x. hr = [h(1). H = toeplitz(hc.H] = conv_tp(h. hc = [h. zeros(Nx-1. Nh = length(h).3 4 y = 3 8 14 20 11 4 H = 3 0 0 0 2 3 0 0 1 2 3 0 0 1 2 3 0 0 1 2 0 0 0 1 c.x) % Linear Convolution using Toeplitz Matrix % ---------------------------------------% [y.hr). Phát triển hàm Matlab để thực hiện phép nhân chập tuyến tính: function [y.zeros(1.Nx-1)]. Ma trận H có đường chéo là các số giống nhau. end Exercise 3 X (z): . 1)]. d. Cột đầu tiên chứa vector h[n] và hàng đầu tiên chứa phần tử đầu tiên của h[n].

75 z 2  0.8722i 0.433i).25  0.25 – 0.2379i .0.433i).5 z 2  0.433i) n 1 u (n  1) + (0. (0.25  0.25  0. 433i).2379i 1.a.25+0.433i) n 1 u (n  1)  (1.0132  0.125 z y (n): First.0132  0.25 2.2379i)(0.25  0.0204(0.467  0.0204      z2 z  (0.0132  0.433i ) n 1 u (n  1) + (0.0059 1.8722i )(0.2379i)(0.125 0].25  0. >> q = [3 -10 11. >> [r.25  0.25 -8 3.8722i 0.433i ) z  0.25 z 5  8 z 4  3.0625 z 5 1  z 1  0.0.8722i 0.059 1.8722i)(0.5 -0. it is quite easy to get Y (z) into fraction expansion 0.k] = residue (p .3333.2379i 2.X (z) = 0.467  0.3125 z Y (z) = 7 3 z  10 z 6  11.25  0.433i ) z  (0. q) r= -0.4375 -0.4670 + 0.2379i 1.25 z 3  0.0625 z 4 H (z) = z z  z  1/ 3 z  2 H (z): Y (z): 1.433i) z  (0.3333) n u (n  1) Y (z) by using Matlab % get Y (z) into fraction expansion by using residues >> p = [-1.25  0.4670 . and 0. we some calculator softwares to get the roots of the denominator: => The roots are 2.433i) z  (0.9375 0.0132 + 0.0132 .8722i 0.25 z 3  0. (0.4375 z 3  0. (0.5 z 4  0. we can get y (n) = 0. Now.25+0.25 – 0.467  0.3125 0].3333 Now.25 z 3  2. (0.433i) n 1 u ( n  1) 2.059(2) n 1 u ( n  2)  (1.0132  0.467  0.9375 z 2  0. 433i).

2500 + 0.*cos(pi*(n-2)/3).*((1/2). Assignment 4: .0204 0 a= 2.3333 0 k= [] Do the convolution of x (n) and h(n) using Matlab n = 0:1:100.0.*(n-2>=0).*(-n-1>=0).4330i 0.4330i 0. y = conv(j.^n.4330i 0.2500 .*(n>=0)+(2).-2. stem (y). k = (1/3). j = (n-2).0000 0.^n.2500 + 0.k).^(n-2)).4330i 0.0.2500 .

1). h1=(n-10>=0)-(n-20>=0).1. n=0:1:100. xlabel('h2(n)'). stem(y(1:100)). X = fft(xn). X = fft(xn). xlabel('y(n)'). xn=(n-30>=0)-(n-50>=0). stem(h2(1:100)).1. xlabel('x(n)').^n). un=(n>=0). xlabel('h1(n)'). h2=((0. Y = H1. stem(xn(1:100)).3). subplot(3.3).1. H2 = fft(h). grid subplot(3.9)nu(n). xlabel('y(n)').1.2).2). stem(h1(1:100)). y= ifft(Y).1.*un. xlabel('x(n)').1.1). n=0:1:100. un=(n>=0). grid subplot(3. grid . y= ifft(Y). grid subplot(3. grid b/ x(n) = u(n-30) – u(n-50) and h2(n) = (0. subplot(3.*X. Y = H2.a/ x(n) = u(n-30) – u(n-50) and h1(n) = u(n-10) – u(n-20). stem(y(1:100)). stem(xn(1:100)).*X. xn=(n-30>=0)-(n-50>=0). H1 = fft(h1).9). grid subplot(3.

1. stem(xn(1:100)). n=0:1:100. xlabel('y(n)'). xlabel('h3(n)'). grid subplot(3. xn=(n-30>=0)-(n-50>=0).1. subplot(3.2).h3 ). grid subplot(3. stem(h3(1:100)).1. h3=(n==0)-(n-1==0). xlabel('x(n)'). grid . stem(y(1:100)). y= ifft(xn.3). un=(n>=0).1).c/ x(n) = u(n-30) – u(n-50) and h3(n) = δ(n) – δ(n-1).

.- Nhận xét: Kết quả của Assignment 1 và Assignment 4 giống nhau.