Bài 3: Tích chập, phép biến đổi Fourier và lọc tín hiệu I.. Phép biến đổi Fourier và lọc tín hiệu bằng bộ lọc Butterworth bậc 51... xlabel''''f Hz'''';ylabel''''|Xf|'''';Câu hỏi 1: Chạy chương trình
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
BÀI BÁO CÁO THỰC HÀNHNguyễn Huy Văn – MSSV: 20222436
Ngành Kỹ thuật điều khiển và tự động hóa
Giảng viên hướng dẫn: TS Nguyẽn Duy Long Họ và tên:
MSSV: Tên học phần: Mã học phần: Mã lớp học: Kỳ học:
Nguyễn Huy Văn 20222436 Tín hiệu và hệ thống EE2000
736400 2023.1
Trang 2HÀ NỘI, 11/2023
Trang 31: 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)
1) function x=us(t) x=(sign(t)+1)/2;2) function x=ur(t)
x=t.*us(t); 3)
a) t=-10:0.01:10;
plot(t-2.5*us(t), ,'r' 'LineWidth',2)grid on axis tight;
b) t=-10:0.01:10;
plot(t+5,3*ur(t), ,'g' 'LineWidth',2)grid on
axis tight;
c) t=-10:0.01:10;
y=2*ur(t+2.5)-5*ur(t)+3*ur(t-2)+us(t-4);plot(t,y, ,'b' 'LineWidth',2)
grid onaxis tight;
d) t=-10:0.01:10;y=sin(t).*(us(t+3)-us(t-3));plot(t,y, ,'y' 'LineWidth',2)grid on
axis tight;
Trang 4a) t=-10:0.01:10;
y=0.5*ur(t+4)-ur(t)+0.5*ur(t-4);plot(t,y, ,'r' 'LineWidth',2)gird on
axis tight;
b) t=-10:0.01:10;
y=us(t+8)+0.5*ur(t+4)-ur(t)+0.5*ur(t-4)-us(t-8);plot(t,y, ,'b' 'LineWidth',2)
gird onaxis tight;
II) Tín hiệu chẵn lẻ
1) function [ye,yo] = evenodd(y)% even/odd decomposition% y: analog signal
% ye, yo: even and odd components% [ye,yo] = evenodd(y)
yr = fliplr(y);ye = 0.5*(y + yr);yo = 0.5*(y - yr);2) t=-10:0.01:10;
plot(t,y,'r','linewidth',2);
Trang 5grid on;axis tight;subplot(312)
plot(t,ye,'g','linewidth',2);axis tight;
plot(t,yo,'b','linewidth',2);axis tight;
III) Tổng của các tín hiệu tuần hoàn
a) t=-10:0.01:10;a = pi/10;
disp('Ham tuan hoan')
b) t=-10:0.01:10;a = pi/10;
disp('Ham tuan hoan')
III) Năng lượng, công suất của một tín hiệu
syms ;x
disp(P)
Trang 6IV) Phép dịch, phép co dãn và phép đảo tín hiệu
1) t=-10:0.01:10;x=exp(-abs(t));hold on
plot(t,x,'r','linewidth',2)hold on
plot(t-2,x,'g','linewidth',2)hold on
plot(t+2,x,'b','linewidth',2)grid on
axis tight;
2) t=-10:0.01:10;x=exp(-abs(t));hold on
plot(t,x,'r','linewidth',2)hold on
plot(0.5*t,x,'g','linewidth',2)hold on
plot(2*t,x,'b','linewidth',2)grid on
axis tight;
3) t=-10:0.01:10;x=exp(-abs(t));hold on
plot(t,x,'r','linewidth',2)hold on
plot(-t,x,'g','linewidth',2)grid on
axis tight;
Trang 7Bài 2: Tín hiệu âm nhạc
Question 1:
song = [C C G G A A G Si Si F F E E D D C Si Si];sound(song,Fs)
Question 2:
a) t = linspace(0,1,44100); F=494;
C = [0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.0260 0.0065 0.0020];Th = [-2.13 1.67 -2.545 0.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) t = linspace(0,1,44100); F=494;
C = [0.1155 0.3417 0.1789 0.1232 0.06780.0473 0.0260 0.0065 0.0020];
Th= [2.13 1.67 2.545 0.661 2.039 2.16 1.0467 1.858 -2.39];
-Th'*ones(1,44100));plot(t(1:200),x(1:200))axis tight;
Trang 8x=C*cos(2*pi*F*(1:9)'*t-grid on;
c) t = linspace(0,1,44100); F=494;
C = [0.1155 0.3417 0.1789 0.1232 0.0678 0.0473 0.0260 0.0065 0.0020];Th= zeros(1,9);
axis tight;grid on;
Trang 9
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.Thay thế lệnh waveread bằng audioread và giữ lại các lệnh như cũ:
[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 51 Tự tạo các hàm của bạn
* Chương trình tính ảnh Fourier của tín hiệu:
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; no=n2;
else; X(1:n2-1)=Xf(n2+1:N); X(n2:N)=Xf(1:n2);
Trang 10f=(-n2+1)*df:df:(n2-1)*df; end
* Chương trình tính ảnh Fourier ngược:
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); 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
2 Lọc tín hiệu điện tim
Vẽ đồ thị tín hiệu điện tim và phổ của nó:
load hum3hb;
x=hb; tf=(size(x,2)-1)*T; t=0:T:tf;
[f,Xf]=FourierTransform(t,hb); figure(1);
subplot(2,1,1) plot(t,x,'linewidth',1); grid; axis([0 2.5 -0.5 1.5]); xlabel('t (sec)');ylabel('x(t)'); subplot(2,1,2)
plot(f,abs(Xf),'linewidth',1); grid; axis([-150 150 0 0.12]);
Trang 11xlabel('f (Hz)');ylabel('|X(f)|');
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.
(Hình 1)
Trang 12Câ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.
(Hình 2)
Trang 13Câ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.
(Hình 3)