Do đó, có vẻ thuận lợi hơn nếu giảm tần số lấy mẫu xuống giá trị gần với và thực hiện các thao tác xử lý tín hiệu ở tốc độ thấp hơn này.Các ứng dụng khác bao gồm nhu cầu nội suy tối ưu t
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
-BÁO CÁO CUỐI KỲ
ĐỀ TÀI : Quyển 2Chương 10: Sampling rate conversion
Lê Thanh Như 21129059
Lê Bùi Phương Thảo 19129048
Trang 2MỤC LỤC
CHƯƠNG 10: Chuyển đổi tỷ lệ lấy mẫu……… 3
GIỚI THIỆU 4
THIẾT KẾ BỘ LỌC FIR ĐỂ CHUYỂN ĐỔI TỶ LỆ LẤY MẪU 35
NỘI SUY SỐ NGUYÊN FIR 36
FIR INTEGER DECIMATION 48
DESIGN SPECIFICATIONS 55
CHUYỂN ĐỔI TỈ LỆ FIR HỢP LÝ 59
BỘ LỌC FIR VỚI NHIỀU BĂNG DẢI KHÁC NHAU 63
CẤU TRÚC BỘ LỌC FIR ĐỂ CHUYỂN ĐỔI TỈ LỆ LẤY MẪU .64
CẤU TRÚC BỘ LỌC FIR DẠNG TRỰC TIẾP .64
CẤU TRÚC BỘ LỌC POLYPHASE 69
Trang 3CHƯƠNG 10: Chuyển đổi tỷ lệ lấy mẫu
Trong nhiều ứng dụng thực tế của xử lý tín hiệu số, người ta phải đối mặt với vấn
đề thay đổi tốc độ lấy mẫu của tín hiệu, tăng hoặc giảm tín hiệu một lượng nào đó Quá trình chuyển đổi tín hiệu từ một tốc độ nhất định sang một tốc độ khác được gọi là chuyển đổi tốc độ lấy mẫu Đổi lại, các hệ thống sử dụng nhiều tốc độ lấy mẫu trong quá trình xử lý tín hiệu số được gọi là hệ thống xử lý tín hiệu số đa tốc độ Trong chương này,chúng tôi mô tả chuyển đổi tốc độ lấy mẫu và xử lý tín hiệu đa tốc độ trong miền kỹ thuậtsố
Ví dụ, hãy xem xét hệ thống được minh họa trong Hình 10.1 trong đó một tín hiệu tương tự được lấy mẫu bằng cách sử dụng tốc độ lấy mẫu mẫu/giây Tín hiệu số thu được x(n) sau đó được lọc bằng bộ lọc thông thấp (LPF) với tần số cắt là
Do đó, tín hiệu đầu ra có toàn bộ năng lượng trong dải 0 ≤ ω ≤ Theo định lý lấy mẫu, một tín hiệu như vậy có thể được biểu thị bằng tốc độ mẫu/giây thay vì tốc độ hiện tại của nó là Lưu ý rằng Tuy nhiên, nếu 0,5 thì Do đó, có vẻ thuận lợi hơn nếu giảm tần số lấy mẫu xuống giá trị gần với và thực hiện các thao tác xử lý tín hiệu ở tốc độ thấphơn này
Các ứng dụng khác bao gồm nhu cầu nội suy tối ưu trong chụp cắt lớp vi tính và thiết kế nhiều tầng hiệu quả của bộ lọc thông thấp băng hẹp
Trang 4Hình 10 1 Một hệ thống xử lý tín hiệu điển hình
GIỚI THIỆU
Ý tưởng về phép nội suy là một khái niệm rất quen thuộc với hầu hết chúng ta và
có nguồn gốc từ giải tích số Thông thường, phép nội suy được thực hiện trên một bảng
số đại diện cho một hàm toán học Một bảng như vậy có thể được in trong sổ tay hoặc được lưu trữ trong thiết bị bộ nhớ máy tính Phép nội suy, thường chỉ đơn giản là xấp xỉ tuyến tính (hoặc đường thẳng), tạo ra một lỗi gọi là lỗi nội suy Sự khác biệt chính giữa phép nội suy trong xử lý tín hiệu số và phép nội suy trong phân tích số là chúng ta sẽ giả định rằng dữ liệu đã cho được giới hạn băng thông ở một số dải tần số và phát triển các
sơ đồ tối ưu trên cơ sở này, trong khi một nhà phân tích số thường giả định rằng dữ liệu bao gồm mẫu của các đa thức (hoặc gần như vậy) và phát triển các sơ đồ để giảm thiểu lỗi kết quả
Để thúc đẩy khái niệm nội suy này trong xử lý tín hiệu, thật hữu ích khi nghĩ đến tín hiệu tương tự cơ bản (hoặc gốc được lấy mẫu để tạo ra tín hiệu rời rạc đã cho x(n) Nếu được lấy mẫu ở tốc độ yêu cầu tối thiểu, thì theo định lý lấy mẫu, nó có thể được phục hồi hoàn toàn từ các mẫu x(n) Nếu bây giờ chúng ta lấy mẫu tín hiệu tương tự đã phục hồi này, với tốc độ gấp đôi tốc độ cũ, thì chúng ta đã thành công trong việc nhân đôitốc độ lấy mẫu hoặc nội suy theo hệ số 2 với lỗi nội suy bằng không Cụ thể, chúng tôi có:
Trang 5Reconstructed analog signal: (10.2)Lấy mẫu lại tín hiệu tương tự:
Trong công thức nội suy lý tưởng ở trên, tín hiệu rời rạc được chuyển đổi thành tínhiệu tương tự và sau đó trở lại tín hiệu rời rạc với tốc độ gấp đôi Trong các phần tiếp
theo, chúng ta sẽ nghiên cứu cách tránh cách tiếp cận đường vòng này và thực hiện
chuyển đổi tỷ lệ lấy mẫu hoàn toàn trong miền kỹ thuật số
Quá trình chuyển đổi tốc độ lấy mẫu trong miền kỹ thuật số có thể được xem như một hoạt động lọc tuyến tính, như được minh họa trong Hình 10.2(a) Tín hiệu đầu vào x(n) được đặc trưng bởi tốc độ lấy mẫu và tín hiệu đầu ra được đặc trưng bởi tốc độ lấy mẫu , trong đó và là các khoảng thời gian lấy mẫu tương ứng Theo cách xử lý của chúngtôi, tỷ lệ bị hạn chế ở mức hợp lý
trong đó D và I là các số nguyên tố tương đối Chúng ta sẽ chỉ ra rằng bộ lọc tuyếntính được đặc trưng bởi đáp ứng xung biến thiên theo thời gian, ký hiệu là
Trang 6Hình 10 2 Chuyển đổi tốc độ lấy mẫu được coi như là quá trình lọc tuyến tính.
như Do đó, đầu vào và đầu ra có quan hệ với nhau bằng phép cộng chồng chất đối với các hệ thống biến thiên theo thời gian Quá trình chuyển đổi tỷ lệ lấy mẫu cũng cóthể được hiểu từ quan điểm lấy mẫu lại kỹ thuật số của cùng một tín hiệu tương tự Đặt
là tín hiệu tương tự được lấy mẫu ở tốc độ đầu tiên để tạo ra Mục tiêu của chuyển đổi tỷ
lệ là thu được một chuỗi khác trực tiếp từ x(n), bằng với các giá trị được lấy mẫu của xa(t) ở tốc độ thứ hai Như được mô tả trong Hình 10.2(b), là phiên bản thay đổi theo thời gian của Sự dịch chuyển thời gian như vậy có thể được thực hiện bằng cách sử dụng bộ lọc tuyến tính có đáp ứng cường độ phẳng và đáp ứng pha tuyến tính (nghĩa là
nó có đáp ứng tần số , trong đó là độ trễ thời gian do bộ lọc tạo ra) Nếu hai tốc độ lấy mẫu không bằng nhau, lượng thời gian dịch chuyển cần thiết sẽ thay đổi từ mẫu này sang mẫu khác, như thể hiện trong Hình 10.2(b) Do đó, bộ chuyển đổi tốc độ có thể được thựchiện bằng cách sử dụng một tập hợp các bộ lọc tuyến tính có cùng đáp ứng cường độ phẳng nhưng tạo ra độ trễ thời gian khác nhau Trước khi xem xét trường hợp chung của chuyển đổi tốc độ lấy mẫu, chúng ta sẽ xem xét hai trường hợp đặc biệt Một là trường hợp giảm tốc độ lấy mẫu theo hệ số nguyên và trường hợp thứ hai là trường hợp tăng tốc
Trang 7độ lấy mẫu theo hệ số nguyên Quá trình giảm tốc độ lấy mẫu theo hệ số (lấy mẫu I Dxuống theo ) được gọi là thập phân Quá trình tăng tốc độ lấy mẫu theo hệ số nguyên D I(lấy mẫu theo ) được gọi là nội suy bộ chuyển đổi tốc độ có thể được thực hiện bằng Icách sử dụng một tập hợp các bộ lọc tuyến tính có cùng đáp ứng cường độ phẳng nhưng tạo ra độ trễ thời gian khác nhau Trước khi xem xét trường hợp chung của chuyển đổi tốc
độ lấy mẫu, chúng ta sẽ xem xét hai trường hợp đặc biệt Một là trường hợp giảm tốc độ lấy mẫu theo hệ số nguyên và trường hợp thứ hai là trường hợp tăng tốc độ lấy mẫu Dtheo hệ số nguyên Quá trình giảm tốc độ lấy mẫu theo hệ số (lấy mẫu xuống theo ) I D Dđược gọi là thập phân Quá trình tăng tốc độ lấy mẫu theo hệ số nguyên (lấy mẫu theo )I Iđược gọi là nội suy bộ chuyển đổi tốc độ có thể được thực hiện bằng cách sử dụng một tập hợp các bộ lọc tuyến tính có cùng đáp ứng cường độ phẳng nhưng tạo ra độ trễ thời gian khác nhau Trước khi xem xét trường hợp chung của chuyển đổi tốc độ lấy mẫu, chúng ta sẽ xem xét hai trường hợp đặc biệt Một là trường hợp giảm tốc độ lấy mẫu theo
hệ số nguyên và trường hợp thứ hai là trường hợp tăng tốc độ lấy mẫu theo hệ số Dnguyên Quá trình giảm tốc độ lấy mẫu theo hệ số (lấy mẫu xuống theo D) được gọi I D
là thập phân Quá trình tăng tốc độ lấy mẫu theo hệ số nguyên (lấy mẫu theo ) được gọiI I
là nội suy và thứ hai là trường hợp tốc độ lấy mẫu tăng theo hệ số nguyên Quá trình Igiảm tốc độ lấy mẫu theo hệ số (downsampling by ) được gọi là decimation Quá D Dtrình tăng tốc độ lấy mẫu theo hệ số nguyên (lấy mẫu theo ) được gọi là nội suy và thứ I Ihai là trường hợp tốc độ lấy mẫu tăng theo hệ số nguyên Quá trình giảm tốc độ lấy mẫuItheo hệ số (down sampling by ) được gọi là decimation Quá trình tăng tốc độ lấy D Dmẫu theo hệ số nguyên (lấy mẫu theo ) được gọi là nội suy.I I
GIẢM BẰNG YẾU TỐ D
Trang 8Thao tác cơ bản cần có trong số thập phân là lấy mẫu xuống của tín hiệu tốc độ cao thành tín hiệu tốc độ thấp Chúng tôi sẽ phát triển các mối quan hệ miền thời gian vàmiền tần số giữa hai tín hiệu này để hiểu aliasing miền tần số theo Sau đó, chúng ta sẽ nghiên cứu điều kiện cần thiết để thực hiện phép thập phân không có lỗi và cấu trúc hệ thống cần thiết để triển khai.
CÔNG CỤ GIẢM MẪU
Lưu ý rằng tín hiệu được lấy mẫu xuống có được bằng cách chọn một trong số Dmẫu của và loại bỏ mẫu còn lại trong số mọi mẫu D, tức là
VÍ DỤ 10.1
Sử dụng D = 2 và xác minh rằng bộ lấy mẫu xuống thay đổi theo thời gian.Giải pháp
Trang 9Tín hiệu được lấy mẫu xuống là Nếu bây giờ chúng ta trì hoãn ) một mẫu, chúng ta
sẽ nhận được Tín hiệu được lấy mẫu xuống tương ứng là y1(m) = { , 2, 4, 2}, khác với 0
Triển khai MATLAB
MATLAB cung cấp hàm [y] = downsample (x, D) lấy mẫu của mảng đầu vào x thành mảng đầu ra y bằng cách giữ mọi mẫu thứ D bắt đầu bằng mẫu đầu tiên Tham số thứ ba tùy chọn “pha” chỉ định độ lệch mẫu phải là số nguyên trong khoảng từ 0 đến (D-1) Ví dụ
giảm mẫu theo hệ số 2 bắt đầu với mẫu đầu tiên Tuy nhiên
tạo ra một chuỗi hoàn toàn khác bằng cách lấy mẫu xuống, bắt đầu với mẫu thứ hai (nghĩa là bù bằng 1) Biểu diễn miền tần số của tín hiệu được lấy mẫu xuống Bây giờchúng ta biểu thị theo bằng cách sử dụng quan hệ biến đổi z Hướng tới điều này, chúng tôi giới thiệu một chuỗi tốc độ cao ), được cho bởi
Rõ ràng, ¯x(n) có thể được xem như một dãy thu được bằng cách nhân x(n) với một chuỗi xung tuần hoàn p(n), với chu kỳ D, như được minh họa trong Hình 10.4 Biểu diễn chuỗi Fourier rời rạc của p(n) là
(10.8)
Do đó chúng ta có thể viết
Trang 10(10.10)như trong (10.6) Hình 10.4 cho thấy một ví dụ về các dãy , và được xác định
Y z x m z
(10.11)
Trang 11trong đó bước cuối cùng xuất phát từ thực tế là , ngoại trừ bội số của Bằng cáchD
sử dụng các quan hệ trong (10.7) và (10.8) trong (10.11), chúng ta thu được
1
2 / / 0
1( ) ( )[ D J mk D] m D
D
j k D D m
k m
x m e zD
X e z
D (10.12)Các bước chính để có được biểu diễn biến đổi z (10.12), cho bộ lấy mẫu xuống , như sau:
• giới thiệu chuỗi tốc độ cao , có số 0 ở giữa các giá trị được giữ lại và
• biểu diễn chuỗi xung (10.8) cho chuỗi lấy mẫu định kỳ liên quan đến x(n) đến
¯x(n)
Bằng cách đánh giá trên vòng tròn đơn vị, chúng ta thu được phổ của tín hiệu đầu
ra Vì tốc độ của là , nên biến tần số, mà chúng ta ký hiệu là ωy, tính bằng radian và
tương đối với tốc độ lấy mẫu ,
22
y
FFT
Vì tỷ lệ lấy mẫu có liên quan bởi biểu thức
x y
FF
suy ra các biến tần số ωy và
22
x
FFT
Trang 12Hình 10 5 Spectra of x(n) and y(m) in no-aliasing case
có liên quan bởi
21
( ) D ( y )
y k
Trang 20tạo ra hai tín hiệu khác nhau bằng cách lấy mẫu ngược, bắt đầu với mẫu thứ hai vàmẫu thứ ba (nghĩa là bù 1), tương ứng Lưu ý rằng độ dài của các tín hiệu được lấy mẫu lại gấp I lần độ dài của tín hiệu ban đầu.
Biểu diễn miền tần số của tín hiệu được lấy mẫu lại y(m) Dãy v(m) có biến đổi
vị Như vậy
( y) ( y )
trong đó ωy biểu thị biến tần số tương ứng với tốc độ lấy mẫu mới (nghĩa là )
Bây giờ mối quan hệ giữa tốc độ lấy mẫu là , và do đó các biến tần số và có liên quan theo công thức
x y
Phổ và được minh họa trong Hình 10.10 Chúng tôi quan sát thấy rằng tốc độ lấy mẫu tăng, thu được bằng cách thêm zero mẫu giữa các giá trị liên tiếp của x(n), dẫn đến tín hiệu có phổ là sự lặp lại định kỳ gấp I của phổ tín hiệu đầu vào )
MÁY NỘI SOI LÝ TƯỞNG
Vì chỉ các thành phần tần số của x(n) trong khoảng là duy nhất nên ảnh của X(ω) trên nên bị loại bỏ
Trang 21Hình 10 10 Spectra of x(n) and v(m) where V (ωy) = X(ωyI)
bằng cách chuyển chuỗi v(m) qua bộ lọc thông thấp có đáp ứng tần số lý tưởng là
có đặc tính
,( )0,
y
I y
IC
0,
y y y
do đó, C = I là hệ số chuẩn hóa mong muốn
Cuối cùng, chúng tôi chỉ ra rằng chuỗi đầu ra y(m) có thể được biểu diễn dưới
dạng một tích chập của chuỗi v(n) với đáp ứng mẫu đơn vị h(n) của bộ lọc thông thấp
Trang 22Bộ nội suy lý tưởng được thể hiện trong Hình 10.11.
Hình 10 11 Ideal interpolation by a factor I
Triển khai MATLAB
MATLAB cung cấp hàm [y,h] = interp(x,I) lấy mẫu lại tín hiệu trong mảng x với I nhân với tốc độ lấy mẫu ban đầu Mảng y được lấy lại mẫu thu được dài hơn tôi gấp
nhiều lần—tức là, length(y) = I*length(x) Bộ lọc thông thấp lý tưởng được đưa ra trong (10.30) được xấp xỉ bằng đáp ứng xung của bộ lọc đối xứng, h, được thiết kế bên trong
Nó cho phép các mẫu ban đầu đi qua không đổi và nội suy giữa các mẫu sao cho sai số bình phương trung bình giữa chúng và các giá trị lý tưởng của chúng được giảm thiểu Tham số tùy chọn thứ ba L chỉ định độ dài của bộ lọc đối xứng là 2*L*I+1 và ngưỡng tham số tùy chọn thứ tư chỉ định tần số cắt của tín hiệu đầu vào theo đơn vị π Các giá trị mặc định là L=5 và ngưỡng = 0,5 Do đó, nếu I=2, thì độ dài của bộ lọc đối xứng là 21 với L=5 mặc định
VÍ DỤ 10.4
Trang 23Đặt Tạo các mẫu của x(n) và nội suy chúng bằng cách sử dụng để hiển thị kết quả của phép nội suy.
Giải pháp
Chúng tôi sẽ vẽ các phân đoạn giữa của tín hiệu để tránh các hiệu ứng cuối do bộ lọc thông thấp mặc định trong chức năng xen kẽ Tập lệnh MATLAB sau đây trình bày chi tiết về các thao tác này và Hình 10.12 thể hiện sơ đồ của các chuỗi
Trang 24Hình 10 12 Original and interpolated signals in Example 10.4
Từ Hình 10.11, chúng ta quan sát thấy rằng các chuỗi nội suy cho cả ba giá trị của
Trang 25I đều phù hợp và biểu thị tín hiệu hình sin ban đầu x(n) ở tốc độ lấy mẫu cao hơn Trong trường hợp I = 8, chuỗi kết quả dường như không hoàn toàn có dạng hình sin Điều này
có thể là do bộ lọc thông thấp không gần với bộ lọc lý tưởng
VÍ DỤ 10.5
Kiểm tra đáp ứng tần số của bộ lọc thông thấp được sử dụng trong phép nội suy tínhiệu trong Ví dụ 10.4
Giải pháp
Đối số tùy chọn thứ hai trong hàm interp cung cấp đáp ứng xung mà từ đó chúng
ta có thể tính toán đáp ứng tần số, như thể hiện trong tập lệnh MATLAB sau đây
Trang 26Biểu đồ đáp ứng tần số được thể hiện trong Hình 10.13 Ba biểu đồ đầu tiên dành cho L=5 và, như mong đợi, tất cả các bộ lọc đều là thông thấp với các cạnh dải thông xấp
xỉ xung quanh tần số π/I và độ lợi của I Cũng lưu ý rằng các bộ lọc không có chuyển tiếpsắc nét và do đó không phải là phép tính gần đúng tốt đến bộ lọc lý tưởng Biểu đồ cuối cùng cho thấy phản hồi đối với L = 10, biểu thị sự chuyển đổi sắc nét hơn, điều được mong đợi Bất kỳ giá trị nào vượt quá L = 10 đều dẫn đến thiết kế bộ lọc không ổn định
và do đó nên tránh
Hình 10 13 Filter frequency responses in Example 10.5
Trang 27CHUYỂN ĐỔI TỶ LỆ MẪU BẰNG YẾU TỐ HỢP LÝ I/D
Đã thảo luận về các trường hợp đặc biệt của phép thập phân (lấy mẫu giảm theo hệ
số ) và phép nội suy (lấy mẫu tăng theo hệ số ), bây giờ chúng ta xem xét trường hợp D Ichung của chuyển đổi tốc độ lấy mẫu theo hệ số hữu tỷ Về cơ bản, chúng ta có thể đạt được sự chuyển đổi tốc độ lấy mẫu này bằng cách thực hiện phép nội suy đầu tiên theo hệ
số và sau đó giảm đầu ra của bộ nội suy theo hệ số Nói cách khác, việc chuyển đổi I Dtốc độ lấy mẫu theo hệ số hữu tỷ được thực hiện bằng cách xếp tầng một nội suy với một
bộ giải mã, như được minh họa trong Hình 10.14 Chúng tôi nhấn mạnh rằng tầm quan trọng của việc thực hiện phép nội suy trước và phép thập phân thứ hai là để bảo toàn các đặc tính phổ mong muốn của Hơn nữa, với cấu hình tầng được minh họa trong Hình
10.14,
Hình 10 14 Cascade of interpolator and decimator for sampling rate conver-sion by a factor I/D
Hình 10.15 Đáp ứng tần số của bộ lọc kết hợp phải kết hợp các hoạt động lọc cho
cả phép nội suy và phép thập phân, và do đó, lý tưởng nhất là nó phải sở hữu đặc tính đápứng tần số
,0 min( / , / )( )
0,
v v
Trang 28•, khi đó bộ lọc H(ωv) cho phép toàn bộ chu kỳ đi qua và không có bộ lọc thông thấp thực.
• , thì trước tiên bộ lọc phải cắt bớt chu kỳ cơ bản của )để tránh lỗi aliasing trong giai đoạn thập phân (D ↓1) tiếp theo
Đặt hai quan sát này lại với nhau, chúng ta có thể nói rằng khi , chúng ta có phép nội suy ròng và không yêu cầu làm mịn ngoài việc trích xuất chu kỳ cơ bản của Về mặt này, hoạt động như một bộ lọc thông thấp như trong bộ nội suy lý tưởng Mặt khác, nếu ,thì chúng ta có số thập phân ròng Do đó, trước tiên cần phải cắt ngắn ngay cả chu kỳ cơ bản của để đưa dải tần số xuống và để tránh hiện tượng aliasing trong phép thập phân diễn ra sau đó Về mặt này, hoạt động như một bộ lọc làm mịn trong bộ lọc thập phân lý tưởng Khi hoặc bằng 1, bộ suy giảm chung / bộ nội suy trong Hình 10.15 cùng với D I(10.36) lần lượt giảm xuống thành bộ nội suy lý tưởng hoặc bộ suy giảm số thập phân trong trường hợp đặc biệt
Hình 10 15 Method for sampling rate conversion by a factor I/D
Trong miền thời gian, đầu ra của bộ lấy mẫu ngược là chuỗi
Trang 29bằng cách lấy mẫu xuống chuỗi {w(k)} theo hệ số D Do đó
( ) ( ) ( ) ( )
l
y m w mD h mD lI x l
(10.39)Thật sáng suốt khi biểu diễn (10.39) ở một dạng khác bằng cách thay đổi biến
Cho phép
[mD]
I (10.40)trong đó ký hiệu [r] biểu thị số nguyên lớn nhất chứa trong r Với sự thay đổi này trong biến, (10,39) trở thành
Do đó, (10.41) có thể được biểu diễn dưới dạng
Các hoạt động này được thể hiện trong Hình 10.16 cho I = 3 và D = 2
Rõ ràng từ (10.41) và Hình 10.16, đầu ra y(m) thu được bằng cách chuyển chuỗi đầu vào x(n) qua bộ lọc biến thiên theo thời gian có đáp ứng xung
( , ) [ (( )) ]I
g n m h nI mD m n, (10.43)
Trang 30Hình 10 16 Examples of signals x(n), v(k), w(k), and y(m) in the sampling rate converter
of Figure 10.15 for I = 3 and D =
trong đó h(k) là đáp ứng xung của bộ lọc thông thấp bất biến theo thời gian hoạt động ở tốc độ lấy mẫu Chúng tôi quan sát thêm rằng với mọi số nguyên k,
( , ) [ (( )) )I [ (( )) ]I
g n m kI h nI mD kDI h nI mD
( , )
Do đó g (n, m) tuần hoàn trong biến m với chu kỳ I
Về độ phức tạp tính toán của bộ lọc thông thấp trong bộ lấy mẫu lại chung, chúng
Trang 31tôi lưu ý rằng nó chỉ có đầu vào khác 0 cho mỗi mẫu I và đầu ra chỉ được yêu cầu cho
mỗi mẫu D Nếu chúng tôi sử dụng triển khai FIR cho bộ lọc thông thấp này, chúng tôi chỉ cần tính toán đầu ra của nó một trong số mọi mẫu D Tuy nhiên, nếu thay vào đó
chúng ta sử dụng triển khai IIR, chúng ta thường phải tính toán các đầu ra trung gian
cũng do tính chất đệ quy của bộ lọc Tuy nhiên, cả hai loại bộ lọc đều được hưởng lợi từ việc tiết kiệm tính toán do đầu vào thưa thớt của chúng
Biểu diễn miền tần số của tín hiệu được lấy mẫu lại y(m)Các mối quan hệ miền
tần số có thể thu được bằng cách kết hợp các kết quả của quá trình nội suy và thập phân Như vậy, phổ ở đầu ra của bộ lọc tuyến tính có đáp ứng xung h(k) là
V( )v H( ) (v X vI)
( ),0 min( / , / )0,
( ) D ( y )
y k
k
trong đó Do bộ lọc tuyến tính ngăn hiện tượng aliasing như được ngụ ý bởi
(10.45), nên phổ của chuỗi đầu ra được cho bởi (10.46) giảm xuống còn
0 min( , )( ),
( )0,
y y y
DI
X
Triển khai MATLAB
MATLAB cung cấp hàm [y,h] = resample(x,I,D) để lấy mẫu lại tín hiệu trong
mảng x với I/D nhân với tốc độ lấy mẫu ban đầu Kết quả là mảng được lấy lại mẫu y dài hơn I/D lần (hoặc mức trần của nó nếu tỷ lệ không phải là số nguyên)—tức là, length(y)
= ceil(I/D)*length(x) Hàm xấp xỉ bộ lọc anti-aliasing (thông thấp) được đưa ra trong
Trang 32(10.36) bởi bộ lọc FIR, h, được thiết kế (nội bộ) bằng cách sử dụng cửa sổ Kaiser Nó cũng bù cho độ trễ của bộ lọc.
Độ dài của bộ lọc FIR h mà việc lấy mẫu lại sử dụng tỷ lệ với tham số thứ tư (tùy chọn) L có giá trị mặc định là 10 Đối với L=0, việc lấy mẫu lại thực hiện phép nội suy lân cận gần nhất Tham số tùy chọn thứ năm beta (giá trị mặc định 5) có thể được sử dụng
để chỉ định tham số suy giảm băng chặn cửa sổ Kaiser β Các đặc tính của bộ lọc có thể được nghiên cứu bằng cách sử dụng đáp ứng xung h
Trang 33Các biểu đồ kết quả được hiển thị trong Hình 10.17 Tín hiệu ban đầu có 16 mẫu trong một chu kỳ của dạng sóng cosin Vì chuyển đổi tỷ lệ lấy mẫu đầu tiên bằng lớn hơnmột, nên hiệu ứng tổng thể là nội suy Tín hiệu thu được có mẫu trong một khoảng thời
Trang 34gian Hai hệ số chuyển đổi tỷ lệ lấy mẫu khác nhỏ hơn một; do đó, hiệu quả tổng thể là giảm Các tín hiệu thu được lần lượt có và mẫu mỗi chu ki
THIẾT KẾ BỘ LỌC FIR ĐỂ CHUYỂN ĐỔI TỶ LỆ LẤY MẪU
Trong thực tế thực hiện các bộ chuyển đổi tốc độ lấy mẫu, chúng ta phải thay thế các phương trình bộ lọc thông thấp lý tưởng (10.20), (10.30), và (10.36) bằng bộ lọc apractical bậc hữu hạn Mạch lọc thông thấp có thể được thiết kế để có
Hình 10.17: Tính hiệu gốc và tín hiệu lấy lại mẫu trong ví dụ 10.6
pha tuyến tính, một gợn sóng băng thông được chỉ định và suy giảm băng dừng Bất kỳ kỹ thuật thiết kế bộ lọc FIR tiêu chuẩn, nổi tiếng nào (ví dụ: cửa sổphương pháp, phương pháp lấy mẫu tần số) có thể được sử dụng để thực hiện thiết kế này Chúng tôi xem xét các bộ lọc FIR pha tuyến tính cho mục đích này vì tính dễ dàng của chúng của thiết kế và bởi vì chúng rất phù hợp với một giai đoạn decimator nơichỉ cần một trong các kết quả D [xem thảo luận sau (10.44) trên trang 504] Đầu tiên chúng ta sẽ thảo luận về nội suy số nguyên, tiếp theo là số nguyên decimators và sau đó
là các bộ lấy mẫu lại hợp lý Điểm nhấn chính sẽ là về thông số kỹ thuật của các bộ lọc
Trang 35lowpass FIR này, vì vấn đề thiết kế đã được xem xét trong Chương 7.
NỘI SUY SỐ NGUYÊN FIR
Thay thế bộ lọc lý tưởng của hệ thống được đưa ra trên trang 498 bằng FIR
bộ lọc, chúng tôi có được hệ thống được hiển thị trong Hình 10.18 Phương trình liên quan liên quan đến các biến đổi Fourier V (ω) và X(ω) là (10,28), lặp lại
bên dưới để thuận tiện
Triển khai MATLAB Để thiết kế bộ lọc FIR pha tuyến tính cho
sử dụng trong hoạt động nội suy (và như chúng ta sẽ thấy sau cho phép thập phân),MATLAB cung cấp hàm h = intfilt(I,L,alpha) Khi sử dụng
trên một dãy xen kẽ với các số không liên tiếp I-1 giữa mọi I
mẫu, hàm thực hiện nội suy giới hạn băng tần lý tưởng bằng cách sử dụng
mẫu 2 * L không gần nhất Nó giả định rằng băng thông của tín hiệu
x(n) là alpha lần π radian/mẫu—tức là, alpha=1 có nghĩa là tín hiệu đầy đủ
băng thông Độ dài của mảng phản ứng xung bộ lọc h là 2 * I * L-1
Bộ lọc được thiết kế giống với bộ lọc được sử dụng bởi hàm interp Do đó, tham số L nên
Trang 36được lựa chọn cẩn thận để tránh mất ổn định số Nó phải là một giá trị nhỏ hơn cho giá trị
I cao hơn nhưng không quá mười
VÍ DỤ 10.7 Thiết kế bộ lọc nội suy FIR pha tuyến tính để nội suy tín hiệu theo hệ
số của 4, sử dụng phương pháp giới hạn bang tầng(bandlimited )
Cách giải quyết: Chúng ta sẽ khám phá hàm intfilt cho thiết kế sử dụng L = 5 và nghiên cứu Ảnh hưởng của alpha đến thiết kế bộ lọc Tập lệnh MATLAB sau đây cung cấp
[Hr,w,a,L] = Hr_Type1(h); Hr_min = min(Hr); w_min = find(Hr == Hr_min);
H = abs(freqz(h,1,w)); Hdb = 20*log10(H/max(H)); min_attn = Hdb(w_min);
subplot(2,2,1); plot(ww/pi,Hr,’g’,’linewidth’,1.0); axis([0,1,-1,5]);
set(gca,’xtick’,[0,1/I,1],’ytick’,[0,I]); grid; ylabel(’Amplitude’);
title(’Amplitude Response: alpha = 1’,’fontsize’,TF)
subplot(2,2,3); plot(w/pi,Hdb,’m’,’linewidth’,1.0); axis([0,1,-50,10]);
set(gca,’xtick’,[0,1/I,1],’ytick’,[-50,round(min_attn),0]); grid
ylabel(’Decibels’); xlabel(’\omega/\pi’, ’fontsize’,10);
title(’Log-mag Response: alpha = 1’,’fontsize’,TF)
% (b) Partial signal bandwidth: alpha = 0.75
alpha = 0.75; h = intfilt(I,L,alpha);
[Hr,w,a,L] = Hr_Type1(h); Hr_min = max(Hr(end/2:end)); w_min = find(Hr == Hr_min);
H = abs(freqz(h,1,w)); Hdb = 20*log10(H/max(H)); min_attn = Hdb(w_min);
subplot(2,2,2); plot(ww/pi,Hr,’g’,’linewidth’,1.0); axis([0,1,-1,5]);
set(gca,’xtick’,[0,1/I,1],’ytick’,[0,I]); grid; ylabel(’Amplitude’);
title(’Amplitude Response: alpha = 0.75’,’fontsize’,TF)
Trang 37subplot(2,2,4); plot(w/pi,Hdb,’m’,’linewidth’,1.0); axis([0,1,-50,10]);
set(gca,’xtick’,[0,1/I,1],’ytick’,[-50,round(min_attn),0]); grid
ylabel(’Decibels’); xlabel(’\omega/\pi’, ’fontsize’,10);
title(’Log-mag Response: alpha = 0.75’,’fontsize’,TF
Các ô được thể hiện trong Hình 10.19 Đối với trường hợp băng thông đầy đủ của alpha = 1,Bộ lọc có nhiều gợn sóng hơn ở cả băng thông và băng dừng với suy giảm băngchặn tối thiểu là 22 DB Điều này là do quá trình chuyển đổi bộ lọc
Trang 38Hình 10.19 Biểu đồ thiết kế bộ lọc nội suy FIR cho I = 4 và L = 5
Dải rất hẹp Đối với alpha = 0,75, thông số kỹ thuật của bộ lọc khoan dung hơn,
và do đó phản ứng của nó được xử lý tốt với sự suy giảm điểm dừng tối thiểu là
40 DB Lưu ý rằng chúng tôi không có toàn quyền kiểm soát các thông số thiết kế khác.Những vấn đề này được thảo luận chi tiết hơn trong phần này
Trong ví dụ sau, chúng tôi thiết kế bộ lọc nội suy FIR cân bằng pha tuyến tính bằng thuật toán Parks-McClellen
VÍ DỤ 10.8 Thiết kế một nội suy làm tăng tốc độ lấy mẫu đầu vào theo hệ số
I = 5 Sử dụng thuật toán firpm để xác định các hệ số của bộ lọc FIR
có gợn sóng 0,1 dB trong băng thông và giảm ít nhất 30 dB trong
Băng dải Chọn giá trị hợp lý cho tần số cạnh băng tần
Trang 39Giải pháp Tần số cắt băng tần phải là ωp = π / I = 0,2π Để có được một hợp lý
giá trị cho chiều dài bộ lọc, chúng tôi chọn chiều rộng chuyển tiếp là 0,12π, choTần số cắt băng chặn ωs = 0,32π Lưu ý rằng mức tăng danh nghĩa của
bộ lọc trong băng thông phải bằng I = 5,which means that the ripple values computed using the decibel values are scaled by 5 Một bộ lọc với chiều dài M = 31 đạt được các thông số kỹ thuật thiết kế được đưa ra ở trên Chi tiết được đưa trong tập lệnh Matlab sau
I = 5; Rp = 0.1; As = 30; wp = pi/I; ws = wp+pi*0.12;
[delta1,delta2] = db2delta(Rp,As); weights = [delta2/delta1,1];
F = [0,wp,ws,pi]/pi; A = [I,I,0,0];
h = firpm(30,F,A,weights); n = [0:length(h)-1];
[Hr,w,a,L] = Hr_Type1(h); Hr_min = min(Hr); w_min = find(Hr == Hr_min);
H = abs(freqz(h,1,w)); Hdb = 20*log10(H/max(H)); min_attn = Hdb(w_min);
Hf1 = figure(’units’,’inches’,’position’,[1,1,6,4],
’paperunits’,’inches’,’paperposition’,[0,0,6,4]);
subplot(2,2,1); Hs1 = stem(n,h,’filled’); set(Hs1,’markersize’,2);
axis([-1,length(n),-0.5,1.5]); ylabel(’Amplitude’); xlabel(’n’,’vertical’,’bottom’);Title(’Impulse Response’,’fontsize’,TF);
subplot(2,2,3); plot(ww/pi,Hr,’m’,’linewidth’,1.0); axis([0,1,-1,6]);
set(gca,’xtick’,[0,wp/pi,ws/pi,1],’ytick’,[0,I]); grid; ylabel(’Amplitude’);
title(’Amplitude Response’,’fontsize’,TF); xlabel(’Frequency in \pi units’);
subplot(2,2,2); plot(w/pi,Hdb,’m’,’linewidth’,1.0); axis([0,1,-50,10]);
Trang 40delta1 = round(delta1*I*100)/100; delta2 = round(delta2*I*100)/100;
set(AX(1),’xtick’,[0,wp/pi,ws/pi,1],’ytick’,[-delta1,0,delta1],’Ycolor’,’g’);
set(AX(2),’xtick’,[0,wp/pi,ws/pi,1],’ytick’,[-delta2,0,delta2],’Ycolor’,’r’);
set(H1,’color’,’g’,’linewidth’,1); set(H2,’color’,’r’,’linewidth’,1);
title(’Scaled Ripples’,’fontsize’,TF); xlabel(’Frequency in \pi units’);
Các phản hồi của bộ lọc FIR được thiết kế được đưa ra trong Hình 10.20 Mặc bộ lọc này vượt qua tín hiệu ban đầu, có thể một số năng lượng quang phổ lân cận cũng có thể bị rò rỉ qua nếu tín hiệu có băng thông đầy đủ của π radian Do đó, chúng ta cần thiết
kế thông số kỹ thuật tốt hơn, được thảo luận nhiều hơn trong phần này
Hình 10.20 : Phản hồi của bộ lọc nội suy FIR trong Ví dụ 10.8
Triển khai MATLAB Để sử dụng bộ lọc FIR để nội suy
Mục đích (chẳng hạn như chức năng được thiết kế trong ví dụ trên), MATLAB đã