1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thí nghiệm ee2000 tín hiệu và hệ thống học kỳ 20221

17 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo cáo thí nghiệm EE2000 - Tín hiệu và hệ thống
Tác giả Họ Và Tên, MSSV, Lớp
Trường học Đại Học Bách Khoa Hà Nội Trường Điện – Điện Tử
Chuyên ngành Tín hiệu và hệ thống
Thể loại Báo cáo thí nghiệm
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 3,52 MB

Nội dung

Bài 1: Tín hiệu liên tụcI.Hàm bước nhảy đơn vịunit step và hàm dốc đơn vịrampTrong bài thực hành này, ta sẽ sử dụng các câu lệnh liên quan đến gán, viết hàm, cấu trúc if…end, for…end, lệ

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

HỌC KỲ 20221

Họ và tên:

MSSV

Lớp:

Mã lớp:

Hà Nội, 2/2023

Trang 2

Bà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)

Trong bài thực hành này, ta sẽ sử dụng các câu lệnh liên quan đến gán, viết hàm, cấu trúc if…end, for…end, lệnh vẽ đồ thị, vẽ nhiều đồ thị, phép toán sử dụng biến tượng trưng

1 Viết hàm:

B1: Ta tạo một script file

B2: Viết hàm:

Ở bước này, ta sẽ dùng function để tạo 2 hàm ustep(t,a) ứng với hàm bước nhảy đơn vị và uramp(t,a) ứng vớt hàm dốc đơn vị

B3: Lưu file

2 Cấu trúc if…end

Đây là câu lệnh điều kiện Ví dụ:

x=input(‘ nhap x’);

if x>0

y=x+1;

end

disp(y)

Câu lệnh trên thực hiện tính y=x+1 khi x>0

3 Câu trúc for…end

for x = 1:10

y(x) = x^2;

end

Câu lệnh in ra vector y với các phân tử là x^2 khi x chạy từ 1,2,3,4,…,10

4 Vẽ đồ thị:

syms x

x=-10:0.01:10;

y=x.^2;

plot(x,y)

Câu lệnh trên in ra đồ thị hàm y=x^2

5 Vẽ nhiều đồ thị:

Ta dùng lệnh hold on

6 Dùng biến tượng trưng

syms x

Bài tập Bài 1:Viết hàm y ustep t để biểu diễn hàm bước nhảy đơn vị.  

B1: Ta tạo script file tên ustep.m

B2: Dùng lệnh function viết hàm

function y= ustep(t, a)

Trang 3

N= length(t);

y= zeros(1,N);

for i=1:N

if t(i)>= -a

y(i)=1

end

end

Bài 2: Viết hàm y=uramp(t) dể biểu diễn hàm dốc đơn vị

Tương tự bài 1:

function y= uramp(t,b)

N= length(t);

y= zeros(1,N);

for i=1:N

if t(i)>=-b

y(i)= t(i)+b;

end

end

Bài 3: Sử dụng các hàm vừa viết, vẽ đồ thị của các tín hiệu liên tục sau trên [-10,10] Bài này t kết hợp lệnh vẽ đồ thị và hàm vừa viết

a Hàm 5u(t-2):

t=-10:0.01:10;

plot(t,5*ustep(t,-2))

Câu lệnh này vẽ 1 phần của đồ thị hàm 5u(t-2) với -10<x<10 Khi đó ta sẽ

có đồ thị:

Trang 4

b Hàm 3r(t +5):

t=-10:0.01:10;

plot(t,3*uramp(t,5))

Câu lệnh vẽ 1 phần đồ thị hàm 3r(t+5) với -10<x<10 Khi đó ta có đồ thị:

c Hàm y(t)= 2r(t+2,5)-5r(t) +3r(t-2) +u(t-4):

t=-10:0.01:10;

plot(t,2*uramp(t, 2.5)-5*uramp(t,0)+3uramp(t,-2)+ustep(t,-4))

d Hàm y(t)= sin(t)*[u(t+3)-u(t-3)]:

Trang 5

t=-10:0.01:10;

plot(t, sin(t).*(ustep(t,3) - ustep(t,-3)))

Bài 4:

Hình 1:

Từ đồ thị ta có thể xây dựng hàm: y=r(t+4)+r(t-4)-r(t)

Trang 6

Sau khi xây dựng được hàm thì ta dùng lệnh plot đểvẽ đồ thị và lệnh grid on để tạo mắt lưới cho đồ thị

t=-10:0.01:10;

y=0.5*uramp(t,4) +0.5*uramp(t,-4) - uramp(t,0);

plot(t,y)

grid on

Hình 2:

Từ đồ thị trên ta cũng có thể xây dựng được hàm có dạng:

y = u(t+8)+ r(t+4)+r(t-4)-r(t)-u(t-8)

Sau khi xây dựng được hàm thì ta dùng lệnh plot để vẽ đồ thị và lệnh grid on để tạo các mắt lưới

t=-10:0.01:10;

y= ustep(t,8)+0.5*uramp(t,4)+0.5*uramp(t,-4)-uramp(t,0)-ustep(t,-8); plot(t,y)

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

Mọi tín hiệu có thể phân tích thành tổng của một tín hiệu chẵn là một tín hiệu lẻ

Và các thành phần lần lượt:

Phần chẵn ký hiệu là ye=(y+yr)

Phần lẻ ký hiệu là yo=(y-yr)

Trong đó yr là tín hiệu đối của y

Sử dụng cách viết hàm và dạng của các phần chẵn lẻ, ta xây đựng được hàm:

function [ye,yo] = evenodd(y)

yr = fliplr(y);

ye = 0.5*(y + yr);

Trang 7

yo = 0.5*(y – yr);

end

Bà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)

Sử dụng các kiến thức của các bài trên, ta xây dựng được chương trình:

t=linspace(-10,10,500);

y=2*uramp(t, 2.5)-5*uramp(t,0)+3uramp(t,-2)+ustep(t,-4);

evenodd(y);

yr=fliplr(y);

ye=0.5*(y+yr);

yo=0.5*(y-yr);

plot(t,yo,'b ');

hold on;

plot(t,ye,'r-');

xlabel('t');

ylabel('y');

plot(t,y,'k-','linewidth',1)

title('đồ thị hàm số y(t)');

legend(‘yo’,’ye’,’y’);

grid on

Khi đó đồ thị sẽ có dạng:

Trong đó đường màu đen là tín hiệu y, đường màu đỏ là phần tín hiệu chẵn, phần màu xanh nét đứt là phần tín hiệu lẻ

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ó?

Trang 8

Ở bài này ta có 2 cách để xác định xem tín hiệu có phải là tín hiệu tuần hoàn hay không là vẽ đồ thị và tính thông thường

a x1(t) = 1+ 1,5cos(2πΩot)-0,6cos(4Ωot) với Ωo=π/10.

Cách 1: Ta sẽ dùng lệnh plot để vẽ đồ thị của hàm số:

t=linspace(-10,10,1000);

x1=1+1.5*cos(2*pi*pi*t/10)-0.6*cos(4*pi*t/10);

plot(t,x1);

Ta thu được đồ thị có dạng như trên Dựa vào đồ thị ta có thể thấy rằng tín hiệu này không tuần hoàn

Cách 2: Làm bình thường:

x1(t)= 1+ 1,5cos(2πΩot)-0,6cos(4Ωot)

Đặt: y1=1,5cos(2πΩot) => T1=1/Ωo(s)

y2=0,6cos(4Ωot) =>T2=π/2Ωo(s)

Mà: T1/T2=2/π không là số hữu tỉ Nên tín hiệu không tuần hoàn

b x2 = 1+1,5cos(6πt)-0,6cos(4Ωot) với Ωo=π/10.

Tương tự ta cũng có 2 cách xác định

Cách 1: Ta dùng lệnh plot để vẽ hàm x2

t =linspace(-10,10,1000);

x2=1+1.5*cos(6*pi*t)-0.6*cos(4*pi*t/10);

Trang 9

Từ đồ thị ta có thể dễ dàng nhận ra rằng tín hiệu này là tín hiệu tuần hoàn

với chu kỳ To=5(s)

Cách 2:

Đặt: y3=1,5cos(6πt) => T3=1/3(s)

y4=0,6cos(4Ωot) => T4=π/2Ωo=5(s)

=>T3/T4=1/15 => T4=15T3=> To=T4=5(s)

Vậy tín hiệu tuần hoàn với chu kỳ To=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 [-;] được định nghĩa là E= Công suất của nó thì được định nghĩa là P= 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) = cos(2t)u(t).

syms t

x(t)=exp(-t).*cos(2*pi*t).*u(t);

f= (abs(x(t))).^2;

E= int(f , t , -T/2 , T/2)

P= int(f , t , -T/2 , T/2)/T

E=(exp(-20)*(2*pi^2 +1)*(exp(20) -1))/(2*(4*pi^2 +1))

Trang 10

P=(exp(-20)*(2*pi^2 +1)*(exp(20) -1))/(40*(4*pi^2 +1))

V. Phép dịch, phép co dãn và phép đảo tín hiệu:

Ở phần này, ta dùng lệnh hold on để vẽ nhiều đồ thị cùng một lúc

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 và x t 2       (giả sử 10 t 10) với: x(t) =   

t=-10:0.01:10;

x=exp(-(abs(t)));

x1=exp(-(abs(t-2)));

x2=exp(-(abs(t+2)));

plot(t,x,'b');

hold on;

plot(t,x1,'k');

plot(t,x2,'r');

legend('x(t)','x(t-2)','x(t+2)');

grid on

title('x(t)=exp(-|t|)');

Bài 2: Vẽ đồ thị của các hàm số sau trên cùng một đồ thị: x(t),x(2t) và x(0,5t) (giả

sử -10≤t≤10) với x(t)= −|� �|

t=-10:0.01:10;

x=exp(-(abs(t)));

x1=exp(-(abs(2*t)));

x2=exp(-(abs(0.5*t)));

Trang 11

plot(t,x,'b');

hold on;

plot(t,x1,'k');

plot(t,x2,'r');

legend('x(t)','x(2t)','x(0,5t)');

grid on

title('x(t)=exp(-|t|)');

Bài 3: Vẽ đồ thị của các hàm số sau trên cùng một đồ thị: x(t), và x(-t) (giả sử -10≤t≤10) với x(t)= −| | � �

t=-10:0.01:10;

x=exp(-(abs(t)));

x1=exp(-(abs(-t)));

plot(t,x,'b');

hold on;

plot(t,x1,'r');

legend('x(t)','x(-t)');

grid on

Trang 12

Bài 2: Hàm tuyến tính

Từ bảng tần số các nốt nhạc ta có thể xây dựng các nốt nhạc và tùy chỉnh độ ngân ngắn dài của từng nốt Ta có thể xây dựng các câu lệnh như sau:

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);

Trang 13

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 F F E E D D C ];

Bài 1

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ài 2.

subplot(211)

plot(t(1:200),x(1:200))

axis tight

grid on;

Bài 3.

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;

Trang 14

Nhận xét: Sau khi đổi các pha thành 0, tín hiệu âm thanh thu được có đồ thị âm

thay đổi, tuy nhiên âm thanh nghe được bằng tai người không đổi

Bà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]=audioread('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.m

function [f,X]=FourierTransform(t,x)

ns=size(x,2);

Trang 15

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;

end;

%IfourierTransform.m

function [t,x]=IFourierTransform(f,X)

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);

Trang 16

else; x(1:n2-1)=xf(n2+1:N); x(n2:N)=xf(1:n2);

t=(-n2+1)*dt:dt:(n2-1)*dt;

end;

2 Lọc tín hiệu điện tim

Câu hỏi 1: Chạy chương trình main.m và nhận xét về đồ thị thời gian của tín hiệu điện tim và phổ của nó

• Tín hiệu điện tim là tín hiệu tuần hoàn

• Nhiễu tập trung ở quanh vùng f=0 Hz, nhiễu cũng có ở vùng f tần số cao

Câu hỏi 2: Nhận xét về bộ lọc đã dùng

• Bộ lọc đã dùng là bộ lọc thông thấp

• Vùng tần số bộ lọc cho đi qua là từ 0 Hz đến 100 Hz

Trang 17

Câu hỏi 3: Nhận xét về tác dụng của bộ lọc

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

Ngày đăng: 14/06/2024, 16:33

w