Professional Documents
Culture Documents
Chapter 6
Chapter 6
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 được thiết kế bởi phương pháp cửa sổ, cửa sổ được sử dụng là Hanning
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 ý:
- 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
n±
29
2 )]
1 0≤n≤29
hn = wn gn với wn = 0 neukhac .
{
Ta có:
1
hn = sin c
4
p
4 (
n±
29
2 ) 0≤n≤29
[
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ổ 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
[
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ì:
Bài 6.17 Hãy thiết kế một bộ lọc FIR thông thấp thỏa mãn:
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
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 ý
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
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);
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');
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');
%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');