Professional Documents
Culture Documents
Bài 2
% Định nghĩa tín hiệu
t = linspace(0, 2, 1000);
x = 10*sin(50*pi*t).*cos(20*pi*t);
% Vẽ tín hiệu trong miền thời gian và phổ tần số của tín hiệu lấy mẫu
figure;
Bài 3
% Định nghĩa tín hiệu đầu vào và đáp ứng xung của hệ thống
n = -10:100;
x_n = (1/10).^n .* (n >= 0); % tín hiệu đầu vào
h_n = (1/5).^n .* (n >= 0); % đáp ứng xung của hệ thống
% Tính toán đáp ứng đầu ra của hệ thống bằng tích chập
y_n = conv(x_n, h_n, 'same');
Kết luận :
Dựa trên kết quả của việc lấy mẫu tín hiệu và phân tích phổ tần số, chúng ta có
thể rút ra một số kết luận về hệ thống:
1. **Tần số lớn nhất của tín hiệu**: Tần số lớn nhất của tín hiệu là f_max = 50Hz,
được xác định bởi thành phần có tần số cao nhất trong tín hiệu sin(50*pi*t).
3. **Giản đồ điểm cực điểm không**: Trong phổ tần số của tín hiệu lấy mẫu, ta có
thể quan sát các điểm cực điểm không, nơi phổ tần số chuyển từ 0 đến giá trị không
khác nhau. Điều này xảy ra khi tần số lấy mẫu không đáp ứng điều kiện Nyquist và
dẫn đến hiện tượng Aliasing.
Tổng cộng, hệ thống này là một hệ thống tín hiệu có tần số cao và việc lấy mẫu tín
hiệu đòi hỏi tần số lấy mẫu đủ cao để không gây ra hiện tượng Aliasing và đảm bảo
duy trì thông tin của tín hiệu gốc.
Câu 4
% Định nghĩa phương trình sai phân
a = [1, -0.3, 0.2, 0, 0, 0, -0.3];
b = [1, 3, 1, 0, -5, 0, 0];
for i = 7:length(n)
y(i) = b * [x(i); x(i-1); x(i-2); x(i-3); x(i-4); x(i-5); x(i-6)] - a(2) *
y(i-1) - a(7) * y(i-6);
end
Để xác định đáp ứng đầu ra của hệ thống khi biết tín hiệu vào x(n), ta cần thực
hiện phép tích chập giữa tín hiệu vào và hàm phản hồi của hệ thống. Dưới đây là
phương trình phép tích chập:
y(n)=x(n)∗h(n)
Trong đó:
Code matlab
Câu 5
% Định nghĩa tín hiệu liên tục
t = linspace(0, 10, 5000); % Thời gian từ 0 đến 10 giây với 5000 điểm mẫu
x_t = cos(30*pi*t) + 0.4*sin(50*pi*t);
% Subplot 1: Vẽ tín hiệu rời rạc x(n) sau khi thực hiện lấy mẫu với tần số lấy mẫu
Fs = 500 Hz trong thời gian 10 giây
Fs = 500; % Tần số lấy mẫu
n = 0:1/Fs:10; % Vector thời gian rời rạc
x_n = cos(30*pi*n) + 0.4*sin(50*pi*n);
% Subplot 2: Vẽ phổ biên độ tần số của tín hiệu sau khi lấy mẫu
X_n = abs(fft(x_n)); % Biến đổi Fourier của tín hiệu rời rạc
frequencies = linspace(0, Fs, length(X_n)); % Tạo vector tần số tương ứng
% Subplot 3: Hệ thống có phương trình sai phân y(n) - 0.3y(n-1) = x(n), vẽ đáp ứng
xung của hệ thống
a = [1, -0.3]; % Hệ số của đầu ra y(n)
b = 1; % Hệ số của đầu vào x(n)
y_n = filter(b, a, x_n);
% Subplot 5: Vẽ đáp ứng đầu ra của hệ thống với đầu vào là x(n)
y_t = filter(b, a, x_t);
% Subplot 6: Vẽ phổ biên độ của đáp ứng đầu ra của hệ thống với đầu vào là x(n)
Y_t = abs(fft(y_t));
frequencies_y = linspace(0, Fs, length(Y_t));
% Vẽ đồ thị
figure;
% Subplot 1
subplot(2, 3, 1);
stem(n, x_n);
xlabel('n');
ylabel('x(n)');
title('Tín hiệu rời rạc x(n)');
% Subplot 2
subplot(2, 3, 2);
plot(frequencies, X_n);
xlabel('Tần số (Hz)');
ylabel('Biên độ');
title('Phổ biên độ của tín hiệu');
% Subplot 3
subplot(2, 3, 3);
stem(n, y_n);
xlabel('n');
ylabel('y(n)');
title('Đáp ứng xung của hệ thống');
% Subplot 4
subplot(2, 3, 4);
plot(f, abs(H));
xlabel('Tần số (Hz)');
ylabel('Biên độ');
title('Đáp ứng tần số biên độ của hệ thống');
% Subplot 5
subplot(2, 3, 5);
plot(t, y_t);
xlabel('Thời gian (s)');
ylabel('Đầu ra y(t)');
title('Đáp ứng đầu ra của hệ thống với đầu vào x(t)');
% Subplot 6
subplot(2, 3, 6);
plot(frequencies_y, Y_t);
xlabel('Tần số (Hz)');
ylabel('Biên độ');
title('Phổ biên độ của đầu ra y(t)');
Bài 6
0.5y(n) = y(n-1) + 5y(n-2) + 3y(n-3) +2y(n-4) +x(n) + 2.5x(n-1) -2x(n-2) +1.5x(n-
3)
−1 −2 −4 −5
0.5−z −5 z −3 z −2 z
H(z) = −1 −2 −3
1+ 2.5 z −2 z +1.5 z ¿
¿