Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Chương 6

Phần 1. Bài tập tính toán

Sử dụng bài tập 6.1-6.12 trong sách giáo khoa (trang 212-214)

Bổ sung:

6.13 a) Hãy viết biểu thức mô tả đáp ứng xung đơn vị h 1(n) của một bộ lọc FIR
thỏa mãn:

+ là bộ lọc thông thấp có tần số góc cắt là ωc= π/8 (rad)

+ là bộ lọc nhân quả

+ là bộ lọc có pha tuyến tính

+ là bộ lọc được thiết kế bởi phương pháp cửa sổ, cửa sổ được sử dụng là Hanning

+ là bộ lọc có số hệ số của bộ lọc là 128

b) Một bộ lọc FIR khác có đáp ứng xung đơn vị được xác định bởi
h2(n)=2.cos(3nπ/8).h1(n). Đây là bộ lọc loại gì (thông thấp, thông cao,thông dải,
triệt dải,...) và xác định dải thông của bộ lọc này.

Gợi ý:

Bộ lọc thứ 2 là bộ lọc thông dải có dải thông là


6.14 Thiết kế bộ lọc có đáp ứng xung hữu hạn (FIR), pha tuyến tính, nhân quả,
thông thấp có 30 hệ số, tần số cắt là c = sử dụng phương pháp của sổ với 2 loại
cửa sổ sau:

- Cửa sổ hình chữ nhật

- Cửa sổ Hamming.

Gợi ý:
N ±1
±j w
2
Gd() = D() e

{
29
±j
2
w p
e |w|≤
4
p
0 <|w|≤ p
= 4

p 29
4 ±j w
1 2 jwn
dw

2 p ±p
e e

 gn = 4

(
jw n±
29
2
) p
1 e 4
| ±p

=
2p
j n±
29
2 (4 )

sin
p
4
n±( 29
2 )
= (
p n±
29
2 )
1
= 4 sinc [(p
4

29
2 )]

2, Với cửa sổ hình chữ nhật

1 0≤n≤29
hn = wn gn với wn = 0 neukhac .
{
Ta có:

1
hn = sin c
4
p
4 (

29
2 ) 0≤n≤29

3, Với cửa sổ Hamming, ta có:

[
hn = . 54±. 46 cos
2 pn 1
29 4 ]
sin c
p
4
n±(29
2 ) 0≤n≤29

6.15 Thiết kế bộ lọc FIR có pha tuyến tính, thông cao, nhân quả, có 61 hệ số và tần
2p
số cắt là c =  3 sử dụng phương pháp cửa sử dụng:

- Cửa sổ hình chữ nhật

- Cửa sổ Hamming.
{
2p
e± j30 w ≤|w|≤ p
3
2p
0 |w|<
Gd() = 3

p
1
∫ Gd ( w)e jwn dw
 gn = 2 p ±p


tuần hoàn với chu kỳ = 2

2p
1
∫ Gd (w )e jwn dw
= 2p 0

4p
3
1

2 p 2p
e
± j30 w jwn
e dw
= 3

4p
jw(n±30)
e
|3
2 pj(n±30) 2 p
= 3

1
¿¿
= 2 pj ( n±30 )

1
e jp (n±30) ¿ ¿
= 2 pj ( n±30 )
1 p
(±1)n 2 jsin (n±30 )
= 2 pj(n±30 ) 3

1 p
(n±30)
= (–1)n 3 sinc 3
1 p
hn =(±1 )n sin c ( n±30 ) 0≤n≤60
Với cửa sổ hình chữ nhật, ta có: 3 3

Với của sổ Hamming, ta có :

[
hn = . 54±. 46 cos
2 pn
60 ] 1 p
(±1)n sin c ( n±30)
3 3
0≤n≤60

Bài 6.16 Trong 3 loại cửa sổ chữ nhật, Hann, và Blackman, nếu đều được dùng để
thiết kế cùng 1 bộ lọc số FIR với cùng chiều dài bộ lọc như nhau thì:

(a) Bộ lọc nào có dải chuyển tiếp hẹp nhất?

(b) Bộ lọc nào có độ suy hao dải triệt tốt nhất?

Bài 6.17 Hãy thiết kế một bộ lọc FIR thông thấp thỏa mãn:

Dải thông 10kHz,

Dải triệt 11kHz, có độ suy hao 50dB,

Tần số lấy mẫu 44kHz

Hãy xác định đáp ứng xung đơn vị h(n) ,và đặc trưng tần số pha của hệ thống

Bài 6.18

Cho bộ lọc thông thấp tương tự có các đặc tả:

Dải chuyển tiếp [Fpass; Fstop] = [4kHz; 5kHz]

Độ gợn sóng trong dải thông: δpass = 0,0144


Độ gợn sóng trong dải triệt: δstop = 0,0032

Biết tần số lấy mẫu Fs = 20kHz, hãy

a) Tính đáp ứng xung của bộ lọc FIR theo phương pháp cửa số có đặc tả xấp xỉ
bộ lọc tương tự trên.
b) Tính đáp ứng xung của bộ lọc trong câu a) khi bộ lọc là nhân quả.
c) Tín hiệu: x(t) = 2 sin(4100πt) + 7 sin(8200πt) được lấy mẫu với tần số lấy
mẫu Fs = 20kHz, thu được tín hiệu x(n). Cho tín hiệu x(n) tới bộ lọc FIR vừa
thiết kế trong câu a). Nhận xét về thành phần biên độ và tần số của tín hiệu
lối ra của bộ lọc.
Gợi ý

Phần 2. Bài tập mô phỏng Matlab

Bài 1
% chuong 9 bai 1
% Thiet ke bo loc LPF tan so cat 250 Hz, Fs=1 KHz
% Chieu dai bo loc L=21
% su dung cac cua so chu nhat, tam giac, hanning, hamming
clear;clc;close all;
L=51;
N=L-1;
Fc=250; % Hz
Fs=1000; % Hz
fc=Fc/Fs;
h_cn=fir1(N,fc);
h_tg=fir1(N,fc,bartlett(L));
h_hann=fir1(N,fc,hann(L));
[H_cn,w]=freqz(h_cn,1);
[H_tg,w]=freqz(h_tg,1);
[H_hann,w]=freqz(h_hann,1);
plot(w,abs(H_cn),w,abs(H_tg),w,abs(H_hann));
axis tight;
xlabel('omega');ylabel('Dap dung tso bien do');
legend('chu nhat','tam giac', 'hanning');

Bài 2
% Thiet ke bo loc thong thap tan so dai thong 1500Hz,
% Tan so dai triet 2000Hz,
% gon song dai thong 0.01,
% gon song dai triet 0.1,
% tan so lay mau 8000Hz:
clear;clc;close all;
[n,fo,mo,w] = firpmord( [1500 2000], [1 0], [0.01 0.1], 8000 );
b = firpm(n,fo,mo,w);
[H,w]=freqz(b,1);
plot(w,abs(H));

Bài 3

Tải file wav: https://www.dropbox.com/s/qqzfgciyehl56ig/rawecg.wav?dl=0


1/ vẽ tín hiệu
2/ Phân tích phổ tín hiệu

3/ thiết kế bộ lọc FIR lọc đi tần số 50 Hz

4/ vẽ tín hiệu đã lọc

5/ Phân tích phổ tín hiệu đã lọc

clear;clc;close all;
[y, Fs] = wavread('rawecg.wav'); %  In new versions of MATLAB wavread is no longer supported.
t=0:1/Fs:(length(y)-1)/Fs;
plot(t,y(:,1));
figure;
plot(t,y(:,2));

eeg=y(1:100:end,1);
Fs=Fs/100;
X=fft(eeg,512);
f=linspace(0,Fs/2,256);
figure;
plot(f,abs(X(1:256)));

f = [0 40 48 52 55 Fs/2]/(Fs/2); a = [ 1 1 0 0 1 1];
b = firpm(108,f,a);
[h,w] = freqz(b,1,512);
figure;
plot(f,a,w/pi,abs(h))
legend('Ideal','firpm Design')

out=filter(b,1,eeg);
t=0:1/Fs:(length(out)-1)/Fs;
figure
plot(t,out);

X=fft(out,512);
f=linspace(0,Fs/2,256);
figure;
plot(f,abs(X(1:256)));

f = [0 10 15 Fs/2]/(Fs/2); a = [ 1 1 0 0 ];
b = firpm(108,f,a);
[h,w] = freqz(b,1,512);
figure;
plot(f,a,w/pi,abs(h))
legend('Ideal','firpm Design')
out2=filter(b,1,out);
figure
plot(t,out2);

Bài 4. Giải thích code


clear;clc;close all;
[n,fo,mo,w] = firpmord( [.2 .3], [1 0], [0.01 0.001], 1);
n=n+2;
h = firpm(n,fo,mo,w);
[H,w]=freqz(h,1);
f=w/(2*pi);
plot(f,abs(H));

figure;
plot(f,abs(H));
axis([0 0.2 1-0.015 1.015])
ylabel('H(w)');

figure;
plot(f,abs(H));
axis([.3 .5 -0.0015 .0015])
xlabel('tan so so');

% bac uoc luong theo cong thuc


n
n2=(-10*log10(0.01*0.001)-13)/(2.324*0.1*2*pi)

Bài 5. Giải thích code

clear;clc;close all;
F=[0 .1 .2 1];A=[1 1 0 0];
M=40; % bac bo loc
h=firpm(M,F,A);
subplot(311);stem(h);
subplot(312);H=abs(freqz(h));
plot(linspace(0,1,length(H)),H);
hold on;plot(F,A,'r-.');legend('thuc te','mong muon')
grid on;subplot(313)
plot(unwrap(angle(freqz(h))));
%plot(angle(freqz(h))*180/pi);
%axis([0 500 -180 180]);

f=0.03;n=0:100;x=sin(2*pi*f*n);
y=filter(h,1,x);
figure();subplot(211);
plot(n,x,n,y);legend('vao','ra')

f=0.15;x=sin(2*pi*f*n);
y=filter(h,1,x);subplot(212);
plot(n,x,n,y);legend('vao','ra')

Bài 6
% thiet ke bo loc thong thap co
% dai thong 100 Hz
% dai chuyen tiep 100 Hz - 120 Hz
% dai chan > 120
% tan so lay mau: 1000 Hz
% tin hieu lap lai sau Fs
% tin hieu lap lai sau w=2pi (f=1)
% tuc la tren mien tso -so
% chi can quan tam toi tso 0 -> 0.5
% tuc la khi thiet ke quan tam toi Fs/2=500 Hz
clear;clc;close all;
Fs=1000;
F=[0 100 120 Fs/2]/(Fs/2);
A=[1 1 0 0];
M=50; % bac bo loc
h=firpm(M,F,A);
subplot(311);stem(h);xlabel('so mau');
subplot(312);H=abs(freqz(h));
plot(linspace(0,Fs/2,length(H)),H);
xlabel('tan so - Hz');
grid on;subplot(313)
plot(linspace(0,Fs/2,length(H)),angle(freqz(h)));
xlabel('tan so - Hz');

% cho tin hieu 10 Hz di qua


f=10/Fs;
n=0:300;x=sin(2*pi*f*n);
y=filter(h,1,x);
figure();subplot(211);
plot(n/Fs,x,n/Fs,y);legend('vao','ra')
% cho tin hieu 150 Hz di qua
f=150/Fs;x=sin(2*pi*f*n);
y=filter(h,1,x);subplot(212);
plot(n/Fs,x,n/Fs,y);legend('vao','ra')
Bài 7. Khảo sát độ gợn sóng giải thông và dải triệt
clear;clc;close all;
[n,fo,mo,w] = firpmord( [.2 .3], [1 0], [0.01 0.001], 1);
n=n+1;
h = firpm(n,fo,mo,w);

%plot(abs(freqz(h,1)));

L=length(h);
f=0:.001:.5;
if 2*ceil(.5*L)-L>0
M=.5*(L-1)
nn=1:M;
for k=1:length(f)
H(k)=h(M+1)+2*sum(h(M+2:end).*cos(2*pi*f(k)*nn));
end
else
MM=(.5*L-1);
nn=MM+1:-1:1;
for k=1:length(f)
H(k)=2*sum(h(nn).*cos(2*pi*f(k)*([1:MM+1]-.5)));
end
end

figure;
plot(f,H);
xlabel('tan so so');
%matlab2tikz('firpm_lpf1.tikz');

figure;
plot(f,H);
axis([0 0.2 1-0.015 1.015])
ylabel('H(w)');
%matlab2tikz('firpm_lpf2.tikz');

figure;
plot(f,H);
axis([.3 .5 -0.0015 .0015])
xlabel('tan so so');
%matlab2tikz('firpm_lpf3.tikz');

% bac uoc luong theo cong thuc


n2=(-10*log10(0.01*0.001)-13)/(2.324*0.1*2*pi)

You might also like