You are on page 1of 6

Cho tín hiệu :

x1(t)= 2sin(2300t), x2(t)= 4sin (2600t),


x3(t)= 2cos(2900t),x4(t)=3cos(21100t),
x(t)= x1(t) + x2(t) + x3(t)+x4(t)
Biểu diễn tín hiệu x(t) trên miền tần số.
- Thiết kế bộ lọc FIR với N=60 để lọc ra tín hiệu có tần số 300Hz và
1100Hz. Vẽ đồ thị mô phỏng phổ biên độ H(ej ) của bộ lọc.
- Biểu diễn tín hiệu sau lọc trên miền tần số.

f1=300;f2=600;f3=900;f4=1100;Fs=2400;
T=1/Fs;t=0:T:1;
x1=2*sin(2*pi*f1*t);
x2=4*sin(2*pi*f2*t);
x3=2*cos(2*pi*f3*t);
x4=3*cos(2*pi*f4*t);
figure(1)
subplot(221); plot(t,x1); title('tin hieu x1 theo mien thoi gian');axis([0,0.1,0.05,1]);
subplot(222); plot(t,x2); title('tin hieu x2 theo mien thoi gian');axis([0,0.1,0.05,1]);
subplot(223); plot(t,x3); title('tin hieu x3 theo mien thoi gian');axis([0,0.1,0.05,1]);
subplot(224); plot(t,x4); title('tin hieu x4 theo mien thoi gian');axis([0,0.1,0.05,1]);
figure(2)
x=x1+x2+x3+x4;
subplot(511);plot(t,x);title('th x trong mien thoi gian')
x_fft=fft(x);
subplot(512);plot(abs(x_fft));grid on;
title('tin hieu x trong mien tan so');
fc1=450;fc2=1000;N=60;
wn1=2*fc1/Fs; wn2=2*fc2/Fs;
b=fir1(N,[wn1 wn2],'stop');w=0:2*pi/511:pi;
h=freqz(b,1,w);
subplot(513);plot(w/pi,abs(h));
title('dap ung tan so cua bo loc');grid on
y=filter(b,1,x);
y_fft=fft(y);subplot(514);plot(abs(y_fft));
title('tin hieu sau loc y trong mien tan so');
subplot(515);plot(t,y);title('th y trong mien thoi gian');
//sử dụng cửa sổ tam giác
ws=0.5*pi;wp=0.7*pi;
delta=abs(ws-wp);wc=(ws+wp)/2;
M=ceil(6.2*pi/delta)+1;
n=[0:1:(M-1)];
hd=thongthap(wc,M);
w_bar=(bartlett(M))';
h=hd.*w_bar;
subplot(331);stem(n,w_bar);
title('Cua so tam giac');grid on;
xlabel('n');ylabel('w(c)');
subplot(332);stem(n,hd);
title('Dap ung xung li tuong');grid on;
xlabel('n');ylabel('hd(n)');
subplot(333);stem(n,h);
title('Dap ung xung thuc te');grid on;
xlabel('n');ylabel('h(n)');
w=0:pi/511:pi;
h1=freqz(h,1,w);
subplot(334);plot(w/pi,real(h1));
title('Phan thuc cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(335);plot(w/pi,imag(h1));
title('Phan ao cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(336);plot(w/pi,abs(h1));
title('Pho bien do');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(337);plot(w/pi,angle(h1));
title('Pho pha');grid on;
xlabel('\omega/\pi');ylabel('Pha do bang radian');
subplot(338);zplane(h,1);
title('Diem cuc-khong');grid on;
xlabel('Thuc');ylabel('Ao');
//sử dụng pp hamming
Viết hàm thông thấp trước
function hd=thongthap(wc,N)
alpha=(N-1)/2;
n=[0:1:(N-1)];
m=n-alpha+eps;
hd=sin(wc*m)./(pi*m);
sử dụng hamming như sau
wp = 0.2*pi;ws=0.4*pi;
deltaw=abs(ws-wp);
M=ceil(6.6*pi/deltaw)+1;
w_ham=hamming(M);
wc=(ws+wp)/2;
hd=thongthap(wc,M);
h=hd.*w_ham';
w=0:pi/511:pi;
h1=freqz(h,1,w);
plot(w/pi,abs(h1));grid on

đề bài cho h(n)=(-n-2)rect4(n-2)


*lưu ý:
Thông cao: hd=thongthap(pi,N)-thongthap(wc,N)
Chắn dải: hd=thongthap(pi,N)-thongthap(wc2,N)+thongthap(wc1,N)
Thông dải: hd=thongthap(wc2,N)-thongthap(wc1,N)
// vẽ hàm
Sử dụng hàm đơn vị:
function [x,n]=impseq(n0,n1,n2)
if((n0<n1)|(n0>n2)|(n1>n2))
end
n=[n1:n2];
x=[(n-n0)==0];
end
sử dụng hàm nhảy đơn vị:
function [x,n]=stepseq(n0,n1,n2)
if((n0<n1)|(n0>n2)|(n1>n2))
end
n=[n1:n2];
x=[(n-n0)>=0];
end
//hàm tích chập
function[y,ny]=conv_m(x,nx,h,nh)
nyb=nx(1)+nh(1);
nye(length(x))+nh(length(h));
ny=[nyb:nye];
y=conv(x,h);
//vẽ hàm như sau:
n=[-10:10];
h=-4*impseq(2,-10,10)-5*impseq(3,-10,10)-6*impseq(4,-10,10)-7*impseq(5,-
10,10);
plot(n,h);
title('ham dap ung xung h(n)');
grid on;
//biển diễn đầu vào đầu ra của hệ thống với x(n)=u(n-1) -20<=n<=20;
n=-20:20;
x=stepseq(1,-20,20);
h=-4*impseq(2,-20,20)-5*impseq(3,-20,20)-6*impseq(4,-20,20)-7*impseq(5,-
20,20);
figure(1)
subplot(2,1,1); stem(n,x);
title('tin hieu dau ra')
xbabel('n');ylabel('x(n)');
subplot(2,1,2); stem(n,h);
title('dap ung xung')
xbabel('n');ylabel('h(n)');
[y,ny]=conv_m(x,n,h,n)
figure(2)
stem(ny,y);
xbabel('n');ylabel('y(n)');
title('tin hieu dau ra');
//vẽ điểm cực, điểm không
num=[-4 -5 -6 -7];
den=[1];
zplane(num,den);
grid on;
title('toa do diem cuc-diem khong');
//ve dap ung xung
n=[-10,10];
h=impz(num,den,n+1);
stem(n,h);
//ve phan thưc, phan ao
w=-4*pi:8*pi/511:4*pi;
h1=freqz(num,den,w);
subplot(334);plot(w/pi,real(h1));
title('Phan thuc cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(335);plot(w/pi,imag(h1));
title('Phan ao cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(336);plot(w/pi,abs(h1));
title('Pho bien do');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(337);plot(w/pi,angle(h1));
title('Pho pha');grid on;
xlabel('\omega/\pi');ylabel('Pha do bang radian');
subplot(338);zplane(num,den);
title('Diem cuc-khong');grid on;
xlabel('Thuc');ylabel('Ao');
đề 1.Thiết kế bộ lọc số thông thấp theo phương pháp cửa sổ tam giác với các tham
số: p2=0,5, s2=0,7, Biết chiều dài cửa sổ được tính theo công thức M =
6,1/ - Biểu diễn đồ thị cửa sổ, đồ thị đáp ứng xung của bộ lọc; - Vẽ đồ thị mô
phỏng phần thực, phần ảo, phổ biên độ, phổ pha của H(ejω ) - Biểu diễn tọa các
điểm cực, điểm không trên mặt phẳng phức cho hàm truyền đạt H(Z)
viết code:
ws=0.5*pi;wp=0.7*pi;
delta=abs(ws-wp);wc=(ws+wp)/2;
M=ceil(6.2*pi/delta)+1;
n=[0:1:(M-1)];
hd=thongthap(wc,M);
w_bar=(bartlett(M))';
h=hd.*w_bar;
subplot(331);stem(n,w_bar);
title('Cua so tam giac');grid on;
xlabel('n');ylabel('w(c)');
subplot(332);stem(n,hd);
title('Dap ung xung li tuong');grid on;
xlabel('n');ylabel('hd(n)');
subplot(333);stem(n,h);
title('Dap ung xung thuc te');grid on;
xlabel('n');ylabel('h(n)');
w=0:pi/511:pi;
h1=freqz(h,1,w);
subplot(334);plot(w/pi,real(h1));
title('Phan thuc cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(335);plot(w/pi,imag(h1));
title('Phan ao cua h(e^{j/omega})');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(336);plot(w/pi,abs(h1));
title('Pho bien do');grid on;
xlabel('\omega/\pi');ylabel('Bien do');
subplot(337);plot(w/pi,angle(h1));
title('Pho pha');grid on;
xlabel('\omega/\pi');ylabel('Pha do bang radian');
subplot(338);zplane(h,1);
title('Diem cuc-khong');grid on;
xlabel('Thuc');ylabel('Ao');

You might also like