Trang 16 Nhận xét: • Pha dao động có sự thay đổi lệch hoàn toàn so tín hiệu gốc do dịch pha ban đầu.. 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 th
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ N ỘI VIỆN ĐIỆN - - BÁO CÁO THÍ NGHIỆM Tín Hiệu Và Hệ Thống Giảng viên hướng dẫn: Đặng Văn Mỹ Sinh viên thực hiện: Họ tên MSSV Mã lớp thí nghiệm Cao Hồng Lân 20212859 724985 Hà Nội 2022 Bài Tín hiệu liên tục I Hàm bước nhảy đơn vị (unit step) hàm dốc đơn vị (ramp) Bài 1: % y=ustep(t) function y=ustep(t,a); N=length(t); y=zeros(1,N); for i=1:N if t(i)>=a y(i)=1; end end Bài 2: % y=uramp(t) 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: + 5u(t-2) >> t=[-10:0.01:10]; >> x1=5*ustep(t,-2); >> plot(t,x1); >> xlabel('x'); >> ylabel('y'); + 3r(t+5) >> t=[-10:0.01:10]; >> x2=3*uramp(t,5); >> plot (t,x2); >> xlabel('x'); >> ylabel('y'); +y(t)=2r(t+2.5)-5r(t)+3r(t-2)+u(t-4) >> t=[-10:0.01:10]; >> y=2*uramp(t,2.5)-5*uramp(t,0)+3*uramp(t,-2)+ustep(t,-4); >> plot (t,y); >> xlabel('x'); >> ylabel('y'); +y(t)=sin(t)*[u(t+3)-u(t-3)] >> t=[-10:0.01:10]; >> y=sin(t).*[ustep(t,3)-ustep(t,-3)]; >> plot (t,y); >> xlabel('x'); >> ylabel('y'); Bài 4: +) >> t=[-10:0.01:10]; >> y=1/2*uramp(t,4)+1/2*uramp(t,-4)-uramp(t,0); >> plot(t,y); >> xlabel('x'); >> ylabel('y'); +) >> t=[-10:0.01:10]; >> y=1/2*uramp(t,4)+1/2*uramp(t,-4)-uramp(t,0)+ustep(t,8)-ustep(t,-8); >> plot(t,y); >> xlabel('x'); >> ylabel('y'); II Tín hiệu chẵn, lẻ Bài 1: function [ye,yo] = evenodd(y) yr = fliplr(y); ye = 0.5*(y + yr); yo = 0.5*(y - yr); end Bài 2: >> t=[-10:0.01:10]; >> y=2*uramp(t,2.5)-5*uramp(t,0)+3*uramp(t,-2)+ustep(t,-4); >> evenodd(y); >> yr=fliplr(y); >> ye=0.5*(y+yr); >> yo=0.5*(y-yr); >> plot(t,ye,'r-.','linewidth',1); >> hold on; >> plot(t,yo,'g ','linewidth',1); >> xlabel('t'); >> ylabel('y'); >> plot(t,y,'k','linewidth',1); >> legend('yo','ye','y'); >> grid on; III Tổng tín hiệu tuần hoàn a) >> t=[-10:0.01:10]; >> x1=1+1.5*cos((2*pi*pi*t)/10)-0.6*cos((4*pi*t)/10); >> plot(t,x1); >> xlabel('t'); Tín hiệu x1 khơng phải tín hiệu tuần hoàn b) >> t=[-10:0.01:10]; >> x2=1+1.5*cos(6*pi*t)-0.6*cos((4*pi*t)/10); >> plot(t,x2); >> xlabel('t'); >> ylabel('x2'); Tín hiệu x2 tín hiệu tuần hồn với chu kỳ T0=5 IV Năng lượng, công suất tín hiệu >> 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= (exp(-20)*(2*pi^2 + 1)*(exp(20) - 1))/(2*(4*pi^2 + 1)) >> P=int(f,t,-T/2,T/2)/T 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 phép đảo tín hiệu Bài 1: >> t=-10:0.01:10; >> x=exp(-(abs(t))); >> x1=exp(-(abs(t-2))); >> x2=exp(-(abs(t+2))); >> plot(t,x,'k','linewidth',2); >> hold on; >> plot(t,x1,'r','linewidth',2); >> plot(t,x2,'g','linewidth',2); >> legend ('x(t)','x(t-2)','x(t+2)'); >> title('x(t)=exp(-|t|)'); Bài 2: >> t=-10:0.01:10; >> x=exp(-(abs(t))); >> x1=exp(-(abs(t.*2))); >> x2=exp(-(abs(t./2))); >> plot(t,x,'k','linewidth',2); >> hold on; >> plot(t,x1,'r','linewidth',2); >> plot(t,x2,'g','linewidth',2); >> legend ('x(t)','x(2t)','x(0.5t)'); >> title('x(t)=exp(-|t|)'); Bài 3: >> t=-10:0.01:10; >> x=exp(-(abs(t))); >> x1=exp(-(abs(-t))); >> plot(t,x,'k','linewidth',2); >> hold on; >> plot(t,x1,'g ','linewidth',2); >> legend ('x(t)','x(-t)'); >> title('x(t)=exp(-|t|)'); Bài Hàm tuyến tính Bài Tần số nốt nhạc Hãy viết chương trình Matlab để chơi nhạc sau: CCGGAAG , FFEEDDC , % program to play the ABC song with pure tone % clc clear %clf reset % MUSICAL SCALE s=2^(1/12); R=0; % This is a rest A0=110; A0s=A0*s; B0=A0s*s; C0=B0*s; C0s=C0*s; D0=C0s*s; D0s=D0*s; E0=D0s*s; F0=E0*s; F0s=F0*s; G0=F0s*s; G0s=G0*s; A=220; As=A*s; B=As*s; C=B*s; % Middle C Cs=C*s; D=Cs*s; Ds=D*s; E=Ds*s; F=E*s; Fs=F*s; G=Fs*s; Gs=G*s; A2=440; A2s=A2*s; B2=A2s*s; C2=B2*s; C2s=C2*s; D2=C2s*s; D2s=D2*s; E2=D2s*s; F2=E2*s; F2s=F2*s; G2=F2s*s; G2s=G2*s; Fs=8000; t=0:1/Fs:0.6; t2=0:1/Fs:1.2; N=300; A=2; nC=A*exp(0.5*t).*cos(2*pi*C*t); nC2=A*exp(0.5*t2).*cos(2*pi*C*t2); nG=A*exp(0.5*t).*cos(2*pi*G*t); nG2=A*exp(0.5*t2).*cos(2*pi*G*t2); nA=A*exp(0.5*t).*cos(2*pi*A2*t); nF=A*exp(0.5*t).*cos(2*pi*F*t); nE=A*exp(0.5*t).*cos(2*pi*E*t); nD=A*exp(0.5*t).*cos(2*pi*D*t); nD2=A*exp(0.5*t2).*cos(2*pi*D*t2); x=[nC, nC, nG, nG, nA, nA, nG2, nF, nF, nE , nE, nD, nD, nC2]; sound(x,Fs); Bài 2: Tiến kèn Trumpet a.Xây dựng note B kèn Trumpet với số liệu cho trước clc clear all Fs = 44100; t = linspace(0,1,Fs); B = 494; F = [B 2*B 3*B 4*B 5*B 6*B 7*B 8*B 9*B]; C = [0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.026 0.0045 0.002]; Th = [-2.1299 1.6727 -2.5454 0.6607 -2.0390 2.1597 -1.0467 1.8581 2.3925]; x = C*cos(2*pi*F'*t Th'*ones(1,Fs)); sound(x,Fs); b Vẽ đồ thị x(t) vịng chu kì đầu Do tần số B 494HZ được lưu 44100 samples giây nên 44100 / 494 số samples chu kì Vậy chu kì có số samples xấp xỉ 268 >> plot(t(1:268),x(1:268)); >>grid on >> axis tight >>title("Tiếng kèn trumpet"); >> xlabel t >>ylabel x(t) c Lặp lại a b với góc pha = clc clear all Fs = 44100; t = linspace(0,1,Fs); B = 494; F = [B 2*B 3*B 4*B 5*B 6*B 7*B 8*B 9*B]; C = [0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.026 0.0045 0.002]; x = C*cos(2*pi*F'*t); sound(x,Fs); >> plot(t(1:268),x(1:268)); >> axis tight >> grid on >> title("Tiếng kèn trumpet với góc theta=0") >> xlabel t >> ylabel x(t) Nhận xét: • Pha dao động có thay đổi lệch hồn tồn so tín hiệu gốc dịch pha ban đầu • Biên độ có thay đổi nhỏ, tần số không bị ảnh hưởng Âm tương tự âm gốc Bài Tích chập, phép biến đổi Fourier lọc tín hiệu I Tích chập lọc tín hiệu âm lọc thơng thấp lý tưởng % doc file [data, Fs]=audioread('female_voice.wav'); data = data(:, 1)'; % Fs: tan so trich mau; Ts: Thoi gian trich mau Ts = 1/Fs; % phat lai am bi hong sound(data, Fs); % ham pause de nghe tach rieng am pause(2); % vecto thoi gian t = -10:Ts:10; % tan so cat cua bo loc la 1500Hz wb = 1500*2*pi; % bo loc thong thap ly tuong voi tan so cat wb % bien doi fourier: rect(w/wb) ht = wb/(2*pi)*sinc(wb*t/(2*pi)); % dau vao: du lieu, dap ung tuyen tinh, bat bien: ht % dau ra: y = tich chap cua du lieu voi ht y = conv(data, ht, 'same'); % chuan hoa am da xu ly tranh su cat xen y = y/max(abs(y)); % phat lai am da duoc xu ly sound(y,Fs); => Nhận xét: âm sau xử lý qua lọc thông thấp nghe trầm so ban đầu II Phép biến đổi Fourier lọc tín hiệu lọc Butterworth bậc Bài Tự tạo hàm bạn Bạn viết chương trình tạo hàm FourierTransform để tính ảnh Fourier tín hiệu Sau lưu vào với tên FourierTransform.m function [f,X]=FourierTransform(t,x) % computes the Fourier transform of signal x(t) % ns: length(x)=number signal points % dt: signal point spacing % % Transform computed with N points, where N=2*ns ns=size(x,2); dt=t(2)-t(1); N=2*ns; df=1/(N*dt); xp=zeros(1,N); nns=sum(t