Tài liệu hướng dẫn ôn tập kỹ sư máy tính - Pdf 21

Digital Signal Processing Lab Book , Bui Thanh Hieu (Msc)
Computer Engineering Department – University of Information Tẹchnology

Bài 1: Dãy xung đơn vị và dãy nhảy bậc đơn vị
Dãy xung đơn vị:




=
=
0 ,0
0 ,1
][
n
n
n
δ

Dãy nhảy bậc đơn vị:



<

=
0 ,0
0 ,1
][
n
n

title('Unit Sample Sequence');
axis([-10 20 0 1.2]);

Câu hỏi:
1. Nêu công dụng của các lệnh clf, axis, title, xlabel, ylabel
2. Sử dụng chương trình P1-1 để viết chương trình tạo chuỗi xung đơn vị trễ
11 mẫu {
]11[ −n
δ
}. Chạy chương trình đó.
3. Tương tự viết chương trình tạo dãy nhảy bậc đơn vị u[n]
4. Viết chương trình tạo dãy nhảy bậc đơn vị sớm 7 mẫu u[n+7]

Bài 2: Biểu diễn tín hiệu hàm mũ
Dạng tín hiệu: x[n] = Aα
n

Trong đó A và α là các số thực hoặc phức.
Nếu A, α là các giá trị phức thì:
φ
ωσ
α
j
j
ee AA ,
)(
00
==
+


%axis([0 40 -5 5]);
subplot(2,1,2);
stem(n,imag(x));
xlabel('Time index n');ylabel('Amplitude');
title('Imaginary part');

% Program P1_3
% Generation of a real exponential sequence
clf;
n = 0:35; a = 1.2; K = 0.2;
x = K*a.^n;
stem(n,x);
xlabel('Time index n');ylabel('Amplitude');

Câu hỏi:
1. Trong chương trình P1_2 tham số nào điều khiển độ tăng hay giảm của
chuỗi, tham số nào điều khiển biên độ của chuỗi?
2. Nếu c = (1/12) + (pi/6)*i thì đồ thị của chuỗi có gì thay đổi?
3. Nêu công dụng của các toán tử real và imag.
4. Nêu công dụng của lệnh subplot
5. Trong chương trình P1-3 tham số nào điều khiển độ tăng hay giảm của
chuỗi? Tham số nào điều khiển biên độ của chuỗi?
6. Nêu sự khác nhau giữa các toán tử số học ^ và .^
7. Chạy lại chương trình P1-3 với tham số a < 1 và K = 20. Rút ra kết luận gì?
8. Có thể dùng lệnh Matlab sum(s.*s) để tính năng lượng của chuỗi số thực
s[n]. Hãy dùng lệnh này để tính năng lượng của dãy x[n] trong chương trình
P1_3 với a = 0.9 và K = 20

phase = 0;
A = 1.5;
arg = 2*pi*f*n - phase;
x = A*cos(arg);
clf; % Clear old graph
stem(n,x); % Plot the generated sequence
axis([0 40 -2 2]);
grid;
title('Sinusoidal Sequence');
xlabel('Time index n');
ylabel('Amplitude');
axis;

Câu hỏi:
1. Trong chương trình tham số nào ứng với tần số, pha và biên độ của tín hiệu.
Tính chu kỳ của tín hiệu.
2. Chiều dài của chuỗi bằng bao nhiêu và thay đổi nó bằng cách nào?
3. Nêu công dụng của lệnh axis và grid
4. Tính công suất trung bình của tín hiệu
5. Chạy lại chương trình P1-4 với f = 0.9. So sánh với tín hiệu ban đầu.
6. Chạy lại chương trình P1-4 với chiều dài của chuỗi bằng 50, tần số 0.08,
biên độ 2.5, dịch pha 90
0
. Tính chu kỳ của tín hiệu.
7. Thay thế lệnh stem trong chương trình P1-4 bằng lệnh plot. Chạy lại
chương trình.
8. Tương tự, thay thế lệnh stem bằng lệnh stairs. Chạy lại chương trình và nêu
sự khác nhau giữa 3 lệnh stem, plot, stairs.
plot(m,d','r-',m,s,'g--',m,x,'b-.');
xlabel('Time index n');ylabel('Amplitude');
legend('d[n] ','s[n] ','x[n] ');
x1 = [0 0 x];x2 = [0 x 0];x3 = [x 0 0];
y = (x1 + x2 + x3)/3;
subplot(2,1,2);
plot(m,y(2:R+1),'r-',m,s,'g--');
legend( 'y[n] ','s[n] ');
xlabel('Time index n');ylabel('Amplitude');
Câu hỏi:
1. Chạy chương trình trên
2. Có thể dùng công thức x = s + d để tạo ra tín hiệu nhiễu không? Nếu không
hãy giải thích?
3. Nêu mối quan hệ giữa các tín hiệu x
1
, x
2
,x
3
với tín hiệu x
4. Nêu công dụng của lệnh legend.

Bài 5: Các thao tác cơ bản trên tín hiệu rời rạc
Hãy gõ các đoạn lệnh sau trong chương trình Matlab, mỗi đoạn lệnh được
lưu bằng một tên file khác nhau tương ứng là: sigshift.m sigfold.m sigadd.m
conv_m.m
Digital Signal Processing Lab Book , Bui Thanh Hieu (Msc)
Computer Engineering Department – University of Information Tẹchnology

Cho
{ }
1234567654321)(

=nx

Digital Signal Processing Lab Book , Bui Thanh Hieu (Msc)
Computer Engineering Department – University of Information Tẹchnology

Xác định và vẽ các tín hiệu sau:
a. x
1
(n) = 2x(n-5) - 3x(n+4)
b. x
2
(n) = x(3-n) + x(n-2)
% Chương trình tính toán câu a
n = -2:10
x = [1:7,6:-1:1]
[x11,n11] = sigshift(x,n,5)
[x12,n12] = sigshift(x,n,-4)
[x1,n1] = sigadd(2*x11,n11,-3*x12,n12)
subplot(2,1,1)
stem(n1,x1)
title('Sequence in example a')
xlabel('n'); ylabel('x1(n)')
Câu hỏi
a. Chạy chương trình trên, xác định kết quả của chuỗi x
1

0
0
1
0
knx
d
p
kny
d
d
ny
M
k
k
N
k
k
−+−−=
∑∑
==

Nếu biết x[n] và các điều kiện đầu y[n
0
- 1], y[n
0
-2], .., y[n
0
- N] ta sẽ tìm được
đáp ứng ra của hệ thống.
Trong matlab sử dụng lệnh filter để mô phỏng hệ tuyến tính bất biến và nhân quả

clf;
n = 0:200;
x = cos(2*pi*0.05*n);
% Compute the output signal
x1 = [x 0 0]; % x1[n] = x[n+1]
x2 = [0 x 0]; % x2[n] = x[n]
x3 = [0 0 x]; % x3[n] = x[n-1]
y = x2.*x2-x1.*x3;
y = y(2:202);
% Plot the input and output signals
subplot(2,1,1)
plot(n, x)
xlabel('Time index n');ylabel('Amplitude');
title('Input Signal')
subplot(2,1,2)
plot(n,y)
xlabel('Time index n');ylabel('Amplitude');
title('Output signal');

Câu hỏi:
1. Chạy chương trình trên
2. Sử dụng các tín hiệu sin với tần số khác nhau làm tín hiệu đầu vào và tính
đáp ứng ra của hệ thống. Đáp ứng ra phụ thuộc như thế nào vào tần số của
tín hiệu vào ?
3. Nếu x[n] = sin(ω
0
n ) + K, tính đáp ứng ra y[n] của hệ thống
Bài 7: Hệ thống tuyến tính và không tuyến tính
Cho: y[n]- 0.4y[n-1] + 0.75y[n-2] = 2.2403x[n] + 2.4908x[n-1] + 2.2403x[n-2]
(3)

y1 = filter(num,den,x1,ic); % Compute the output y1[n]
y2 = filter(num,den,x2,ic); % Compute the output y2[n]
y = filter(num,den,x,ic); % Compute the output y[n]
yt = a*y1 + b*y2;
d = y - yt; % Compute the difference output d[n]
% Plot the outputs and the difference signal
subplot(3,1,1)
stem(n,y);
ylabel('Amplitude');
title('Output Due to Weighted Input: a \cdot x_{1}[n] + b
\cdot x_{2}[n]');
subplot(3,1,2)
stem(n,yt);
ylabel('Amplitude');
title('Weighted Output: a \cdot y_{1}[n] + b \cdot
y_{2}[n]');
subplot(3,1,3)
stem(n,d);
xlabel('Time index n');ylabel('Amplitude');
title('Difference Signal');

Câu hỏi:
1. Chạy chương trình trên và so sánh y[n] với yt[n]. Hệ thống này có tuyến
tính không ?
2. Chạy lại chương trình với giá trị khác nhau của các hệ số a, b và tần số của
tín hiệu vào.
3. Chạy lại chương trình với điều kiện đầu khác 0 và kiểm tra xem hệ thống
có tuyến tính hay không?
4. Sửa lại chương trình P2-2 để tính đầu ra y1[n], y2[n] và y[n] của hệ thống
được cho bởi: y[n] = x[n]x[n-1]


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status