ĐẠI HỌC BÁCH KHOA HÀ NỘITRƯỜNG ĐIỆN – ĐIỆN TỬBÁO CÁO THÍ NGHIỆMEE2000 - TÍN HIỆU VÀ HỆ THỐNG Giáo viên hướng dẫn: Nguyễn Duy Long Sinh viên thực hiện: Nguyễn Hoàng Khánh... TÍN HIỆU LIÊ
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI TRƯỜNG ĐIỆN – ĐIỆN TỬ
BÁO CÁO THÍ NGHIỆM EE2000 - TÍN HIỆU VÀ HỆ THỐNG
Giáo viên hướng dẫn: Nguyễn Duy Long
Sinh viên thực hiện: Nguyễn Hoàng Khánh
MSSV: 20222564
Mã lớp thí nghiệm: 736402
Lớp: Kỹ thuật ĐK-TĐH 13 K67
Kỳ học: 2023.1
Hà Nội, 12/2023
Trang 2BÀI 1 TÍN HIỆU LIÊN TỤC
I Hàm bước nhảy đơn vị (unit step) và hàm dốc đơn vị (ramp)
Bài 1: Viết hàm y =ustep (t) để biểu diễn hàm bước nhảy đơn vị
y=zeros(size(t));
y(t>=0)=1;
end
Bài 2: Viết hàm y =uramp(t) để biểu diễn hàm dốc đơn vị
y=t.*u(t);
end
Bài 3: Sử dụng các hàm vừa viết, vẽ các tín hiệu sau trên đoạn −10 ≤t ≤10
>> t=-10:0.001:10;
>> y1=5.*u(t-2);
>> plot(t,y1)
>> y2=3.*r(t+5);
>> plot(t,y2)
Trang 3>> plot(t,y3)
>> y4=sin(t).*(u(t+3)-u(t-3));
>> plot(t,y4)
Bài 4: Sử dụng hai hàm trên để tạo ra các tín hiệu có đồ thị sau
Đồ thị 1
>> t=-10:10;
>> y1= 0.5*r(-abs(t)+4);
>> plot(t,y1);
>> axis([-10 10 -0.5 2]); grid on;
3
Trang 4Đồ thị 2
>> t=-10:0.001:10;
>> y2=0.5*r(-abs(t)+4)-u(abs(t)-8)+1;
>> plot(t,y2)
>> grid on;
II Tín hiệu chẵn, lẻ
Bài 1: Xây dựng hàm số trả về kết quả là phần chẵn và phần lẻ của một tín hiệu như sau:
yr = fliplr(y);
ye = 0.5*(y+yr);
yo = 0.5*(y-yr);
end
Trang 5Bài 2: Sử dụng hàm số trên để để tìm phần chẵn và phần lẻ của các tín hiệu liên tục sau và
vẽ đồ thị của tín hiệu chính cũng như phần chẵn và phần lẻ của nó trong cùng một đồ thị sử dụng các dạng đường thẳng và màu sắc khác nhau (giả sử −10 ≤t ≤10)
y (t )=2r (t+2.5)−5r (t)+3r (t−2 u(t−4)+ )
>> t=-10:0.001:10;
>> y=2*r(t+2.5)-5*r(t)+3*r(t-2)+u(t-4);
>> [ye,yo]=evenodd(y);
>> plot(t,y)
>> hold on
>> plot(t,ye,'m')
>> plot(t,yo,'r')
>> legend('y','ye','yo')
III Tổng của các tín hiệu tuần hoàn
Vẽ dạng của các tín hiệu sau trên đoạn −10 ≤t ≤10 Tín hiệu đó có phải là tín hiệu tuần hoàn hay không? Nếu có, tìm chu kỳ của nó?
a) x1(t)=1+1.5 cos (2 π Ω0t )−0.6 cos(4 Ω0t )với Ω0=10π
>> syms x1 t w
>> w=pi/10;
>> x1=1+1.5*cos(2*pi*w*t)-0.6*cos(4*w*t);
>> ezplot(x1,[-10;10])
>> grid on
5
Trang 6Tín hiệu x1(t)=1+ x1a(t )+x1b( ) t không phải tín hiệu tuần hoàn vì:
x1a (t)=1.5 cos(2 π Ω0t)có T1a= 2π
2π Ω0
=10
π (s)
x1b (t)=−0.6 cos(4 Ω0t) có T1b=42π
Ω0
=5 (s)
T1a
T1b
=2
π không phải là số hữu tỷ
b) x2(t)=1+1.5 cos (6 πt)−0.6 cos(4 Ω0t )với Ω0=10π
>> syms x1 t w
>> w=pi/10;
>> x2=1+1.5*cos(6*pi*t)-0.6*cos(4*w*t);
>> ezplot(x2,[-10;10])
>> grid on
Trang 7Tín hiệu x2(t)=1+ x2a(t )+x2b( ) t là tín hiệu tuần hoàn vì:
x2a (t)=1.5 cos(6 πt)có T2a=26π
π=1
3(s)
x2b (t)=−0.6 cos(4 Ω0t) có T2b=42π
Ω0
=5 (s)
T2a
T2b
=1
15 là số hữu tỷ → T2=15 T2a=5(s)
IV Năng lượng, công suất của một tín hiệu
Năng lượng của một tín hiệu trong khoảng [−T
2 ; T2] được định nghĩa là E=∫
−T / 2
T/ 2
|x (t)|2
dt
Công suất của nó thì được định nghĩa P=1
−T / 2
T/2
|x (t)|2
dt Tìm năng lượng và công suất của tín hiệu sau trên đoạn −10≤t ≤10 bằng cách sử dụng công
cụ biến tượng trưng của Matlab
x(t)=e−tcos(2πt)u(t)
>> syms t;
>> T = 20;
>> u(t) = heaviside(t);
>> x(t) = exp(-t).*cos(2*pi*t).*u(t);
>> f = (abs(x(t))).^2;
>> E = int(f, t, -T/2, T/2)
E =
7
Trang 8>> double(E)
ans =
0.2562
>> P = int(f, t, -T/2, T/2)/T
P =
(exp(-20)*(2*pi^2 + 1)*(exp(20) - 1))/(40*(4*pi^2 + 1))
>> double(P)
ans =
0.0128
Trang 9V Phép dịch, phép co dãn và phép đảo tín hiệu
Bài 1: Vẽ đồ thị của các hàm số sau trên cùng một đồ thị: x (t ), x (t−2) ( +2) , x t .
Giả sử −10 ≤t ≤10 với x (t)=e− |t|
>> syms t
>> x(t)=exp(-abs(t));
>> ezplot(x(t),[-10;10])
>> hold on; grid on;
>> ezplot(x(t-2),[-10;10])
>> ezplot(x(t+2),[-10;10])
>> legend('x(t)','x(t-2)','x(t+2)')
Bài 2: Vẽ đồ thị của các hàm số sau trên cùng một đồ thị: x (t), x(2t), x (0.5 t)
Giả sử −10≤t ≤10 với x (t)=e− |t|
>> syms t
>> x(t)=exp(-abs(t));
>> ezplot(x(t),[-10;10])
>> hold on; grid on;
>> ezplot(x(2*t),[-10;10])
>> ezplot(x(0.5*t),[-10;10])
>> legend('x(t)','x(2t)','x(0.5t)')
9
Trang 10Bài 3: Vẽ đồ thị của các hàm số sau trên cùng một đồ thị: x (t ), x(− ) t .
Giả sử −10≤t ≤10 với x (t)=e− |t|
>> syms t
>> x(t)=exp(-abs(t));
>> ezplot(x(t),[-10;10])
>> hold on; grid on;
>> ezplot(x(-t),[-10;10])
Trang 11BÀI 2 HÀM TUYẾN TÍNH
Bài 1: Tần số và nốt nhạc
Viết chương trình Matlab để chơi bản nhạc sau: CCGGAAG , FFEEDDC—
>> Fs=8000;
>> t=[0:1/Fs:0.5];
>> Fc=262;Fd=294;Fe=330;Ff=349;Fg=392;Fa=440;Fb=494;Fj=0;
>> C=cos(2*pi*Fc*t);
>> D=cos(2*pi*Fd*t);
>> E=cos(2*pi*Fe*t);
>> F=cos(2*pi*Ff*t);
>> G=cos(2*pi*Fg*t);
>> A=cos(2*pi*Fa*t);
>> B=cos(2*pi*Fb*t);
>> Si=cos(2*pi*Fj*t);
>> song=[C C G G A A G Si Si F F E E D D C Si Si];
>> sound(song,Fs)
Bài 2: Fourier of a Trumplet
a) Tổng hợp tín hiệu kèn từ phép tính xấp xỉ chuỗi Fourier hữu hạn 9 số hạng:
>> t = linspace(0,1,44100);
>> F = 494;
>> C =[0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.026 0.0045 0.002];
>> Th = [-2.13 1.67 -2.545 661 -2.039 2.16 -1.0467 1.858 -2.39];
>> x = C*cos(2*pi*F*[1:9]'*t-Th'*ones(1,44100));
>> sound(x,44100);
b) Vẽ tín hiệu x (t) trong 3 chu kỳ của nó:
>> subplot(211)
>> plot(t(1:200),x(1:200))
>> axis tight; grid on;
11
Trang 12c) Lặp lại phần a và phần b với θ k=0 Việc thay đổi pha có ảnh hưởng đến âm thanh của tín hiệu không?
>> t = linspace(0,1,44100);
>> F = 494;
>> C = [0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.026 0.0045 0.002];
>> Th = zeros(1,9);
>> x = C*cos(2*pi*F*[1:9]'*t-Th'*ones(1,44100));
>> sound(x,44100);
>> subplot(211), plot(t(1:200),x(1:200))
>> grid on;
Việc thay đổi pha không làm ảnh hưởng đến âm thanh của tín hiệu.
Trang 13BÀI 3 TÍCH CHẬP, PHÉP BIẾN ĐỔI FOURIER VÀ LỌC TÍN HIỆU
I Tích chập và lọc tín hiệu âm thanh bằng bộ lọc thông thấp lý tưởng
[data, Fs, Nbits]=wavread('female_voice.wav');
data = data(:, 1).';
Ts = 1/Fs;
sound(data, Fs);
t = [-10:Ts:10];
wb = 1500*2*pi;
ht = wb/(2*pi)*sinc(wb*t/(2*pi));
y = conv(data, ht, 'same');
y = y/max(abs(y));
sound(y, Fs);
II Phép biến đổi Fourier và lọc tín hiệu bằng bộ lọc Butterworth bậc 5
1 Tự tạo các hàm
% FourierTransform
ns=size(x,2); dt=t(2)-t(1);
N=2*ns; df=1/(N*dt);
xp=zeros(1,N); nns=sum(t<0);
xp(1:ns-nns)=x(nns+1:ns); xp(N-nns+1:N)=x(1:nns);
Xf=dt*fft(xp); n2=ceil(N/2);
if n2==N/2; X(1:n2-1)=Xf(n2+2:N); X(n2:N)=Xf(1:n2+1);
f=(-n2+1)*df:df:n2*df; no=n2;
else; X(1:n2-1)=Xf(n2+1:N); X(n2:N)=Xf(1:n2);
f=(-n2+1)*df:df:(n2-1)*df;
% IFourierTransform
ns=length(X); df=f(2)-f(1);
N=ns; dt=1/(N*df);
Xp=zeros(1,N); Xp(1:ns)=X;
nns=sum(f<0);
Xpp(1:ns-nns)=Xp(nns+1:ns); Xpp(N-nns+1:N)=Xp(1:nns);
xf=N*df*ifft(Xpp); n2=ceil(N/2);
if n2==N/2; x(1:n2-1)=xf(n2+2:N); x(n2:N)=xf(1:n2+1);
t=(-n2+1)*dt:dt:n2*dt;
else; x(1:n2-1)=xf(n2+1:N); x(n2:N)=xf(1:n2);
t=(-n2+1)*dt:dt:(n2-1)*dt;
13
Trang 142 Lọc tín hiệu điện tim
Câu hỏi 1: Chạy chương trình và nhận xét về đồ thị thời gian của tín hiệu điện tim và phổ
của nó
Nhận xét:
- Tín hiệu điện tim là tín hiệu tuần hoàn.
- Phổ của tín hiệu cho thấy nhiễu tập trung ở quanh vung f =0 Hz, nhiễu cũng có ở vùng có tần số cao.
Câu hỏi 2: Đây là loại bộ lọc gì? Vùng tần số mà bộ lọc cho đi qua?
Trang 15- Vùng tần số bộ lọc cho đi qua là từ Hz đến Hz
Câu hỏi 3: Nhận xét về tác dụng của bộ lọc khi so sánh đồ thị trong các Hình 1 và 3
- Bộ lọc có tác dụng khử nhiễu tần số cao trong máy ghi điện tim, ở Hình 3 nhiễu đã giảm
so với Hình 1.
15