You are on page 1of 25

Họ và tên: Trần Thị Huệ Sương - B 1812234

Họ và tên: Nguyễn Việt Hưng – B1812207


Họ và tên: Trương Chí Khôi - B1812211

BÀI 4. MÔ PHỎNG CÁC TÍN HIỆU


CƠ BẢN BẰNG MATLAB

Câu 1:
Câu 1. Chương trình sau đây mô phỏng hàm bước nhảy đơn vị u(t).
clear; % xóa tất cả các biến trong bộ nhớ Matlab

clf; % xóa đồ thị hiện tại

t=-10:0.001:10; % tạo vector thời gian

u=heaviside(t); %tạo hàm bưlớc nhảy đơn vị

plot(t,u); % vẽ hàm bước nhảy đơn vị

title('Ham buoc nhay don vi u(t)'); % tên tiêu đề của đồ thị

xlabel('Thoi gian lien tuc t'); % chú thích dưới trục x

ylabel('Bien do'); % chú thích dưới trục y

axis([-10 10 0 1.2]); % chia lại trục tọa độ

grid on; % thêm lưới cho đồ thị

xlabel('Thoi gian lien tuc t'); % chú thích dưới trục x

ylabel('Bien do'); % chú thích dưới trục y

axis([-10 10 0 1.2]); % chia lại trục tọa độ

grid on; % thêm lưới cho đồ thị

**Yêu cầu
a. Hãy gõ lại chương trình này trong file soạn thảo của Matlab và lưu lại với tên
step.m
b. Hãy ghi lời chú thích vào sau các dấu % của một số dòng lệnh (một số dòng đã
được làm mẫu).

clear; % xóa tất cả các biến trong bộ nhớ Matlab

clf; % xóa đồ thị hiện tại

t=-10:0.001:10; % tạo vector thời gian

u=heaviside(t); %tạo hàm bước nhảy đơn vị

plot(t,u); % vẽ hàm bước nhảy đơn vị

title('Ham buoc nhay don vi u(t)'); % tên tiêu đề của đồ thị

xlabel('Thoi gian lien tuc t'); % chú thích dưới trục x

ylabel('Bien do'); % chú thích dưới trục y

axis([-10 10 0 1.2]); % chia lại trục tọa độ

grid on; % thêm lưới cho đồ thị

c. Vẽ lại đồ thị của hàm này lên hình 4.1.


Ham buoc nhay don vi u(t)
1.2

0.8
Bien do

0.6

0.4

0.2

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t
Dịch về dương ( phải ) là u=heaviside(t-2); // hàm ( t – x)
Dịch về âm ( trái ) là u=heaviside(t+2); // hàm ( t + x)
d. Hãy sửa lại chương trình Matlab mô phỏng hàm bước nhảy đơn vị u(t) để thực hiện
các yêu cầu sau đây:
- Mô phỏng hàm bước nhảy đơn vị khi dịch chuyển về phía trái 3 đơn vị.
clear; % xóa t?t c? các bi?n trong b? nh? Matlab
clf;
t=-10:0.001:10;
u=heaviside(t+3);
plot(t,u);
title('Ham buoc nhay don vi u(t)'); % tên tiêu ?? c?a ?? th?
xlabel('Thoi gian lien tuc t');
ylabel('Bien do'); %
axis([-10 10 0 1.2]); %
grid on;

Ham buoc nhay don vi u(t)


1.2

0.8
Bien do

0.6

0.4

0.2

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t
- Mô phỏng hàm bước nhảy đơn vị u(t – t0), u(t + t0) với t0 được nhập từ bàn phím.
clear; % xóa t?t c? các bi?n trong b? nh? Matlab
clf;
t0=input('Nhap vao gia tri t0=');
t=-10:0.001:10;
u=heaviside(t+t0);
plot(t,u);
title('Ham buoc nhay don vi u(t)'); % tên tiêu ?? c?a ?? th?
xlabel('Thoi gian lien tuc t');
ylabel('Bien do'); %
axis([-10 10 0 1.2]); %
grid on;

Nhập từ bàn phím t0= 5


Ham buoc nhay don vi u(t)
1.2

0.8
Bien do

0.6

0.4

0.2

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t
clear; % xóa t?t c? các bi?n trong b? nh? Matlab
clf;
t0=input('Nhap vaoo gia tri t0=');
t=-10:0.001:10;
u=heaviside(t-t0);
plot(t,u);
title('Ham buoc nhay don vi u(t)'); % tên tiêu ?? c?a ?? th?
xlabel('Thoi gian lien tuc t');
ylabel('Bien do'); %
axis([-10 10 0 1.2]); %
grid on;

Ham buoc nhay don vi u(t)


1.2

0.8
Bien do

0.6

0.4

0.2

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

Câu 2. Cho đoạn lệnh sau đây:

>> syms t

**Yêu cầu >> u=heaviside(t);

>> int(u,t)
a. Hãy gõ đoạn lệnh trên vào cửa sổ Command Window và ghi lại kết quả.
Kết quả:
>> syms t
>> u=heaviside(t);
>> int(u,t)

Kết quả:
(t*(sign(t) + 1))/2
b. Viết chương trình Matlab mô phỏng hàm dốc đơn vị r(t) với tỉ lệ thời gian như hình
4.2 và vẽ lại đồ thị của hàm này lên hình 4.2.

clear;
t=-10:0.001:10;
r=t.*heaviside(t);
plot(t,r);
title('Ham doc don vi r(t)');
xlabel('Thoi gian lien tuc t');
ylabel('Bien do');
grid on;
Ham doc don vi r(t)
10

6
Bien do

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

c. Hãy sửa lại chương trình Matlab mô phỏng hàm dốc đơn vị r(t) để thực hiện các yêu
cầu sau đây:
- Thay đổi màu đồ thị thành màu đỏ và đường vẽ là đường chấm chấm.
clear;
t=-10:0.001:10;
t0=input('Nhap vao gia tri t0=');
r=(t+t0).*heaviside(t+t0);
plot(t,r,'r:');
title('Ham doc don vi r(t)');
xlabel('Thoi gian lien tuc t');
ylabel('Bien do');
grid on;
Ham doc don vi r(t)
15

10
Bien do

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

- Mô phỏng hàm dốc đơn vị r(t – t0), r(t + t0) với t0 được nhập từ bàn phím.

clear;
t=-10:0.001:10;
t0=input('Nhap vao gia tri t0=');
r=(t-t0).*heaviside(t-t0);
plot(t,r);
title('Ham doc don vi r(t)');
xlabel('Thoi gian lien tuc t');
ylabel('Bien do');
grid on;

Nhập từ bàn phím t=5


Ham doc don vi r(t)
5

4.5

3.5

3
Bien do

2.5

1.5

0.5

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

clear;
t=-10:0.001:10;
t0=input('Nhap vao gia tri t0=');
r=(t+t0).*heaviside(t+t0);
plot(t,r);
title('Ham doc don vi r(t)');
xlabel('Thoi gian lien tuc t');
ylabel('Bien do');
grid on;
Ham doc don vi r(t)
15

10
Bien do

0
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

Câu 3. Cho đoạn lệnh sau đây:

>> syms t

>> u=heaviside(t);

>> diff(u,t)

**Yêu cầu
a. Hãy gõ đoạn lệnh trên vào cửa sổ Command Window và ghi lại kết quả.

Kết quả: dirac(t)

b. Viết chương trình Matlab mô phỏng hàm phân bố Delta δ (t ) với tỉ lệ thời gian
như hình 4.3 và vẽ lại đồ thị của hàm này lên hình 4.3.
clear;
t=-10:0.1:10;
delta=dirac(t);
plot(t,delta);
title('Ham xung delta(t)');
xlabel('Thoi gian lien tuc t');
ylabel('bien do');
axis([-10 10 -1.2 1.2]);
grid on;

Ham xung delta(t)

0.5
bien do

-0.5

-1

-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

c. Hãy sửa lại chương trình Matlab mô phỏng hàm phân bố Delta δ (t ) để thực hiện
các yêu cầu sau đây:
- Độ rộng của đường thẳng vẽ đồ thị là 2 point
clear;

clf;

t=-10:0.1:10;

k=dirac(t);

plot(t,k,'LineWidth',2);

title('Ham phan bo Delta (t)') ;

xlabel('Thoi gian lien tuc t');

ylabel('bien do') ;

grid on;
Ham phan bo Delta (t)
1

0.8

0.6

0.4

0.2
bien do

-0.2

-0.4

-0.6

-0.8

-1
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc t

- Mô phỏng hàm phân bố Delta δ (t- t0) , δ (t+t0) với t0 được nhập từ bàn phím.

Hàm xung Delta δ (t- t0)


clear;

clf;

t0=input('Nhap vao gia tri t0=');

t=-10:0.1:10;

k=dirac(t-t0);

plot(t,k);

title('Ham phan bo Delta (t-t0)') ;

xlabel('Thoi gian lien tuc (t-t0)');

ylabel('bien do') ;

grid on;
nhập từ bàn phím t=5

Ham phan bo Delta (t-t0)


1

0.8

0.6

0.4

0.2
bien do

-0.2

-0.4

-0.6

-0.8

-1
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc (t-t0)

Hàm xung Delta δ (t+t0)


clear;

clf;

t0=input('Nhap vao gia tri t0=');

t=-10:0.1:10;

k=dirac(t+t0);

plot(t,k);

title('Ham phan bo Delta (t+t0)') ;

xlabel('Thoi gian lien tuc (t+t0)');

ylabel('bien do') ;

grid on;

nhập từ bàn phím t0=5


Ham phan bo Delta (t+t0)
1

0.8

0.6

0.4

0.2
bien do

-0.2

-0.4

-0.6

-0.8

-1
-10 -8 -6 -4 -2 0 2 4 6 8 10
Thoi gian lien tuc (t+t0)

Câu 4.

a. Viết chương trình Matlab mô phỏng tín hiệu xung vuông và xung tam giác cơ bản
trên cùng một đồ thị
clear;
clf;
t=-2:0.001:2;
x=1*rectpuls(t,1);// xung vuông
y=1*tripuls(t,2); // xung tam giác
subplot(2,1,1); //2 hang 1 cot vi tri 1
plot(t,x);
title('ham xung vuong co ban');
xlabel('Thoi gian lien tuc t');
ylabel('bien do');
subplot(2,1,2);
plot(t,y);
title('ham xung tam giac co ban');
xlabel('Thoi gian lien tuc t');
ylabel('bien do');
grid on;
b. Vẽ lại đồ thị của các xung này với tỉ lệ thời gian như hình 4.4

ham xung vuong co ban


1
bien do

0.5

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Thoi gian lien tuc t
ham xung tam giac co ban
1
bien do

0.5

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Thoi gian lien tuc t
c.

c. Hãy sửa lại chương trình Matlab trên để mô phỏng tín hiệu xung vuông và xung tam
giác cơ bản cùng dịch chuyển về phía trái 1 đơn vị.
clear;

clf;

t0=input('Nhap vao gia tri t0');

t=-2:0.001:2;

x=1*rectpuls((t-t0),1);// số 1 la khoảng cách của cái hình, 1*là chiều cao

y=1*tripuls((t-t0),2);// số 2 la khoảng cách của cái hình

subplot(2,1,1);

plot(t,x);

title('ham xung vuong co ban');

xlabel('Thoi gian lien tuc t');

ylabel('bien do');
subplot(2,1,2);

plot(t,y);

title('ham xung tam giac co ban');

xlabel('Thoi gian lien tuc t');

ylabel('bien do');

grid on;

nhập từ bàn phím t0=1

ham xung vuong co ban


1
bien do

0.5

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Thoi gian lien tuc t
ham xung tam giac co ban
1
bien do

0.5

0
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
Thoi gian lien tuc t

Câu 5.

a. Viết chương trình Matlab mô phỏng hàm Gausse với tỉ lệ thời gian như hình 4.5 và
vẽ lại đồ thị của hàm này lên hình 4.5.
clear;
clf;
t=-5:0.001:5;
x=gaussmf(t,[0.5 0]);
plot(t,x);
grid on;
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-5 -4 -3 -2 -1 0 1 2 3 4 5

b. Hãy sửa lại chương trình Matlab mô phỏng hàm Gausse để thực hiện các yêu cầu
sau đây:

- Mô phỏng hàm Gausse khi dịch chuyển về phía phải 3 đơn vị và độ rộng xung giảm
còn một nửa.
clear;

clf;

t=-5:0.001:5;

x=gaussmf(t,[0.25 3]);

plot(t,x);

grid on;
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-5 -4 -3 -2 -1 0 1 2 3 4 5

- Mô phỏng hàm Gausse dịch chuyển về phía phải 2 đơn vị và hàm Gausse dịch
chuyển về phía trái 3 đơn vị trên cùng một đồ thị.
clear;

clf;

t=(-5:0.001:5)';

x1=gaussmf(t,[0.5 2]);

x2=gaussmf(t,[0.5 -3]);

plot(t,[x1 x2]);

grid on;
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
-5 -4 -3 -2 -1 0 1 2 3 4 5

Câu 6.

a. Viết một chương trình Matlab để tạo ra tín hiệu điều hòa x(t) = Asin(w0t + φ) và vẽ
tín hiệu này bằng lệnh plot. Các thông số sau đây được nhập từ bàn phím: biên độ
(A), tần số góc (ω0), pha ban đầu (φ).
clear;
clf;
A=input('bien do =');
omega=input('omega = ');
if((omega<0)|(omega>pi)),error('omega khong hop le');
end;
pha=input('pha =');
if((pha<0)|(pha>2*pi)),error('pha khong hop le');
end;
t=-5:0.001:5;
x=A*sin(omega*t+pha);
plot(t,x);
grid on;
2

1.5

0.5

-0.5

-1

-1.5

-2
-5 -4 -3 -2 -1 0 1 2 3 4 5

Với điều kiện 0 ≤ ω0 ≤ π và 0 ≤ φ ≤ 2π


2

1.5

0.5

-0.5

-1

-1.5

-2
-5 -4 -3 -2 -1 0 1 2 3 4 5

Lưu ý: Nếu tần số góc và pha ban đầu nhập vào không thỏa mãn điều kiện thì chương
trình sẽ báo lỗi.

b. Hãy ghi lời chú thích vào sau các dấu % cho tất cả các dòng lệnh trong đoạn lệnh
trên.
clear; % xóa tất cả các biến trong bộ nhớ Matlab

clf; % xóa đồ thị hiện tại

A=input('bien do =');%nhap so lieu bien do tu ban phim

omega=input('omega = '); );%nhap so lieu omega tu ban phim

if((omega<0)|(omega>pi)),error('omega khong hop le');

end;

pha=input('pha ='); %nhap so lieu pha tu ban phim

if((pha<0)|(pha>2*pi)),error('pha khong hop le');

end;

t=-5:0.001:5; % tạo vector thời gian

x=A*sin(omega*t+pha);

plot(t,x);
grid on;

c. Vẽ lại đồ thị của tín hiệu này lên hình 4.6 với A = 1, ω0 = π và φ = 0

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-5 -4 -3 -2 -1 0 1 2 3 4 5

Câu 7.

a. Viết một chương trình Matlab dùng các hàm square và sawtooth để tạo ra các dãy
xung vuông, dãy xung răng cưa. Các thông số sau đây có thể thay đổi bởi người
lập trình: tần số (f), biên độ (A).
clear;
clf;
f=input('tan so = ');
A=input('bein do =');
t=-0.05:0.0001:0.05;
x=A*square(2*pi*f*t);
y=A*sawtooth(2*pi*f*t);
subplot(2,1,1);
plot(t,x);
subplot(2,1,2);
plot(t,y);
grid on;
2

-1

-2
-0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05

-1

-2
-0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05

b. Hãy ghi lời chú thích vào sau các dấu % cho tất cả các dòng lệnh trong đoạn lệnh
trên.

c. Vẽ lại đồ thị của các dãy xung này lên hình 4.7 với f = 50Hz và A = 1.
1

0.5

-0.5

-1
-0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05

0.5

-0.5

-1
-0.05 -0.04 -0.03 -0.02 -0.01 0 0.01 0.02 0.03 0.04 0.05

Câu 8.

a. Viết chương trình Matlab mô phỏng tín hiệu có phương trình tổng hợp sau đây:

f (t )=t(u(t )−u(t−2 ))+(6−2t )(u (t−2)−u(t−3)) Với −1≤t≤5

clear;

clf;

t=-1:0.001:5;

ft=t.*(heaviside(t)-heaviside(t-2))+(6-2*t).*(heaviside(t-2)-heaviside(t-3));

b. Vẽ lại đồ thị của phương trình tổng hợp này lên hình 4.8.
2

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
-1 0 1 2 3 4 5

You might also like