Thiết kế lọc số và mã hóa băng con - Thiết kế bộ lọc chuyên dụng - Pdf 13

LỜI MỞ ĐẦU
Xử lý tín hiệu số (Digital Signal Processing – DSP) là một lĩnh vực mới, đã phát
triển mạnh mẽ về mặt lý thuyết và công nghệ. Ngày nay, nó đã trở thành môn học
không thể thiếu cho nhiều ngành học về khoa học và kỹ thuật. Các thuật toán của nó
đã mang lại những thuận tiện cho công nghệ và ứng dụng mới, nhất là các lĩnh vực về
kỹ thuật điện tử và điều khiển tự động.
Phép xử lý cơ bản nhất của DSP là lọc, và các hệ thống được đề cập đến nhiều nhất
trong xử lý tín hiệu số là các bộ lọc số (Digital Filter).
Nếu xét về đáp ứng xung có thể chia các bộ lọc số thành 2 loại chính là bộ lọc có
đáp ứng xung hữu hạn FIR (Finite Impulse Response) còn gọi là lọc không đệ quy, và
bộ lọc có đáp ứng xung vô hạn IIR (Infinte Impulse Response) còn gọi là lọc đệ quy.
Xét về đáp ứng tần số biên độ có thể chia các bộ lọc, FIR hay IIR, thành 4 loại cơ
bản: thông thấp, thông cao, thông dải và chắn dải. Các bộ lọc này có thể được thiết kế
bằng những phương pháp sau đây: Phương pháp cửa sổ (Window Design Techniques),
Phương pháp lấy mẫu tần số (Frequency Sampling Design Techniques) và Phương
pháp xấp xỉ tối ưu cân bằng gợn sóng (Optimal Equiripple Design Techniques). Mỗi
phương pháp đều có những đặc điểm và ưu khuyết điểm riêng.
Với tiểu luận này, nhóm em gồm Lê Anh Khoa và Nguyễn Văn Thông xin phép
được trình bày bài toán “ Tìm hiểu bộ lọc chuyên dụng” có đáp ứng xung hữu hạn
FIR.
Nội dung tiểu luận được chia thành 2 phần:
Phần 1. Cơ sở lý thuyết bộ lọc có đáp ứng xung hữu hạn FIR
Phần 2. Các bộ lọc chuyên dụng có đáp ứng xung hữu hạn và chương trình chạy
mô phỏng
Chúng em xin trân trọng cảm ơn Thầy TS. Ngô Văn Sỹ đã tận tình giảng dạy và
hướng dẫn để chúng em có thể hoành thành tốt tiểu luận này. Phần lớn nội dung trình
bày ở báo cáo này được lấy từ bài giảng, tài liệu tham khảo do thầy cung cấp.
Trong quá trình thực hiện tiểu luận, tuy đã hết sức cố gắng song không tránh khỏi
những sai sót. Rất mong nhận được sự góp ý của Thầy, các bạn học viên cùng lớp để
nội dung của tiểu luận được hoàn chỉnh hơn.
Đà Nẵng, ngày 16 tháng 03 năm 2013

2
0
)(
)(
log20
max
10
≥−=
ω
ω
j
j
eH
eH
dBscale
(1.1)
Phương pháp này được là một phương pháp phổ biến nhất trong thực tế và được sử
dụng cho cả bộ lọc FIR và IIR.
Trong những
phần tiếp sau đây, để mô tả các chỉ tiêu của bộ lọc chúng ta sẽ xem xét việc thiết kế
một bộ lọc thông thấp như một ví dụ cơ sở để thiết cho bộ lọc FIR.
1.2. Các chỉ tiêu của bộ lọc FIR
Trên hình (1.1) là mô tả các chỉ tiêu của bộ lọc FIR thông thấp (Low Pass Filter):
1.2.1.Các chỉ tiêu tuyệt đối
•Band [0, w
p
] được gọi là dải thông, và δ
1
là dung sai (gợn sóng) được chấp
nhận trong đáp ứng dải thông lý tưởng.

•.
•Có thể sử dụng DFT để thực hiện
•Mặc dầu vậy dải đã cho là dải thông hay dải chắn chỉ là tương đối có thể đảo
lại ( minor issue).
Các thuận lợi của đáp ứng pha tuyến tính
Đáp ứng pha là tuyến tính (linear phase response) mang lại những thuận lợi sau:
• Bài toán thiết kế chỉ gồm các phép tính số học thực chứ không cần phép tính số
học phức
• Bộ lọc pha tuyến tính không có méo trễ nhóm và chỉ bị trễ một khoảng không
đổi.
• Đối với bộ lọc có chiều dài M (hoặc bậc M-1) số phép toán có bậc M/2 như đã
khảo sát trong thi hành pha tuyến tính.
1.3. Cấu trúc của bộ lọc FIR
Cho h(n), n=0,1,…,M-1 là đáp ứng xung có chiều dài M. Thì hàm truyền hệ thống
là một bộ lọc đáp ứng xung hữu hạn với hàm hệ thống có dạng:


=
−−


=+++=
1M
0n
n
n
M1
1M
1
10

δ
p
R
(≈0) for passband



−≤≤
=
else
Mnb
nh
n
0
10
)(
(1.5)
Và phương trình sai phân là:
)1()1()()(
110
+−++−+=

Mnxbnxbnxbny
M

(1.6)
Đây chính là tích chập tuyến tính của các dãy hữu hạn.
Bậc của bộ lọc là M-1, trong khi chiều dài của bộ lọc là M (bằng với số lượng các
hệ số). Các cấu trúc bộ lọc FIR luôn luôn ổn định, và tương đối đơn giản hơn so với
các cấu trúc bộ lọc IIR. Hơn thế nữa, các bộ lọc FIR có thể được thiết kế để có một

1M
1
0
1
0
M1
1M
1
10
z
b
b
z
b
b
1bzbzbb)z(H 
(1.8)


=
−−
++=
K
1k
2
2,k
1
1,k0
)zBzB1(b
trong đó

-
1
b
3
z
-
1
b
4
y(n)
x(n)
Hình (1.2) Cấu trúc lọc FIR dạng trực tiếp
1.3.3. Cấu trúc dạng pha tuyến tính
Đối với các bộ lọc chọn tần, người ta mong muốn có đáp ứng pha là hàm tuyến
tính theo tần số, nghĩa là:
αω−β=∠
ω
)e(H
j
π≤ω≤π−
(1.9)
Trong đó :
0=β
hoặc
2
π
±

α
là một hằng số.

1
y(n)
x(n)
B
2,1
B
3,1
b
0
B
1,2
z
-
1
z
-
1
z
-
1
B
2,2
B
3,2
Hình (1.3) Cấu trúc lọc FIR dạng ghép tầng
1.4. Các đặc tính của bộ lọc FIR pha tuyến tính
Trong phần này chúng ta sẽ thảo luận về hình dạng của đáp ứng xung, đáp ứng tần
số trong hàm hệ thống của các bộ lọc FIR pha tuyến tính.
Cho h(n), trong đó 0 ≤ n ≤ M – 1, là đáp ứng xung có chiều dài M thì hàm truyền hệ
thống là:

π≤ω<π−αω−=∠
ω
,)e(H
j
(1.14)
trong đó: α là một hằng số trễ pha. Ta đã biết rằng h(n) phải đối xứng, nghĩa là:
2
1M
,1Mn0),n1M(h)n(h

=α−≤≤−−=
(1.15)
Do đó h(n) là đối xứng theo α, là chỉ số đối xứng. Có hai kiểu đối xứng:
• M lẻ: Trong trường hợp này,
2
1M −

là một số nguyên. Đáp ứng xung
được mô tả trong (hình 1.5) dưới đây:
• M chẵn: Trong trường hợp này,
2
1M −

không phải là một số nguyên.
Đáp ứng xung được mô tả bằng (hình 1.6) dưới đây:
7
Hình 1.5 Đáp ứng xung đối xứng, M lẻ
Ta cũng có bộ lọc FIR pha tuyến tính loại hai nếu ta yêu cầu đáp ứng pha
( )
ω

±=β


(1.18)
Điều này có nghĩa rằng đáp ứng xung h(n) là phản đối xứng (antisymmetric). Chỉ số
đối xứng vẫn là
2
1M −

. Một lần nữa chúng ta lại có 2 kiểu, cho M lẻ và M chẵn.
• M lẻ: Trong trường hợp này,
2
1M −

là một số nguyên. Đáp ứng xung
được mô tả bằng (hình 1.7) dưới đây:
8
Hình 1.6 Đáp ứng xung đối xứng, M chẵn
Hình 1.7 Đáp ứng xung phản đối xứng, M lẻ
Lưu ý rằng mẫu h(α) tại
2
1M −

phải bằng 0, nghĩa là,
0
2
1M
h =



j


π
±=β=
αω−βωω
(1.19)
trong đó H
r
(e
j
ω
) là hàm đáp ứng độ lớn chứ không phải là hàm đáp ứng biên độ. Đáp
ứng độ lớn là một hàm thực, có thể vừa dương vừa âm, không giống đáp ứng biên độ
luôn luôn dương. Đáp ứng pha kết hợp với đáp ứng biên độ là một hàm không liên
tục, trong khi kết hợp với đáp ứng độ lớn là một hàm tuyến tính liên tục.
• Bộ lọc FIR pha tuyến tính Loại-1 ( Type 1 ): Đáp ứng xung đối xứng, M lẻ:
Trong trường hợp này
0=β
,
2
1M −

là một biến nguyên, và
( ) ( )
nMhnh −−= 1
,
1Mn0 −≤≤
, thì ta có thể chứng tỏ rằng:
( )


=
2
1M
h0a
với mẫu ở chính giữa
(1.21)
( )








= n
M
hna
2
1
2
với
2
3M
n1

≤≤

• Bộ lọc FIR pha tuyến tính Loại-2 ( Type 2 ): Đáp ứng xung đối xứng, M chẵn















−ω=

(1.22)
trong đó:
( )






−= n
2
M
h2nb
với

, ta có
( )
0
2
1
ncosnb)(H
2/M
1n
r
=












−π=π

=
mà không cần quan tâm
đến b(n) hoặc h(n). Do đó chúng ta không thể sử dụng loại này (h(n) đối xứng, M
chẵn) đối với bộ lọc thông cao hoặc bộ lọc chắn dải.
• Lọc FIR pha tuyến tính Loại-3 ( Type 3 ): Đáp ứng xung phản đối xứng, M
lẻ:






ω








π

=
ω






ω=

2
1M
2
j

=
ω=ω
2/1M
0n
r
nsinncH
(1.27)
Lưu ý: Tại
0=ω

π=ω
, ta có
( )
0H
r

mà không cần quan tâm c(n) hoặc
h(n). Hơn thế nữa,
je
2
j
=
π
, điều đó có nghĩa là
( )
ω
r
jH
là thuần ảo. Do đó, loại bộ lọc
này không thích hợp đối với việc thiết kế bộ lọc thông thấp hoặc thông cao. Tuy






π
=
ω


















−ω=

2
1M

=












−ω=ω
2/M
1n
r
2
1
nsinnd)(H
(1.30)
Lưu ý: Tại
π=ω
,
0)0(H
r
=

je
2

B2 = [.2 .38 .4 .55 .562 .585 .6 .78];
B3 = [0.79:0.01:1];
A1 = .5+sin(2*pi*7.5*B1)/4; % Sinusoidal section
A2 = [.5 2.3 1 1 2 2 1 1]; % Piecewise linear section
A3 = .2+18*(1-B3).^2; % Quadratic section
F = [B1 B2 B3];
A = [A1 A2 A3];
d = fdesign.arbmag('N,F,A',N,F,A);
Hd = design(d,'freqsamp');
fvtool(Hd,'MagnitudeDisplay','Zero-phase','DesignMask','on')
set(gcf,'Color','white')
Hình 2.1
Trong ví dụ đầu tiên này, các điểm tần số chuẩn hóa được lấy đều trong khoảng từ 0
đến 1. Khi chúng ta chỉ định tần số là âm thì kết quả bộ lọc là phức. Ví dụ dưới đây sẽ
đi mô hình hóa bộ lọc băng dải RF phức. Chú ý rằng ta sử dụng cửa sổ Kaiser để làm
giảm ảnh hưởng của hiện tượng Gibbs
Chương trình:
load cfir.mat;
N = 200;
d = fdesign.arbmag('N,F,A',N,F,A);
design(d,'freqsamp', 'window' ,{@kaiser,20});
set(gcf,'Color','white')
Kết quả:
13
Hình 2.2
2.1.2. Mô hình hóa các chức năng làm mượt (Smooth) với bộ lọc FIR cân bằng
gợn sóng
Thuật toán cân bằng gợn sóng thường được sử dụng để thực hiện các chức năng làm
mượt. Trong ví dụ này ta sẽ tạo ra bộ lọc FIR bậc 30. Chúng ta sẽ tăng trọng số W
một cách tỷ lệ đến biên độ mong muốn để bộ lọc đạt chất lượng tốt tại các thành phần

F1 = F(1:2); % Passband
F2 = F(3:end); % Stopband
% F(2:3)=[.25 .3] % Transition band
A1 = A(1:2);
A2 = A(3:end);
15
W1 = W(1:2);
W2 = W(3:end);
d = fdesign.arbmag('N,B,F,A',N,B,F1,A1,F2,A2);
Hd(2) = design(d,'equiripple','B1Weights',W1,'B2Weights',W2);
hfvt = fvtool(Hd);
legend(hfvt, 'Single-Band Design', 'Multi-Band Design');
set(gcf,'Color','white')
Kết quả:
Hình 2.4
Chúng ta nhận thấy lợi thế rõ ràng của cách tiếp cận đa băng. Bằng cách giảm các
hạn chế trong vùng chuyển tiếp, chúng ta cho phép thuật toán cân bằng gợn sóng tập
trung giải quyết các gợn (ripples) trong dải thông và suy hao trong dải chắn.
2.2. Thiết kế bộ lọc có pha và biên độ tùy ý
2.2.1 Mô hình bộ lọc FIR
Trong ví dụ đầu tiên này, chúng ta sẽ so sánh một vài kỹ thuật thiết kế bộ lọc FIR để
mô hình hóa bộ lọc thông dải RF phức có pha và biên độ dựa trên dải Nyquist hoàn
chỉnh
Chương trình:
load cpxbp.mat
f=fdesign.arbmagnphase('N,F,H',100,F1,H1);
Hd = design(f,'allfir');
hfvt = fvtool(Hd, 'Color','w');
legend(hfvt,'Equiripple', 'FIR Least-Squares','Frequency Sampling',
16

Hd(2) = design(f,'equiripple');
close(hfvt(1));close(hfvt(2));
hfvt = fvtool(Hd, 'Color', 'w');
legend(hfvt,'Low Group Delay', 'Linear Phase', 'Location', 'NorthEast')
hfvt(2) = fvtool(Hd,'Analysis','grpdelay','Color','w');
legend(hfvt(2),'Low Group Delay', 'Linear Phase', 'Location', 'NorthEast')
axis([.3 .56 0 35])
Kết quả:
18
Hình 2.7
Hình 2.8
set(hfvt(2),'Analysis', 'phase','Color','w');
axis([.3 .56 -30 10])
Kết quả:
19
Hình 2.9
2.3. Thiết kế bộ lọc thông dải phức
2.3.1 Thiết kế bộ lọc FIR đơn tầng đơn tốc
Trong trường hợp thiết kế một bộ lọc FIR đơn tốc, chúng ta chỉ đơn giản là nhân
một tập hợp các hệ số với một lũy thừa phức. Trong ví dụ sau đây, chúng ta sẽ luân
phiên các giá trị zeros của bộ lọc Nyquist thông thấp bằng giá trị tần số chuẩn hóa 0.6
Chương trình:
Hlp = design(fdesign.nyquist(8)); % Lowpass prototype
N = length(Hlp.Numerator)-1;
Fc = .6; % Desired frequency shift
j = complex(0,1);
Hbp = copy(Hlp);
Hbp.Numerator = Hbp.Numerator.*exp(j*Fc*pi*(0:N));
hfvt = fvtool(Hlp,Hbp,'Color','white');
legend(hfvt,'Lowpass Prototype','Complex Bandpass','Location','NorthWest')

Hdbp.Stage(2).Numerator = Hdbp.Stage(2).Numerator.*exp(j*Fc2*pi*(0:N2));
Hdbp.Stage(3).Numerator = Hdbp.Stage(3).Numerator.*exp(j*Fc3*pi*(0:N3));
set(hfvt,'Filters',[Hd,Hdbp])
legend(hfvt,'Lowpass Prototype','Complex Bandpass','Location','NorthWest')

Kết quả:
Hình 2.11
Tương tự đối với bộ interpolator, độ dịch tần số mong muốn được áp dụng cho tầng
cuối cùng. Các tầng trước cũng phải chia theo tỷ lệ giữa dộ dịch tần số mong muốn
với yếu tố interpolation tích lũy tương ứng
Chương trình:
f = fdesign.interpolator(16,'nyquist',16,'TW,Ast',.01,75);
Hi = design(f,'multistage');
N1 = length(Hi.Stage(1).Numerator)-1;
N2 = length(Hi.Stage(2).Numerator)-1;
22
N3 = length(Hi.Stage(3).Numerator)-1;
L12 = Hi.Stage(2).InterpolationFactor; % Interpolation factor between
stage 1 and 2
L23 = Hi.Stage(3).InterpolationFactor; % Interpolation factor between
stage 2 and 3
Fc = .4; % Desired frequency shift
Fc3 = Fc; % Frequency shift applied to the
third stage
Fc2 = Fc*L23; % Frequency shift applied to the
second stage
Fc1 = Fc*L12*L23; % Frequency shift applied to the
first stage
Hibp = copy(Hi);
Hibp.Stage(1).Numerator = Hibp.Stage(1).Numerator.*exp(j*Fc1*pi*(0:N1));


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status