Tải bản đầy đủ (.pdf) (14 trang)

báo cáo thực hành tín hiệu hệ thống 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (660.03 KB, 14 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC BÁCH KHOA HÀ NỘI </b>

<b>TRƯỜNG ĐIỆ – N ĐIỆN TỬ</b>

<b>NGÀNH KỸ THUẬ – T ĐIỀU KHIỂN TỰ ĐỘNG HÓA</b>

<b>--- </b>

<b>BÁO CÁO THỰC HÀNH TÍN HIỆU HỆ THỐNG </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>Bài 1. Tín hiệu liên tục </b>

Bài 1: Hàm bước nhảy đơn vị function x = ustep(t) x = (sign(t)+1)/2; end

Bài 2: Hàm dốc đơn vị function x = ramp(t) x = t*ustep(t); end

Bài 3: Vẽ đồ thị syms t;

interval = [-10,10]; x = 5*ustep(t-2);

fplot(x,interval); axis([interval -1 6]);

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

x = 3*ramp(t+5);

fplot(x,interval); axis([interval -1 45]);

x = 2*ramp(t+2.5)-5*ramp(t)+3*ramp(t-2)+ustep(t-4); fplot(x,interval); axis([interval -1 5]);

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

x = sin(t)*(ustep(t+3)-ustep(t-3)); fplot(x,interval); axis([interval -1 1]);

Bài 4: Sử dụng hàm ustep() và uramp() để tạo ra các tín hiệu có đồ thị cho trước

- Đồ thị 1: Syms t;

interval = [-10 10];

x1 = ramp(t/2+2)-ramp(t)+ramp(t/2-2); fplot(x1,interval); grid on;

axis([interval -0.5 2]);

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

- Đồ thị 2: Syms t;

interval = [-10 10];

x2 = x1 + ustep(t+8)- ustep(t-8); fplot(x2,interval,'LineWidth',2); grid on;

axis([interval 0 3]);

<b>I. Tín hiệu chẵn, lẻ </b>

Bài 1: Hàm trả về phần chẵn và lẻfunction [xe,xo] = evenodd(x,t) xr = subs(x,t,-t);

xe = 1/2*(x+xr); xo = 1/2*(x-xr); end

Bài 2: Tìm phần chẵn, lẻ và vẽ đồ thị clear;

syms t;

y = 2*ramp(t+2.5)-5*ramp(t)+3*ramp(t-2)+ustep(t-4); [ye,yo] = evenodd(y,t);

interval = [-10 10];

fplot(y,interval,'-k');hold on; grid on; fplot(ye,interval,'-r');

fplot(yo,interval,'-.b'); legend('y','ye','yo');

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>II. Tổng của các tín hiệu tuần hoàn </b>

clear syms t; omega = pi/10; interval = [-10 10];

x1 = 1 + 1.5*cos(2*pi*omega*t)-0.6*cos(4*omega*t); fplot(x1,interval);grid on;

axis([interval -1.5 3]);

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

x2 = 1 + 1.5*cos(2*pi*t)-0.6*cos(4*omega*t); fplot(x2,interval);grid on;

axis([interval -1 3]);

<b>III. Năng lượng, cơng suất của một tín hiệu </b>

clear; syms t; a = -10; b = 10;

x = exp(-t)*cos(2*pi*t)*ustep(t); E = double(int(abs(x)^2,t,a,b)) P = double(E/(b-a))

<b>Kết quả: </b>

E = 0.2562 P =

0.0128

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>IV. Phép dịch, phép co giãn và phép đảo tín hiệu </b>

Bài 1: clear; syms x(t);

x(t) = 2*exp(-abs(t)); interval = [-10 10];

fplot(x,interval,'-k');grid on; hold on; axis([interval 0 2]);

fplot(x(t-2),interval,' r'); fplot(x(t+2),interval,'-.b'); legend('x(t)','x(t-2)','x(t+2)');

Bài 2: clear; syms x(t);

x(t) = exp(-abs(t)); interval = [-10 10];

fplot(x,interval,'-k');grid on; hold on; axis([interval 0 1]);

fplot(x(2*t),interval,' r'); fplot(x(t/2),interval,'-.b'); legend('x(t)','x(2t)','x(0,5t)');

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

--Bài 3: clear; syms x(t);

x(t) = exp(-abs(t)); interval = [-10 10];

fplot(x,interval,'-.k');grid on; hold on; axis([interval 0 1]);

fplot(x(-t),interval,' r'); legend('x(t)','x(-t)');

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>--Bài 2. Hàm tuyến tính </b>

<b>Bài 1. Tần số và nốt nhạc </b>

clear; clc;

T = 0.5; Fs = 8000; Amp = 5;

C = 262; D = 294; E = 330; F = 349; G = 392; A = 440; B = 494;

t = 0:1/Fs:T;

nC = Amp*exp(-2*t).*cos(2*pi*C*t); nD = Amp*exp(-2*t).*cos(2*pi*D*t); nE = Amp*exp(-2*t).*cos(2*pi*E*t); nF = Amp*exp(-2*t).*cos(2*pi*F*t); nG = Amp*exp(-2*t).*cos(2*pi*G*t); nA = Amp*exp(-2*t).*cos(2*pi*A*t); nB = Amp*exp(-2*t).*cos(2*pi*B*t); x = [nC,nC,nG,nG,nA,nA,nG]; y = [nF,nF,nE,nE,nD,nD,nC]; n = 0*t;

sound([x n y],Fs);

Bài 2:

a)

clear; clc;

A1 = 0.1155; A2 = 0.3417; A3 = 0.1789; A4 = 0.1232;

A5 = 0.0678; A6 = 0.0473; A7 = 0.026; A8 = 0.0065; A9 = 0.002;

Amp = [A1,A2,A3,A4,A5,A6,A7,A8,A9]; teta = [-2.1299,1.6727,-2.5454,0.6607,-2.039,2.1597,-1.0467,1.8581,-2.3925]; B = 494; Fs = 44100;

F = B*(1:9); t = 0:1/Fs:2;

ph = teta'*ones(1,length(t)); x0 = Amp*cos(2*pi*F'*t+ph); sound(x0,Fs);

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Bài 3. Tích chập, phép biến đổi Fourier và lọc tín hiệu </b>

<b>I. Tích chập và lọc tín hiệu âm thanh bằng bộ </b>

<b>lọc thông thấp lý tưởng </b>

[data, Fs]= audioread('female_voice.wav'); data = data(:, 1).';

Ts = 1/Fs;

sound(data, Fs); pause(5); 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);

<b>II. Phép biến đổi Fourier và lọc tín hiệu bằng </b>

<b>bộ lọc Butterworth bậc 5. </b>

<b>1. Tự tạo các hàm </b>

%FourierTransform.m

function [f,X]=FourierTransform(t,x) 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;

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); nns+1:N)=Xp(1:nns);

Xpp(N-xf=N*df*ifft(Xpp); n2=ceil(N/2);

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

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;

end

<b>2. Lọc tín hiệu điện tim </b>

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

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

Câu hỏi 2: nhận xét về bộ lọc

- 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

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 có tần số cao trong máy ghi điện tim, ở Hình 3 nhiễu đã giảm so với hình

</div>

×