Đồ án Mã hóa band con

Sau thời gian ba tháng làm đồ án với sự nỗ lực cố gắng tìm tòi, nghiên cứu và có sự tham khảo nhiều tài liệu cùng với sự giúp đỡ tận tình của thầy cô và các bạn. Đặc biệt là Ths.Nguyễn Văn Dương tôi đã hoàn thành tốt nhiệm vụ của đồ án. Đồ án đã trình bày các vấn đề về Mã hóa band con, tần số của tín hiệu tiếng nói được phân chia thành các dải con và mã hóa mỗi dải với số bít khác nhau trong xử lý tín hiệu số. Mã hóa band con có thể nén được tín hiệu tốt hơn hay bề rộng của dải tần số xử lý được thu hẹp lại và triệt tiêu được các thành phần tần số không mong muốn. Do đó nó có rất nhiều ứng dụng trong xử lý tín hiệu âm thanh, tín hiệu ảnh và những tín hiệu thành phần tần số thấp. Tuy nhiên phương pháp này cũng có nhược điểm của nó như: vấn đề giải quyết bài toán cấp phát bít (hay số bít cấp cho mỗi băng con) để đạt được hiệu quả cao nhất, không xác định được hệ thống mã hóa tối ưu cho các ứng dụng bít thấp, luôn tồn tại sự tương quan nhỏ giữa các băng tần kề nhau và dữ liệu sẽ không được nén hoàn toàn (do các bộ lọc không phải lý tưởng).

doc76 trang | Chia sẻ: linhlinh11 | Lượt xem: 919 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Đồ án Mã hóa band con, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
là tất cả các dãy tuần hoàn đưa ra trong phương trình (1.5.6). Một điểm khác là khi biểu diễn DFT được sử dụng thì các chỉ số dãy phải được thể thể hiện phần dư của N (Mod). Điều này xuất phát từ thực tế là nếu x(n) có độ dài N thì: (1.5.9) Ký hiệu dấu ngoặc đơn kép ở trên để chỉ tính chu kỳ lặp lại của biểu diễn DFT. Một đặc điểm hiển nhiên nhất là dãy dịch chuyển được dịch đi một phần dư của N. Biểu diễn DFT có những ưu điểm sau: DFT, X(k) có thể được xem như cấp độ lấy mẫu của biến đổi Z (hoặc biến đổi Fourier) của dãy hữu hạn. DFT có các thuộc tính rất giống với nhiều thuộc tính hữu ích của biến đổi Z và biến đổi Fourier. Giá trị N của X(k) có thể tính rất hiệu quả bằng cách sử dụng các thuật toán như FFT (Fast Fourier Trans form). Trong bảng 1.2 là một số tính chất quan trọng của biến đổi DFT. Các tính chất Dãy miền n DET N điểm 1. Tính tuyến tính Ax1(n) + bx2(n) a.X1(k) + bX2(k) 2. Tính dịch chuyển theo thời gian X((n+n0))N 3. Đảo trục thời gian x((-n))N X*(k) 4. Tích chậpcủa hai dãy X(k).H(k) 5. Tích của hai dãy x(n).w(n) Bảng 1.2.Một số tính chất quan trọng của biến đổi DFT. 1.5.2. FFT Ở trên chúng ta đã biết biến đổi Fourier rời rạc (DFT). Nhưng trong tính toán, để tăng tốc độ tính, người ta đã tìm ra thuật toán tính DFT một cách nhanh chóng và hiệu quả được gọi là phép biến đổi nhanh Fourier. Như chúng ta đã biết, DFT của dãy x(n) là: với k = 0, 1, , N-1 (1.5.10) trong đó: Biến đổi Fuorier rời rạc ngược (IDFT) của X(k) là: với n = 0, 1, , N-1 (1.5.11) Trong phương trình (1.5.10) và (1.5.11) cả x(n) và X(k) đều có thể là số phức: x(n) = a(n) + jb(n) X(k) = A(k) + jB(k) Do đó (1.5.12) hoặc (1.5.13) (1.5.14) Các biểu thức (1.5.10) và (1.5.11) chỉ khác nhau về dấu mũ của W và ở hệ số tỉ lệ 1/N. Vì vậy mọi lý luận về các tính biểu thức (1.5.10) đều được áp dụng cho biểu thức (1.5.11) với một vài thay đổi nhỏ về dấu và hệ số tỉ lệ. Trước hết chúng ta xem xét qua cách tính trực tiếp DFT với một số nhận xét như lưu ý sau: Một phép nhân số phức tương đương với bốn phép nhân số thực. Số lượng phép tính chỉ là tương đối, ví dụ như phép nhân với W = 1 trong thực tế không cần thực hiện nhưng ta vẫn tính, vì n lớn nên các phép tính kiểu này sẽ không đáng kể. Thời gian làm một phép nhân (tn), trong máy tính vạn năng lớn hơn rất nhiều thời gian làm một phép cộng (tc). Vì vậy chúng ta phải quan tâm làm giảm nhỏ phép nhân là chính. Thời gian phụ (tp) làm các công việc khác như truyền số liệu, đọc các hệ số sẽ có thể tạm bỏ qua. Do vậy độ phức tạp tính toán trên phương diện thời gian sẽ tỉ lệ với số phép tính số học (số phép tính nhân là chính và số phép tính cộng). Việc tính X(k) tương đương với việc tính phần thực A(k) và phần ảo B(k). Ta thấy rằng mỗi giá trị của k, việc tính toán trực tiếp X(k) cần 4N phép nhân số thực và (4N-2) phép cộng số thực. Vì X(k) phải tính cho các giá trị khác nhau của k, cho nên cách tính trực tiếp DFT của một dãy x(n)cần có phép nhân thực và N(4N-2) phép cộng số thực. Hay nói cách khác cần có phép nhân số phức và N(N-1) phép cộng số phức. Do số lần tính toán và thời gian tính toán tỉ lệ gần đúng với nên rõ ràng rằng số phép toán số học cần có thể tính trực tiếp DFT sẽ rất lớn khi N tăng. Do vậy mọi thuật toán đều cố gắng tìm mọi cách làm giảm số phép tính, đặc biệt là số phép nhân. Chúng ta sẽ xét một vài thuật toán FFT cơ bản nhất và hiệu quả, các thuật toán này có số phép tính tỉ lệ với N.log(N). Nguyên tắc cơ bản của tất cả các thuật toán là dựa trên việc phân tích các tính DFT của một dãy N điểm (gọi tắt là DFT N điểm) thành các phép tính DFT của các dãy nhỏ hơn. Nguyên tắc này đã dẫn đến các thuật toán khác nhau và tất cả đều giảm đáng kể thời gian tính toán. Trong phần này chúng ta sẽ xét đến hai lớp cơ bản nhất của thuật toán FFT: thuật toán FFT phân chia theo thời gian và phân chia theo tần số. 1.5.2.1. Thuật toán FFT phân chia theo thời gian Nguyên tắc chung Nguyên tắc cơ bản nhất của các thuật toán FFT là dựa trên việc phân tách DFT N điểm thành DFT nhỏ hơn (tức là số điểm tính DFT nhỏ hơn). Theo cách này chúng ta sẽ khai thác cả tính tuần hoàn và tính đối xứng của W. * Tính đối xứng * Tính tuần hoàn Thuật toán phân chia dựa trên việc phân chia dãy x(n) thành các dãy nhỏ hơn gọi là thuật toán phân chia theo thời gian, vì chỉ số n thường được gắn với thời gian. Nguyên tắc của thuật toán này được minh họa rõ rệt nhất khi ta xem xét trường hợp N lấy các giá trị đặc biệt: N là lũy thừa của 2, (do đó nó còn tên là FFT cơ số 2), tức là . Do N là một số chẵn nên ta có thể tính X(k) bằng cách tách x(n) thành hai dãy, mỗi dãy có N/2 điểm, một dãy chứa điểm lẻ của x(n) và một dãy chứa điểm chẵn của x(n). Cụ thể từ công thức tĩnh X(k) ta có: với k = 0, 1, , N-1 Sau khi tách dãy x(n) thành các dãy đánh số chẵn và số lẻ, ta có: Hoặc bằng cách thay thế biến n=2r đối với N chẵn và n=2r+1 đối với N là lẻ. (1.5.15) Bởi vì nên biểu thức (1.5.15) có thể viết lại thành: Đặt (X0 tương ứng với r chẵn) và (X1 tương ứng với r lẻ) ta có: (1.5.16) Có thể thấy ngay X0(k) và X1(k) chính là DFT của N/2 điểm, trong đó X0(k) là DFT N/2 điểm của các điểm đánh số chẵn của dãy x(n) ban đầu, còn X1(k) là DFT N/2 điểm đánh số lẻ của dãy ban đầu. Mặc dù chỉ số k của dãy X(k) chạy qua N giá trị: k = 0, 1, , N-1 nhưng ta chỉ cần tính, X0(k) và X1(k) với k chạy từ 0 đến N/2-1, do X0(k) và X1(k) tuần hoàn với chu kỳ N/2. Sau khi hai DFT X0(k) và X1(k) tương ứng được tính, chúng sẽ được kết hợp với nhau để tạo ra DFT N điểm là X(k). Bây giờ ta có thể sơ bộ tính số phép nhân và cộng cần có cho cách tính DFT kiểu này. Ta biết rằng một DFT N điểm nếu tính trực tiếp thì cần phép nhân phức và khoảng (chính xác là N(N-1)) phép sộng phức. Sau khi phân tách thành hai DFT N/2 điểm ta cần phép nhân phức và khoảng phép cộng phức để thực hiện X0(k) và X1(k). Sau đó ta mất thêm N phép nhân phức để thực hiện nhân giữa và X1(k), thêm N phép cộng phức để tính X(k) từ X0(k) và . Tổng cộng lại ta cần phép nhân phức và phép cộng phức để tính tất cả các giá trị X(k). Dễ dàng kiểm tra lại rằng với N >2 thì sẽ nhỏ hơn . Như vậy với N chẵn ta đã chia nhỏ DFT N điểm thành hai DFT N/2 điểm với số phép tính và thời gian tính nhỏ hơn. Với N/2 là một số chẵn thì lại hoàn toàn tương tự, ta lại có thể chia DFT N/2 điểm thành các DFT N/4 điểm. Nếu số N có dạng thì ta có thể chia đôi như vậy M lần, cho đến khi số điểm tính DFT là bằng 2. Do việc liên tục chia 2 nên người ta còn gọi FFT cơ số 2 để phân biệt FFT cơ số 4 nếu . Cụ thể X0(k) có thể lại được tách như sau: Tương tự như trước, ta đặt l=2r để tách thành hai dãy chẵn lẻ: Như vậy X0(k) lại được tách thành hai DFT là X00(k) và X01(k). Với X00(k) là DFT của dãy g(r) có chỉ số chẵn và X01(k) là DFT của dãy g(r) có chỉ số lẻ. Công việc được làm hoàn toàn tương tự cho X1(k). Cuối cùng việc phân tách như vậy dẫn đến các DFT hai điểm, khi đó các hệ số W thực sự mang giá trị đặc biệt là 1 và -1 nên trong thực tế không phải làm phép nhân nữa và việc phân chia cũng dừng lại. Với , số lần phân chia là M lần. Số phép tính nhân và cộng phức cần thực hiện sau M=log2N phân chia có thể tính như sau: tương ứng với mỗi lần phân chia ta cần N phép nhân phức để nhân các kết quả của DFT của tầng trước với hệ số W tương ứng và N phép cộng phức để nhóm kết quả lại với phức để thực hiện FFT. 1.5.2.2. Thuật toán FFT cơ số 2 phân chia theo tần số Nguyên tắc chung Ở trên chúng ta đã trình bày thuật toán FFT dựa trên việc phân chia nhỏ dãy vào x(n) để phân tách việc tính DFT N điểm thành các DFT nhỏ hơn. Trong phần này chúng ta sẽ xem xét thuật toán FFT dựa trên việc phân tách dãy ra X(k) thành các dãy nhỏ hơn theo cùng một cách phân tách dãy x(n). Do chỉ số k của dãy X(k) gắn liền với thanh tần số nên các thuật toán này được gọi là các thuật toán FFT phân chia theo tần số. Với giả thiết , ta có thể chia dãy vào thành hai nửa, một nửa chứa N/2 mẫu đầu, x(n) với n=0, 1, , N/2-1. Nửa sau chứa N/2 mẫu còn lại, ta có: hoặc Với W= -1 và tổng hợp lại ta có: Xét k=2r (k chẵn) và k=2r+1 (k lẻ) ta nhận được X(2r) và X(2r+1) tương ứng với dãy ra chỉ số chẵn và dãy ra chỉ số lẻ: với r=0, 1, , (N/2-1) Do nên ta có thể thấy ngay X(2r) chính là DFT N/2 điểm của dãy: g(n)=x(n)+x(n+N/2) trong đó g(n) là tổng nửa đầu của dãy x(n) với nửa sau dãy x(n). X(2r+1) là DFT N/2 điểm của tích W với dãy h(n)= x(n)-x(n+N/2) trong đó h(n) là hiệu của nửa đầu dãy x(n) với nửa sau của dãy x(n). Như vậy DFT N điểm của dãy x(n) có thể được tính như sau: Trước hết tạo ra hai dãy h(n) và g(n), sau đó thực hiện W.h(n). Cuối cùng thực hiện DFT của hai dãy này, ta sẽ có các điểm ra X(k) chỉ số chẵn và X(k) chỉ số lẻ. Với mỗi DFT N/2 điểm ta lại tiến hành hoàn toàn tương tự như đã làm ở trên để tách mỗi DFT N/2 điểm thành 2 DFT N/4 điểm. Cứ thế cho đến khi DFT cuối cùng là các DFT hai điểm. Qua quá trình như vậy tại mỗi lần phân tách, ta cần N/2 phép nhân và tất cả có M=log2N lần phân tách. Số phép nhân tổng cộng là , bằng với phép nhân trong cách tính theo phương pháp phân chia theo thời gian, số phép cộng cũng như vậy. Chương 2 Mà HÓA BAND CON 2.1. CÁC HỆ THỐNG LỌC SỐ NHIỀU NHỊP Kĩ thuật lọc số nhiều nhịp ngày càng được ứng dụng nhiều trong lĩnh vực xử lý số tín hiệu, như là nó có thể dùng để tăng tốc độ tính toán trong các bộ lọc số bằng cách giảm số phép nhân thực hiện được trong một giây. Trong quá trình xử lý tín hiệu thì bề rộng của dải tần số có thể thay đổi, như là các phép lọc có thể triệt tiêu các thành phần tần số không mong muốn, khi đó bề rộng dải tần của tín hiệu xử lý sẽ giảm đi, vậy chúng ta có thể giảm tần số lấy mẫu cho phù hợp với bề rộng phổ của tín hiệu do đó chúng ta đã giảm được số phép tính trong bộ lọc số. Do tính chất ưu việt của bộ lọc số nhiều nhịp này mà nó đã được nghiên cứu và ứng dụng nhiều trong kỹ thuật viễn thông, đặc biệt là trong xử lý tín hiệu số: xử lý tiếng nói, xử lý hình ảnh, các hệ thống antenna, kỹ thuật audio số. Đặt biệt hơn là ứng dụng chính của nó là mã hóa band con (subband coding) trong xử lý tiếng nói, ta sẽ nghiên cứu ở phần sau. Hệ thống xử lý số nhiều nhịp là hệ thống xử lý số tín hiệu mà tần số (hoặc nhịp) lấy mẫu được thay đổi trong quá trình xử lý. 2.1.1. Bộ lọc phân chia Hệ thống mà giảm tần số lấy mẫu từ tới (M>1, nguyên dương) là bộ phân chia. x(n) T y(n) = x(nM) T M: hệ số phân chia Hình 2.1.1. Bộ phân chia Tần số lấy mẫu của tín hiệu rời rạc x(n) sau khi qua bộ phân chia sẽ giảm đi M lần, tức là: (2.1.1) Khi đó chu kỳ lấy mẫu tăng lên M lần và do đó (2.1.2) Tần số lấy mẫu giảm đi M lần sau khi tín hiệu đi qua bộ phân chia theo hệ số M, nên tín hiệu ra y(n) chỉ lấy giá trị của các tín hiệu vào x(n) ở các mẫu n.M (n, M nguyên dương). Vậy chiều dài của tín hiệu bị có lại M lần: Phép phân chia trong miền z có thể biểu diễn như trong hình 2.1.1. X(z) Y(n) Hình 2.1.2 Bộ phân chia trong miền z Trong miền biến số độc lập ta có: y(n) = x(n.M) vậy (2.1.3) Mặt khác ta có dãy p(m): (2.1.4) Đặt m = n.M n=m/M thay vào 1.2.3 ta có: (2.1.5) Việc biểu diễn phép phân chia trong miền tần số chính là việc tìm mối quan hệ giữa và Nếu đánh giá và trên vòng tròn đơn vị của mặt phẳng z thì ta sẽ được mối quan hệ giữa và tức là: Vậy ta có mối quan hệ sau: (2.1.6) Chúng ta thấy rằng, qua phép phân chia kết quả cho thấy tín hiệu x(n) khi đi qua mạch phân chia hệ số M, trong miền tân số sẽ tạo ra M-1 thành phần hư danh, các thành phần hư danh này sẽ gây ra hiện tượng chồng phổ. nhưng nếu x(n) có dải phổ nằm trong khoảng << tức tần số giới hạn dải chắn thì sẽ không gây hiện tượng chồng phổ. Để làm điều này, chúng ta có thể đặt trước bộ phân chia một mạch lọc thông thấp (Low pass filter) có . Mạch lọc thông thấp này có nhiệm vụ loại bỏ các thành phần tần số , chỉ giữa lại thành phần tần số , như vậy sẽ tránh được hiện tượng chồng phổ. Sơ đồ tổng quát của mạch lọc phân chia: h(n) F x(n) y(n) y(n) F Bộ lọc phân chia Hình 2.1.3 Mạch lọc phân chia Trong đó h(n) là đáp ứng xung của mạch lọc thông thấp. Biểu diễn toán tử: x(n) n y(n) y(n) y(n) x(n) Trong miền biến số n ta có phép lọc phân chia: h(n) y(n) y(n) x(n) Ở đây: Lưu ý Trong miền z phép lọc phân chia được miêu tả như sau: H(z) Y(z) Y(z) X(z) ở đây và Để đánh giá X(z), H(z), Y(z), và Y(z) trên vòng tròn đơn vị trong mặt phẳng z ta có thể biểu diễn phép lọc phân chia trong miền tần số: Y(e) Y(e) X(e) ở đây: Nếu là đáp ứng tần số của mạch lọc thông thấp lý tưởng có , thì các thành phần hư danh sẽ không ảnh hưởng đến thông tin, hay không có hiện tượng chồng phổ. Do đó ta có thể tách riêng thành phần đầu tiên (l=0) ra mà dạng tín hiệu sẽ không bị méo. với Nếu là mạch lọc thông thấp lý tưởng, tức là ở dải thông , dải chắn thì thành phần đầu tiên (tại l=1) có dạng như sau: với 2.1.2. Bộ lọc nội suy Hệ thống mà tăng tần số lấy mẫu từ thành (L > 1, và nguyên dương) gọi là bộ nội suy. Ta có bộ nội suy như hình 2.1.4. x(n) T y(n) = x() T L Hệ số nội suy Hình 2.1.4 Bộ nội suy Ta thấy rằng tần số lấy mẫu Fs của tín hiệu rời rạc x(n) sau khi qua bộ nội suy với hệ số L sẽ tăng lên L lần tức: (2.1.7) hoặc chu kỳ lấy mẫu T =1/FS sẽ giảm đi L lần vậy nếu tín hiệu vào mạch nội suy là x(nTS), và tín hiệu ra trở thành . Do tần số lấy mẫu được tăng lên L lần, nên khi tín hiệu qua mạch nội suy có hệ số L thì chiều dài của tín hiệu bị giãn ra L lần: Phép nội suy trong miền z: X(z) Y(z) Hình 2.1.5 Biểu diễn phép nội suy trong miền z Trong miền biến số độc lập n ta có: vậy (2.1.8) Đặt m=n/L n=m.L ta có: (2.1.9) (2.1.10) Ta đánh giá và X(z) trên vòng tròn đơn vị trong mặt phẳng z có quan hệ giữa và : Suy ra: (2.1.11) Chúng ta thấy rằng phép nội suy đã chèn thêm L-1 mẫu biên độ 0 vào giữ hai mẫu của tín hiệu vào x(n) trong miền biến số n, tương ứng trong miền tần số sẽ tạo ra L-1 ảnh phụ của phổ cơ bản sau khi đã co hẹp lại L lần để nhường chỗ cho L-1 ảnh phụ mà không gây hiện tượng chồng phổ. như vậy phép nội suy không làm méo thông tin. Nhưng để nội suy ra các mẫu có biên độ 0 ta phải đặt sau mạch nội suy một mạch lọc có . Trong miền biến số n mạch lọc này làm nhiệm vụ nội suy ra các mẫu biên độ 0. Còn trong miền tần số nó loại bỏ các ảnh phụ cơ bản. Sơ đồ tổng quát của mạch lọc nội suy được biểu diễn trên hình 2.1.6. x(n) y(n) h(n) y(n) Bộ lọc thông thấp có h(n): đáp ứng xung của bộ lọc Hình 2.1.6. Bộ lọc nội suy Dùng các phần tử toán tử : x(n) y(n) y(n) x(n) y(n) Trong miền biến số n: x(n) y(n) y(n) Đổi biến vậy: (2.1.12) Mạch lọc nội suy trong miền z: X(z) Y(z) H(z) Y(z) với X(z) = ZT[x(n)]; Y(z) = ZT[Y(n)] H(z) = ZT[h(n)]; Y(z) = ZT[Y(n)] Mặt khác ta có: Suy ra: (2.1.13) Mạch lọc nội suy trong miền tần số: X(e) Y(e) H(e) Y(e) (2.1.14) 2.1.3. Bé läc biÕn ®æi nhÞp lÊy mÉu víi hÖ sè h÷u tØ Trong kÜ thuËt nhiÒu khi thùc hiÖn mét nhiÖm vô nµo ®ã chóng ta cÇn ph¶i thay ®æi nhÞp lÊy mÉu víi hÖ sè h÷u tØ M/L. §Ó thùc hiÖn nhiÖm vô nµy chóng ta sÏ ghÐp nèi tiÕp hai bé néi suy vµ ph©n chia víi nhau, bé nµy gäi lµ bé biÕn ®æi nhÞp víi hÖ sè M/L. F’S=LFS x(nT’S)=x(nTS/L) ¯M ­L ­L ¯M x(n) FS x(nTS) y­L(n) x(n) FS x(nTS) y¯M(n) H×nh 2.1.7. Bé biÕn ®æi nhÞp lÊy mÉu Ta thÊy r»ng tÇn sè lÊy mÉu FS cña tÝn hiÖu vµo x(n) sau khi qua bé biÕn ®æi nhÞp víi hÖ sè M/L th× tÇn sè lÊy mÉu sÏ bÞ thay ®æi L/M lÇn, tøc lµ: (2.1.15) Chóng ta dïng to¸n tö ®Ó biÓu diÔn phÐp biÕn ®æi nhÞp lÊy mÉu hÖ sè h÷u tØ: hay (2.1.16) Vµ hay (2.1.17) S¬ ®å ®­îc biÓu diÔn ®¬n gi¶n l¹i nh­ h×nh (2.1.8). ­¯M/L ¯­M/L x(n) FS Ts x(n) FS Ts Bé biÕn ®æi nhÞp ­¯M/L vµ bé biÕn ®æi nhÞp ¯­M/L H×nh 2.1.8. Bé biÕn ®æi nhÞp lÊy mÉu hÖ sè M/L Bé ph©n chia vµ bé néi suy kh«ng cã tÝnh chÊt giao ho¸n nªn ta ph¶i ph©n biÖt thø tù tr­íc sau cña bé néi suy vµ bé ph©n chia. MÆt kh¸c bé ph©n chia, bé néi suy vµ bé biÕn ®æi nhÞp kh«ng ph¶i lµ nh÷ng hÖ thèng bÊt biÕn theo biÕn sè n mµ lµ hÖ thèng thay ®æi theo biÕn sè n. Trong hÖ sè M/L th× tö sè lµ hÖ sè cña bé ph©n chia, mÉu sè lµ hÖ sè cña bé néi suy. NÕu M>L th× bé thay ®æi nhÞp lµm nhiÖm vô nÐn tÝn hiÖu theo tû lÖ M/L NÕu M<L th× bé thay ®æi nhÞp lµm nhiÖm vô gi·n tÝn hiÖu theo tû lÖ M/L. Dïng biÕn ®æi Z ®Ó nghiªn cøu quan hÖ vµo ra cña c¸c bé biÕn ®æi nhÞp vµ gi¶i thÝch tÝnh chÊt cña phÐp biÕn ®æi nhÞp lÊy mÉu. XÐt quan hÖ vµo ra cña bé biÕn ®æi nhÞp ¯­M/L ta cã: Vµ trong miÒn Z: (2.1.18) Víi phÐp ph©n chia: Sau khi y¯M(n) ®i qua bé néi ­L: (2.1.19) XÐt quan hÖ vµo ra cña bé biÕn ®æi nhÞp ­¯M/L PhÐp biÕn ®æi nhÞp nh­ sau: Trong miÒn Z: (2.1.20) Víi phÐp néi suy ­L ta cã: Sau ®ã y­L(n) ®i qua bé ph©n chia ¯M: VËy (2.1.21) §¸nh gi¸ X(z), Y­¯M/L(z), Y¯­M/L trªn vßng trßn ®¬n vÞ trong mÆt ph¼ng Z: (2.1.22) (2.1.23) Bé läc biÕn ®æi nhÞp lÊy mÉu víi hÖ sè h÷u tû: Chóng ta x©y dùng bé läc biÕn ®æi nhÞp lÊy mÉu víi hÖ sè h÷u tû cã thÓ ®¶m b¶o biÕn ®æi nhÞp víi hÖ sè kh«ng nguyªn nh­ng kh«ng g©y hiÖn t­îng chång phæ tøc lµ kh«ng lµm h­ th«ng tin cña chóng ta. Bé läc nµy ®­îc x©y dùng b»ng c¸ch ghÐp nèi tiÕp hai bé läc néi suy vµ bé läc ph©n chia nh­ h×nh sau: ­L hL(n) ¯M hM(n) x(n) FS y(n) LFS LFS Bé läc néi suy bé läc ph©n chia H×nh 2.1.9. Bé läc víi hÖ sè lÊy mÉu h÷u tû Nh­ h×nh trªn ta thÊy bé läc hL(n) ®­îc ghÐp nèi tiÕp víi bé läc hM(n), vËy ta cã thÓ kÕt hîp hai bé läc nµy thµnh mét bé läc chung cã ®¸p øng xung h(n). Bé läc h(n) nµy ph¶i lµm c¶ hai nhiÖm vô ®èi víi phÐp néi suy vµ phÐp ph©n chia, do ®ã ta ph¶i chän h(n) sao cho cïng mét lóc thùc hiÖn ®­îc c¶ hai nhiÖm vô nµy. Hai bé läc nµy ®­îc ghÐp nèi tiÕp nªn ®¸p øng tÇn sè H(ejw)= FT[h(n)] lµ: H(ejw)= HL(ejw).HM(ejw) (2.1.24) Víi HL(ejw) = FT[ hL(n)] vµ HM(ejw) = FT [hM(n)] VËy ta cã: (2.1.25) Ta biÕt r»ng HL(ejw) lµ bé läc th«ng thÊp cã tÇn sè c¾t , vµ HM(ejw) lµ bé läc th«ng thÊp cã nªn H(ejw) cÇn ®­îc chän ®Ó tháa m·n ®iÒu kiÖn: KÕt qu¶ ta ®­îc bé läc biÕn ®æi nhÞp hÖ sè M/L víi chØ mét bé läc th«ng thÊp cã ®¸p øng xung h(n) vµ ®¸p øng tÇn sè H(ejw). Tõ ®ã ta cã s¬ ®å khèi cña bé läc nµy nh­ sau: ­L h(n) ¯M FS x(n) y(n) H×nh 2.10. S¬ ®å bé läc biÕn ®æi nhÞp lÊy mÉu Chóng ta cã thÓ dïng to¸n tö ®Ó biÓu diÔn: (2.1.26) HoÆc ng¾n gän h¬n: (2.1.27) M« t¶: (2.1.28) Víi Ta cã: Do ®ã: (2.1.29) M« t¶ trong miÒn Z: (2.1.30) Víi: X(z) = ZT[x(n)] H(z)= ZT[h(n)] Y­LH(z)= ZT[y­L(n)] Y­LH(z)= ZT[y­LH(z)] Y­H¯M/L(z)= ZT[y­H¯M/L(n)] Ta cã: Y­L(z) = X(zL) Y­LH = X(zL) . H(z) (2.1.31) §¸nh gi¸ X(z), H(z), Y­LH(z) vµ Y­H¯M/L(z) trªn vßng trßn ®¬n vÞ trong mÆt ph¼ng Z ta cã: (2.1.32) Y­L(ejw) = X(ejwL) Y­LH(ejw) = X(ejwL) . H(ejw) (2.1.33) 2.2. BANK LỌC SỐ QMF Bank lọc số là một tập hợp các bộ lọc số với cùng chung một đầu vào và nhiều đầu ra hoặc với nhiều đầu vào và một đầu ra. Bank lọc số được chia ra làm hai loại là bank lọc số phân tích và bank lọc số tổng hợp. 2.2.1. Bank lọc số phân tích Bank lọc số phân tích là tập hợp các bộ lọc số có đáp ứng tần số là H được nối với nhau theo kiểu một đầu vào và nhiều đầu ra, cấu trúc của bank lọc số phân tích được miêu tả trên hình (2.2.1). Tín hiệu x(n) đưa vào đầu vào và được phân tích thành M tín hiệu ở đầu ra là x(n) , như vậy trong miền tần số mỗi tín hiệu x(n) là một dải tần số con trong dải tần số x(n) nên M tín hiệu x(n) được gọi là tín hiệu band con (subband). H H H x(n) X(e) Hình 2.2.1. Bank lọc số phân tích Các bộ lọc số , H(e) sẽ là bộ lọc thông thấp, H(e) đến H(e) sẽ là các bộ lọc số thông dải còn H(e) sẽ là bộ lọc thông cao mà các tần số cắt của các bộ lọc này là sẽ kế tiếp nhau. Như vậy các bộ lọc H(e), H(e), ..., H(e) được gọi là bộ lọc phân tích, còn tập hợp các bộ lọc hay { H(e), H(e), ..., H(e)} được gọi là bank lọc số phân tích. 2.2.2. Bank lọc số tổng hợp Bank lọc số tổng hợp là các bộ lọc số có đáp ứng tần số là G(e) được nối với nhau theo kiểu nhiều đầu vào và một đầu ra, cấu trúc của bank lọc số tổng hợp được miêu tả trên hình (2.2.2). G(e) G(e) G(e) Hình 2.2.2 Bank lọc số tổng hợp Các tín hiệu dải con x(n) được đưa vào đầu vào của bộ lọc G(e) tương ứng. Tương tự như bank lọc số phân tích thì bank lọc số tổng hợp cũng có các bộ lọc: G(e) sẽ là bộ lọc thông thấp, G(e) đến G(e) sẽ là các bộ lọc số thông dải còn G(e) sẽ là bộ lọc thông cao và có tần số tương ứng với tần số của các bộ lọc H(e) ở bank lọc số tổng hợp. Như vậy các bộ lọc G(e), G(e), ..., G(e) được gọi là bộ lọc số tổng hợp, còn tập hợp các bộ lọc { G(e), G(e), ..., G(e) } được gọi là bank lọc số tổng hợp. Tín hiệu sau khi ra khỏi bank lọc số tổng hợp sẽ là . 2.2.3. Bank lọc hai kênh QMF Chúng ta đã phân tích tín hiệu x(n) thành các tín hiệu dải con (subband) x(z) và tổng hợp các tín hiệu dải con này từ bank lọc số tổng hợp được tín hiệu lối ra . Bây giờ chúng ta sẽ kết hợp bank lọc số phân tích và bank lọc số tổng hợp với các bộ phân chia và bộ nội suy để tạo ra bank lọc số nhiều nhịp QMF (Quadrature mirror filter bank) hay bank lọc số gương cầu phương. Với hệ số phân chia M = 2 và hệ số nội suy L=2 ta sẽ có bank lọc số nhiều nhịp hai kênh QMF như hình (2.2.3). G H G H x(n) x(n) x(n) v(n) v(n) y(n) y(n) y(n) y(n) (n) Bank lọc phân tích Phân chia Bank lọc tổng hợp Nội suy Hình 2.2.3. Bank lọc số nhiều nhịp hai kênh QMF Ta thấy tín hiệu lối vào x(n) được phân tích thành hai tín hiệu dải con và nhờ bank lọc số phân tích gồm hai bộ lọc, H(z) bộ lọc thông thấp và H1(z) bộ lọc thông cao có tần số cắt là , và được đưa vào bộ giảm tần số lấy mẫu với hệ số là 2. Tại đầu thu các tín hiệu v(n) và v(n), được đưa vào bộ tăng tần số lấy mẫu với hệ số là 2, y(n) và y(n) qua bank lọc tổng hợp gồm hai bộ lọc G(z) và G(z) tín hiệu đầu ra ở hai bộ lọc này cộng lại để trở thành tín hiệu ở đầu thu là . Tuy nhiên khi thiết kế bộ lọc số này sẽ không thể đạt đựơc lý tưởng do đó tín hiệu đầu ra không thể giống hoàn toàn đựợc tín hiệu vào x(n). khi đó muốn tín hiệu được khôi phục hoàn toàn thì: (2.2.1) c là hằng số. Khi đó bank lọc QMF này được gọi là bank lọc QMF khôi phụp hoàn hảo (Perfect Reconstruction: PR), ký hiệu là PR QMF. Quan hệ giữa các tín hiệu trong bank lọc số hai kênh QMF Xét mối quan hệ giữa các tín hiệu trong miền z. X(z) = H(z).X(z) (2.2.2) Tín hiệu sau khi phân chia V(z): (2.2.3) Tín hiệu sau khi qua khỏi bộ nội suy: (2.2.4) Tín hiệu được khôi phục sau khi qua bộ lọc tổng hợp: (2.2.5) Từ (2.2.4) và (2.2.5), với k=0, 1 ta có: (2.2.6) Biểu diễn dưới dạng ma trận: (2.2.7) Đặt Khi đó (2.2.8) Ta thấy rằng ma trận H(z) chính là thành phần hư danh (Aliasing) hay hiện tượng chồng phổ. Còn X(-z) là ảnh trễ đồng dạng với X(z) gây ra hiện tượng chồng phổ ở bộ phân chia, và nó cũng là nguyên nhân gây ra hiện tượng ảnh phụ ở bộ nội suy. Bây giời chúng ta sẽ xét các sai số trong bank lọc này. Như đã nói ở trên thì bank lọc QMF này có ba loại sai số có thể sinh ra là: sai số do thành phần hư danh, sai só do méo biên dộ, sai số do méo pha. Sai số do thanh phần hư danh: Chúng ta hãy sẽ mô tả một vài trường hợp của đáp ứng biên độ và như hình (2.2.4). 1 0 a) 0 0 0 b) c) d) Hình 2.2.4. Đáp ứng biên độ và a) trường hợp bộ lọc lý tưởng; b), c),d) không lý tưởng Từ hình (2.2.4) ta thấy rằng và có quan hệ: = (2.2.10) Hãy tưởng tượng đặt một gương phẳng vào vị trí trên trục tần số thì sẽ là ảnh của gương của và chính là một phần tử của tần số lấy mẫu F. Trên thực tế các bộ lọc số và không thể đạt được lý tưởng. Hình (2.2.4.a) sễ không gây ra sai số hư danh hay không gây ra hiện tượng chồng phổ đối với tín hiệu ra khỏi bộ phân chia là và bề rộng của dải thông và dải chắn trong trường hợp này đúng bằng , bề rộng của dải quá độ . Hình (2.2.4.d) là trường hợp không lý tưởng nhưng cũng không gây ra hiện tượng chồng phổ đối với , bề rộng dải thông nhỏ hơn và bề rộng dải chắn sẽ lớn hơn . Trong trường hợp này nếu chọn bề rộng dải quá độ rất hẹp thì sẽ gần đạt lý tưởng và không gây chồng phổ. Còn hình (2.2.4.c) và d) sẽ gây ra hiện tượng chồng phổ tức có thành phần hư danh xuất hiện với các tín hiệu . Tuy nhiên thành phần hư danh có thể khử được nếu thiết kế banh lọc tổng hợp để bù lại. Muốn khử thành phần hư danh X(-z) ta chỉ cần triệt tiêu đại lượng đứng trước X(-z) trong biểu thức 2.2.5, tức là: (2.2.11) Vậy ta có thể viết biểu thức 2.2.5 như sau: (2.2.12) Với được gọi là hàm truyền méo dạng. Và được gọi là hàm truyền chồng phổ. Để khử thành phần hư danh thì = 0 (2.2.13) Sai số do méo biên độ và méo pha Từ (2.2.3) ta có: Để khử thành phần hư danh thì ta thay vào T0 (z) ta có: Trong miền tần số: (2.2.14) Biểu diễn dưới dạng modul và argument: (2.2.15) Nếu là bộ lọc số thông dải (All-pass) pha tuyến tính, tức là: với mọi (c là hằng số) và j(ω) = -aw (2.2.16) Thì bank lọc QMF sẽ không gây méo biên độ và pha. (2.2.17) Vậy trong miền n ta có: (2.2.18) Lúc đó bank lọc số QMF là bank lọc số khôi phục hoàn hảo (PR QMF) vì tín hiệu ra chỉ sai khác tín hiệu vào theo tỉ lệ c và trễ đi một lượng là. Nhận xét Ta thấy rằng tất cả các tín hiệu có phổ phân bố không đều, nhưng qua các mạch lọc ta có thể chia các dải tần số ra làm hai dải: dải tần số thấp và dải tần số cao. Vậy ở dải thấp ta có thể tăng tần số lấy mẫu lên, còn ở dải tần cao ta có thể hạ xuống bằng các mạch hạ nhịp và tăng nhịp. Do đó khi kết hợp mạch hạ nhịp và tăng nhịp cùng với các mạch lọc hay bank lọc số QMF thì phổ của tín hiệu có thể triệt tiêu được các thành phần tần số không mong muốn. Và bề rộng của dải tần số của tín hiệu cần xử lý sẽ giảm vậy chúng ta có thể giảm tần số lấy mẫu cho phù hợp với tín hiệu. Tín hiệu cũng được khôi phục chính xác hơn. Cho nên nó rất phù hợp cho xử lý tín hiệu tiếng nói. 2.3. Mà HÓA BAND CON CỦA TÍN HIỆU TIẾNG NÓI Ở trên chúng ta đã định nghĩa thế nào là band con trong mục 2.1.1. Sau đây chúng ta sử dụng một phương pháp kĩ thuật khác là số hóa tín hiệu âm thanh trong truyền phát và lưu trữ. Mã hóa band con rất thuận tiện cho việc nén tín hiệu âm thanh, vì thông thường năng lượng của phổ tín hiệu phân bố không đều, năng lượng của phổ tiếng nói tập trung ở miền tần số thấp, còn ở miền tần số cao năng lượng của phổ âm thanh rất nhỏ. Do vậy, chúng ta sẽ mã hóa dải tần thấp với số bit lớn hơn ở dải tần cao. Phương pháp mã hóa band con là sự phân chia dải tần của tín hiệu âm thanh thành nhiều dải tần nhỏ và mỗi dải sẽ được mã hóa với số bít riêng. Ở đây chúng ta sử dụng bank lọc số nhiều nhịp để phân chia dải tần của tín hiệu thành nhiều dải con để mã hóa dải con và giải mã dải con. Đơn giản nhất là chúng ta dùng bank lọc số 2 kênh QMF (bộ lọc gương cầu phương) để mã hóa thành 2 dải con. Có hai phương pháp mã hóa dải con là sử dụng cấu trúc dạng cây đơn phân giải và cấu trúc dạng cây đa phân giải. 2.3.1. Cấu trúc dạng cây phân giải đều Năng lượng của phổ tín hiệu thường phân bố rất không đồng đều trên toàn bộ dải tần số vậy để mã hóa dải con hiệu quả cao chúng ta sẽ mã hóa làm nhiều tầng. Tín hiệu âm thanh đã được lấy mẫu với tần số F được chia ra làm nhiều tầng. Tầng thứ nhất tín hiệu x(n) cho qua bộ lọc thông thấp H(z) và và bộ lọc thông cao H(z) chia làm hai dải con đều nhau: dải thứ nhất , dải thứ hai . Tầng thứ hai cho qua bộ lọc thông thấp H(z), H(z) và và bộ lọc thông cao H(z), H(z) như miêu tả hình (2.3.1), chia hai dải con của tầng thứ nhất thành các dải con có bề rộng bằng nửa tầng thứ nhất, mỗi dải tần có bề rộng bằng và cứ tiếp tục như vậy chúng ta sẽ phân dải phổ của tín hiệu làm rất nhiều dải con và sau khi ra khỏi bank lọc phân tích bề rộng phổ của tín hiệu dải con là bằng nhau nên gọi là phân giải đều. Hình (2.3.1.a) tín hiệu sau khi qua hai tầng được phân chia ra làm 4 dải con bằng nhau mỗi dải là , chúng ta sẽ mã hóa với số bít khác nhau đối với mỗi dải con này. Chennel Chennel Chennel Chennel H(z) H(z) H1(z) H(z) H(z) H(z) H(z) Encoder Encoder Encoder Encoder x(n) 1 0 a) b) Hình 2.3.1. Cấu trúc dạng cây đơn phân giải của bank lọc phân tích Chúng ta đã phân chia tín hiệu thành các dải con và mã hóa với số bít khác nhau, do đó vấn đề đặt ra là giải mã và tổng hợp dải con của tín hiệu. Hình (2.3.2) là cấu trúc bộ tổng hợp các dải con của tín hiệu. Tín hiệu dải con qua các bộ giải mã rồi đưa tới các bank lọc số QMF tương ứng G(z), G(z), G(z), G(z). Tương tự như bộ phân chia được chia làm nhiều tầng thì bộ tổng hợp cũng được chia làm nhiều tầng, tín hiệu thông thấp và tín hiệu thông cao liền kề nhau được cộng lại, lọc ra và được tổng hợp lại, tức là ở tầng thứ nhất tín hiệu qua bank lọc G(z), G(z) được cộng lai rồi qua bank lọc G(z) ở tầng 2 và tín hiệu qua bank lọc G(z), G(z) cộng lại rồi qua bank lọc G(z) ở tầng 2. Tín hiệu qua bank lọc G(z) và G(z) được tổng hợp lại là . Decoder 2 G(z) Decoder Decoder Decoder 2 2 2 2 2 G (z) G (z) G (z) G(z) G(z) Hình 2.3.2 Cấu trúc dạng cây phân giải đều của bank lọc tổng hợp Chúng ta có thể sử dụng cấu trúc dạng cây phân giải đều tương đương của bank lọc số 4 kênh phân tích và tổng hợp như hình (2.3.3). Bank lọc phân tich, mã hóa G H H H H G G G x(n) Bank lọc tổng hợp, giả mã Hình 2.3.3 Cấu trúc tương đương dạng cây phân giải đều 2.3.2. Cấu trúc dạng cây đa phân giải (Multiresolution) Trong tín hiệu âm thanh thì phổ năng lượng tập trung ở tần số thấp và không đều nhau nên chúng ta có thể phân tín hiệu thành các tín hiệu dải con có bề rộng phổ không bằng nhau, do đó ta gọi là đa phân giải. Chúng ta cũng phân tách tín hiệu thành nhiều tầng. Ở tầng thứ nhất, tín hiệu x(n) đã được lấy mẫu với tần số lấy mẫu F, qua bộ lọc thông thấp H(z) và bộ lọc thông cao H(z) chia làm hai dải tần số: dải tần số thấp và dải tần số cao . Tầng thứ hai, dải tần số thấp ở tầng thứ nhất được tách ra tiếp tục cho qua bộ lọc thông thấp H(z) và bộ lọc thông cao H(z) chia làm hai dải tần số: dải tần số thấp và dải tần số cao . tầng thứ ba, dải tần thấp đực tách ra ở tầng thứ hai này qua bộ lọc thông thấp H(z) và bộ lọc thông cao H(z) chia ra làm hai dải tần: dải tần số thấp và dải tần số cao . Theo cách đó, sau khi qua mỗi lần phân chia dải tần số thấp lại được tách ra và cho qua bộ lọc thông thấp và bộ lọc thông cao chia ra thành các dải tần nhỏ. Như vậy sau 3 lần phân chia được 4 dải tần con. Chúng ta sẽ mã hóa 4 dải tần con này với các bít khác nhau. Do năng lượng của tín hiệu phổ phân bố không đồng đều trên toàn bộ các dải con nên chúng ta cũng có thể làm giảm tỉ lệ bít của tín hiệu âm thanh bằng việc mã hóa số bít khác nhau với những dải tần khác nhau. Cấu trúc dạng cây đa phân giải của bank lọc số tổng hợp 3 tầng được minh họa như hình (2.3.4). Ở phần tổng hợp tín hiệu các dải con thu được đưa vào bộ giải mã rồi qua bank lọc số QMF tương ứng , , , . Tổng hợp tín hiệu cũng chia làm nhiều tầng như ở phần phân chia nhưng khác với cấu trúc dạng cây phân giải đều là: tín hiệu dải tần số thấp sẽ được cộng lần lượt với dải tần số cao. Nghĩa là, ở tầng thứ nhất tín hiệu qua bank lọc và được cộng lại rồi qua bank lọc ở tầng thứ 2, tín hiệu qua tiếp tục cộng với tín hiệu đầu ra của bank lọc và cho qua bank lọc ở tầng 3 và được cộng với tín hiệu đầu ra của bank lọc được tín hiệu như cấu trúc dạng cây đa phân giải của bank lọc số tổng hợp 3 tầng như hình (2.3.5). Hình 2.3.4. Cấu trúc dạng cây đa phân giải của bank lọc phân tích Hình 2.3.5 Cấu trúc dạng cây đa phân giải của bank lọc tổng hợp Ta có thể tổng hợp cấu trúc dạng cây đa phân giải tương đương của bank lọc số 3 tầng phân tích và tổng hợp như hình (2.3.6). G H H H H G G G x(n) Bank lọc tổng hợp, giả mã Bank lọc phân tích, giả mã Hình 2.3.6 Cấu trúc tương đương dạng cây đa phân giải 2.4. MỘT SỐ LOẠI Mà Thông thường dạng của tín hiệu đưa vào hệ thống sử lý tín hiệu là tín hiệu tương tự, nhưng trong mã hóa tín hiệu thì tín hiệu được xử lý phải là tín hiệu số. Do đó ta phải biến đổi tín hiệu tương tự sang tín hiệu số. Vậy từ tín hiệu tương tự ta phải lấy mẫu (sample) tín hiệu rồi lượng tử hóa chúng (quantize) sau đó mới tiến hành mã hóa. Quantizing Encoder Decoder Hình 2.4.1. Mã hóa và giải mã 2.4.1. Lượng tử hóa (Quantizing) Ở trên ta đã xét quá trình lấy mẫu, bây giời chúng ta xét tiếp qua trình lượng tử hóa. Sau qúa trình lấy mẫu ta thu được các giá trị mẫu UPAM có biên độ từ . Để chuyển tín hiệu dãy UPAM thành dãy nhị phân là rất khó khăn bởi vì giá trị UPAM là một dãy vô hạn, để đơn giản cho mã hóa thì người ta chuyển dãy UPAM về một số hữu hạn các mức, quá trình này gọi là quá trình lượng tử hóa. Quá trình lượng tử hóa chia làm hai loại: Lượng tử hóa đều: là các mức lượng tử chia với khoảng cách đều bằng nhau. Lượng tử hóa không đều: là các mức lượng tử chia với khoảng cách không bằng nhau. Hình 2.4.2. Quá trình lượng tử hóa. Khoảng cách các bước lượng tử phụ thuộc vào biên độ của quá trình lấy mẫu, khoảng cách giữa các mức lượng tử gọi là . Chia khoảng biên độ thành n mức đều nhau khi đó khoảng cánh giữa các mức là: là bước lượng tử, và n là số mức lượng tử. Nguyên tắc lấy các giá trị UPAM UPAM được lấy theo nguyên tắc làm tròn và lượng tử. trong đó l là phần nguyên, còn m là phần thập phân của UPAM Nếu Nếu . 2.4.2. Mã hóa đều theo phương pháp so sánh * Nguyên tắc: UPAM được so sách với các điện áp mẫu URF: Nếu UPAM URF ( theo giá trị giảm dần): bi =1, khi đó URF được tham gia vào quá trình mã hóa tiếp theo. Nếu UPAM URF thì bi = 0, khi đó URF không được tham gia vào quá trình mã hóa tiếp. URF= 2m-i với i = 1n Với tín hiệu thoại ta có 7 mức điện áp mẫu: m = 7. URF= 64 URF= 32 URF= 16 URF= 8 URF= 4 URF=2 URF=1 Với là một bước lượng tử. Vậy mã hóa đều theo phương pháp so sánh thì ta chỉ còn 7 mẫu và qua 7 quá trình so sánh và hình thành quá trình mã hóa. * Các bước mã hóa UPAM: Ta đi xác định dạng của dãy UPAM với các bít: b0 b1 b2 b3 b4 b5 b6 b7 Bít b0 là bít dấu: Nếu UPAM 0 thì b0 = 1 Nếu UPAM < 0 thì b0 = 0. Bít b1: UPAM được so sánh với 64. Nếu UPAM 64 thì b1 = 1 khi đó 64 được tham gia vào quá trình so sánh tiếp và URF = 64. Nếu UPAM < 0 thì b1 = 0 khi đó 64 không được tham gia vào quá trình so sánh tiếp. Bít b2: - Nếu b1 = 1 thì UPAM được so sánh với URF + 32. Nếu UPAM URF + 32 thì b2 = 1 khi đó URF + 32được tham gia vào quá trình so sánh tiếp và URF = URF + 32. Nếu UPAM < URF + 32thì b2 = 0 khi đó 32 không được tham gia vào quá trình so sánh tiếp. - Nếu b1 = 0 thì UPAM được so sánh với 32. Nếu UPAM 32 thì b2 = 1 khi đó URF + 32được tham gia vào quá trình so sánh tiếp và URF = URF + 32. Nếu UPAM < 32thì b2 = 0 khi đó 32 không được tham gia vào quá trình so sánh tiếp. Bít b3: - Nếu b2 = 1 thì UPAM được so sánh với URF + 16. Nếu UPAM URF + 16 thì b3 = 1 khi đó URF + 16 được tham gia vào quá trình so sánh tiếp và URF = URF + 16. Nếu UPAM < URF + 16 thì b3 = 0 khi đó 16 không được tham gia vào quá trình so sánh tiếp. - Nếu b2 = 0 thì UPAM được so sánh với 16. Nếu UPAM 16 thì b3= 1 khi đó URF + 16được tham gia vào quá trình so sánh tiếp và URF = URF + 16. Nếu UPAM < 16 thì b3 = 0 khi đó 16 không được tham gia vào quá trình so sánh tiếp. Bít b4: - Nếu b3= 1 thì UPAM được so sánh với URF + 8. Nếu UPAM URF + 8 thì b4 = 1 khi đó URF + 8 được tham gia vào quá trình so sánh tiếp và URF = URF + 8. Nếu UPAM < URF + 8thì b4 = 0 khi đó 8 không được tham gia vào quá trình so sánh tiếp. - Nếu b3 = 0 thì UPAM được so sánh với 8. Nếu UPAM 8 thì b4 = 1 khi đó 8được tham gia vào quá trình so sánh tiếp URF = URF + 8. Nếu UPAM < 8thì b4 = 0 khi đó 8 không được tham gia vào quá trình so sánh tiếp. Bít b5: - Nếu b4 = 1 thì UPAM được so sánh với URF + 4. Nếu UPAM URF + 4 thì b5 = 1 khi đó URF + 4 được tham gia vào quá trình so sánh tiếp và URF = URF + 4. Nếu UPAM < URF + 4thì b5 = 0 khi đó 4 không được tham gia vào quá trình so sánh tiếp. - Nếu b4 = 0 thì UPAM được so sánh với 4. Nếu UPAM 4 thì b5 = 1 khi đó 4được tham gia vào quá trình so sánh tiếp URF = URF + 4. Nếu UPAM < 4thì b5 = 0 khi đó 4 không được tham gia vào quá trình so sánh tiếp. Bít b6: - Nếu b5 = 1 thì UPAM được so sánh với URF + 2. Nếu UPAM URF +4 thì b6 = 1 khi đó URF + 2 được tham gia vào quá trình so sánh tiếp và URF = URF + 2. Nếu UPAM < URF + 2thì b6 = 0 khi đó 2 không được tham gia vào quá trình so sánh tiếp. - Nếu b5 = 0 thì UPAM được so sánh với 2. Nếu UPAM 2 thì b6 = 1 khi đó 2được tham gia vào quá trình so sánh tiếp URF = URF + 2. Nếu UPAM < 2thì b6 = 0 khi đó 2 không được tham gia vào quá trình so sánh tiếp. Bít b7: - Nếu b6 = 1 thì UPAM được so sánh với URF + 1. Nếu UPAM URF + 1 thì b7 = 1 khi đó URF + 1 được tham gia vào quá trình so sánh tiếp và URF = URF + 1. Nếu UPAM < URF + 1thì b7 = 0 khi đó 1 không được tham gia vào quá trình so sánh tiếp. - Nếu b6 = 0 thì UPAM được so sánh với 1. Nếu UPAM 1 thì b7 = 1 khi đó 1được tham gia vào quá trình so sánh tiếp URF = URF + 1. Nếu UPAM < 1thì b7 = 0 khi đó 1 không được tham gia vào quá trình so sánh tiếp. * Chú ý: ở đây dấu (-) chỉ xây dựng bít b0 còn tất cả các giá trị quay về dấu (+). * Xét với một ví dụ: với UPAM = 114. Xác định bít b0: do UPAM = 114> 0 nên b0 =1. Xác định bít b1: UPAM được so sánh với 64. Do UPAM > 64 nên b1 = 1 (64được tham gia vào quá trình so sánh tiếp). Xác định bit b2: Do b1 = 1 nên UPAM sẽ được so sánh với 64+ 32= 96. Vậy UPAM > 64+ 32 b2 = 1 ( 96được tham gia vào quá trình so sánh tiếp). Xác định bít b3: Do b2 = 1 nên UPAM sẽ được so sánh với 96+ 16= 112. Vậy UPAM > 112 b3 = 1 ( 112được tham gia vào quá trình so sánh tiếp). Xác định bít b4: Do b3 = 1 nên UPAM sẽ được so sánh với 112+ 8= 120. Vậy UPAM < 120 b4 = 0 ( chỉ có 112được tham gia vào quá trình so sánh tiếp). Xác định bít b5: Do b4 = 0 nên UPAM sẽ được so sánh với 112+ 4= 116. Vậy UPAM < 116 b5 = 0 ( chỉ có 112được tham gia vào quá trình so sánh tiếp). Xác định bít b6: Do b5 = 0 nên UPAM sẽ được so sánh với 112+ 2= 114. Vậy UPAM = 114 b6 = 1 ( 114được tham gia vào quá trình so sánh tiếp). Xác định bít b7: Do b6 = 1 nên UPAM sẽ được so sánh với 114+ 1= 115. Vậy UPAM < 115 b7 = 0. Vậy dẫy UPAM sẽ có dạng: b0 b1 b2 b3 b4 b5 b6 b7 = 11110010. 2.4.3. Mã hóa theo phương pháp phản hồi phi tuyến Phương pháp mã hóa phản hồi phi tuyến khác với mã hóa theo phương pháp so sánh. Đầu tiên ta phải xét xem nó nằm trong đoạn nào, sau khi biết nó nằm trong đoạn nào ta sẽ xác định nó nằm ở mức nào trong đoạn. Để làm điều đó ta sẽ xét bảng (2.1) sau: Đoạn Bít đoạn Mức chuẩn trong đoạn Mức đầu đoạn b1 b2 b3 b7 b6 b5 b4 0 0 0 0 1 2 4 8 0 1 0 0 1 1 2 4 8 16 2 0 1 0 2 4 8 16 32 3 0 1 1 4 8 16 32 64 4 1 0 0 8 16 32 64 128 5 1 0 1 16 32 64 128 256 6 1 1 0 32 64 128 256 512 7 1 1 1 64 128 256 512 1024 Bảng 2.1. Các nguồn điện áp mẫu * Các bước mã hóa theo phương pháp phản hồi phi tuyến. Xác định các bít đoạn b1 b2 b3: Xác định bít b1: so sánh UPAM với 128 (so sánh với mức đầu đoạn). Nếu UPAM 128 b1 = 1. Nếu UPAM < 128 b1 = 0. Xác định bít b2: - Nếu b1 = 0 thì so sánh UPAM với 32. Khi đó: Nếu UPAM 32 thì b2 = 1 Nếu UPAM < 32 thì b2 = 0. - Nếu b1 =1 thì so sánh UPAM với 512. Khi đó: Nếu UPAM 512 thì b2 = 1 Nếu UPAM < 512 thì b2 = 0. Xác định bít b3: - Nếu b1 b2 = 00 thì so sánh UPAM với 16. Khi đó: Nếu UPAM 16 thì b3 = 1 Nếu UPAM < 16 thì b3 = 0. - Nếu b1 b2 = 01 thì so sánh UPAM với 64. Khi đó: Nếu UPAM 64 thì b3 = 1 Nếu UPAM < 64 thì b3 = 0. - Nếu b1 b2 = 10 thì so sánh UPAM với 256. Khi đó: Nếu UPAM 256 thì b3 = 1 Nếu UPAM < 256 thì b3 = 0. - Nếu b1 b2 = 11 thì so sánh UPAM với 1024. Khi đó: Nếu UPAM 1024 thì b3 = 1 Nếu UPAM < 1024 thì b3 = 0. Sau khi xác định được các bít b1 b2 b3 thì ta xác định tiếp các bít còn lại là bít b4 b5 b6 b7. Tương tự như phương pháp mã hóa đều theo phương pháp so sánh nhưng cộng thêm mức đầu đoạn dựa trên những bít đã xác định được ở trên. * Để hiểu hơn về mã hóa theo phương pháp phản hồi phi tuyến chúng ta hãy xét ví dụ: với UPAM = 187. Đều tiên ta hãy xác định các bít b1 b2 b3. Xác định bít b1: so sánh UPAM với mức đầu đoạn 128. Ta có UPAM > 128 b1 = 1. Xác định bít b2: do b1 = 1 nên so sánh UPAM với mức đầu đoạn 512. Ta có UPAM < 512 b2 = 0. Xác định bít b3: do b1 b2 = 10 so sánh UPAM với mức đầu đoạn 256. Ta có UPAM < 256 b3 = 0. Xác định bít b4: do b1 b2 b3 = 100 so sánh UPAM với 128+ 64. Ta có UPAM < 128+ 64= 192 b4 = 0 khi đó 64 không được tham gia so sánh tiếp. Xác định bít b5: do b1 b2 b3 b4 = 1000 so sánh UPAM với 128+ 32. Ta có UPAM > 128+ 32= 160 b5 = 1, khi đó 32 được tham gia vào so sánh tiếp. Xác định bít b6: do b1 b2 b3 b4 b5 = 10001 so sánh UPAM với 128+ 32+ 16. Ta có UPAM > 128+ 32+ 16= 176 b6 = 1, khi đó 16 được tham gia vào so sánh tiếp. Xác định bít b7: do b1 b2 b3 b4 b5 b7 = 100011 so sánh UPAM với 128+ 32+ 16+ 8. Ta có UPAM > 128+ 32+ 16+ 8= 184 b7 = 1, khi đó 16 được tham gia vào so sánh tiếp. Do UPAM > 0 nên b0 = 1. Vậy dẫy UPAM sẽ có dạng: b0 b1 b2 b3 b4 b5 b7 = 11000111. 2.5. GIẢI Mà Sau khi mã hóa chúng ta phải giả mã chúng. Tức là ta chuyển đổi mỗi từ mã n bít thành một xung lượng tử đã bị nén và sau đó dãn biên độ xung tới giá trị như khi chưa nén. Dãy xung đầu ra bộ giả mã qua bộ lọc thông thấp có tần số cắt bằng Fs/2 để khôi phục lại tín hiệu ở đầu vào. Thí dụ: đầu vào bộ giải mã có từ mã 10110101, xác định biên độ xung đầu ra: b0 = 1, giải mã thành xung dương. 011 ứng với đoạn 3, vì vậy đầu ra của bộ giải mã có nguồn điện áp mẫu đầu đoạn 3 là 64. Bít thứ sáu bằng 1 ứng với b5 và nên có thêm nguồn điện áp mẫu 16. Bít thứ tám bằng 1 ứng với b7 nên đầu ra có thêm nguồn điện áp mẫu 4. Như vậy đầu ra bộ giải mã có tổng 3 nguồn điện áp mẫu bằng 84. Chương 3 MÔ PHỎNG Mà HÓA BAND CON 3.1. GIỚI THIỆU VỀ MATLAB Matlab là phần mềm có giao diện cực mạnh cùng nhiều lợi thế trong kỹ thuật lập trình để thể giải quyết nhiều vấn đề đa dạng trong nghiên cứu khoa học kỹ thuật và ứng dụng. Đặc biệt là các thư viện trợ giúp trong Simulink của matlab đã đóng góp một phần đáng kể vào việc xử lý số cho các tín hiệu và mô phỏng. Simulink là một phần mềm dùng để mô hình hóa, mô phỏng và phân tích một hệ thống tự động. Simulink cho phép mô tả hệ thống tuyến tính, hệ phi tuyến các mô hình trong thời gian liên tục, gián đoạn hay một hệ kết hợp cả liên tục và gián đoạn, mà không cần phải đưa vào các phương trình vi phân và các phương trình sai phân bằng các ngôn ngữ lập trình như các phần mềm mô phỏng khác. Việc lập trình được xây dựng trên cơ sở của các ngôn ngữ lập trình hướng đối tượng, tạo điều kiện thuận tiện trong khi thay đổi giá trị các thuộc tính các khối thành phần phù hợp cho các nghành kỹ thuật và người lập trình không chuyên nghiệp. Trong thư viện của simulink bao gồm toàn diện các khối như khối nhận tín hiệu, các phần tử tuyến tính và phi tuyến, các đầu nối chuẩn. Người sử dụng cũng có thể tạo ra các khối riêng cho mình để tạo nên được các mô hình mô phỏng phù hợp. Sau khi tạo được mô hình thì người sử dụng có thể mô phỏng nó trong simulink bằng các nhập lệnh trong cửa sổ lệnh của matlab hay sử dụng các menu có sẵn. Hơn nữa người sử dụng có thể thay đổi các thông số trực tiếp để có thể nhận biết được các ảnh hưởng đến mô hình, bằng bộ scope và các bộ hiển thị khác cho phép người sử dụng có thể xem kết quả trong khi đang chạy mô phỏng. 3.2. CÁC KHỐI TRONG SIMULINK 3.2.1. Bộ lọc số (Digital Filter) Hình 3.2.1. Bộ lọc số (Digital Filter) Chúng ta có thể chọn bộ lọc thông thấp (Lowpass), bộ lọc thông cao (Highpass), bộ lọc thông dải (Bandpass), bộ lọc chắn dải (Bandstop). Hay các phương pháp lọc: bộ lọc số IIR (Butterworth, Chebyshev, Elliptic), bộ lọc số FIR (Equiripple, Least-squares, ). Chọn bậc của bộ lọc (Filter Order). Đặc điểm các thông số về tần số (Frequency Specification): đơn vịn (unit), tần số lấy mẫu Fs, và tần số tín hiệu. Độ dốc (dB). 3.2.2. Bộ nội suy và bộ phân chia * Bộ nội suy (Downsample): hệ số nội suy (Downsample factor, K). * Bộ phân chia (Upsample): hệ số phân chia(Upsample factor, L). Hình 3.2.2. Bộ nội suy (Downsample) Hình 3.2.3. Bộ phân chia (Upsample): 3.2.3. Bộ mã hóa và giải mã *Bộ mã hóa (Uniform Encoder): mã hóa với số bít là (8, 16, 32) bít (Bits). *Bộ giải mã (Uniform Decoder): giải mã với số bít là (8, 16, 32) bít (Bits). Hình 3.2.4. Bộ mã hóa (Uniform Encoder) Hình3.2.5. Bộ giải mã (Uniform Decoder) 3.2.4. Bộ khuếch đại (Gain) Khuếch đại tín hiệu với hệ số K ( Gain) Hình3.2.6. Bộ khuếch đại (Gain) 3.3. MÔ PHỎNG Mà HOÁ BAND CON Tín hiệu âm thanh có tần số Fs =11025Hz đưa vào bộ lọc thông thấp H0, bộ lọc thông cao H1 và qua bộ nội suy với hệ số nội suy L=2 được tách làm hai dải tần, dải thứ nhất là có tần số (5005000)Hz và dải thứ hai (500011000)Hz. Đầu ra của bộ lọc H0 tiếp tục cho qua bộ lọc thông thấp H01, bộ lọc thông cao H02 và bộ nội suy với hệ số mội suy L=2 được tách ra làm hai dải tần (5003400)Hz và dải tần (34005000). Sau khi qua bộ lọc phân tích thì đã tách được ba dải con với: Dải thứ nhất có tần số: (500011000)Hz. Dải thứ hai có tần số: (5005000)Hz. Dải thứ ba có tần số: (5003400)Hz. Mỗi dải con này được đưa tới bộ mã hóa (Encoder) và được mã hóa với số bít khác nhau. Dải tần thứ nhất mã hóa với bộ mã hóa 32 bít, dải tần thứ hai mã hóa với bộ mã hóa 16 bít, dải tần thứ ba mã hóa với bộ mã hóa 8 bít. Sau khi mã hóa ba dải tần được đưa vào bộ bộ giải mã (Decoder), ứng với mỗi bộ mã hóa của các dải tần thì ta có bộ giả mã tương ứng. Dải thứ nhất giải mã với bộ giải mã 32 bít, dải thứ hai giải mã với bộ giải mã 16 bít, dải thứ ba giải mã với bộ giải mã 8 bít. Tín hiệu sau khi đã được giả mã thì tiếp tục được đưa vào bộ lọc tổng hợp để tạo lại tín hiệu ban đầu. Tương ứng với bộ lọc phân tích thì cũng có các bộ thông thấp G01, bộ lọc thông cao G02 và G1 lọc với các dải tần ở đầu ra của các bộ lọc H01, H02, H1 ở bộ lọc phân tích cùng với các bộ nội suy tương ứng với hệ số nội suy M=2. Tín hiệu ở đầu ra của bộ lọc thông thấp G01 và G02 được tổng hợp lại và đưa vào bộ nội suy với hệ số nội suy M=2 và bộ lọc thông thấp G0 lọc với dải tần (5005000)Hz . Cuối cùng ở bộ lọc phân tích là tín hiệu ở đầu ra của bộ lọc G0 và bộ lọc G1 tổng hợp lai và đưa ra loa. KẾT LUẬN Sau thời gian ba tháng làm đồ án với sự nỗ lực cố gắng tìm tòi, nghiên cứu và có sự tham khảo nhiều tài liệu cùng với sự giúp đỡ tận tình của thầy cô và các bạn. Đặc biệt là Ths.Nguyễn Văn Dương tôi đã hoàn thành tốt nhiệm vụ của đồ án. Đồ án đã trình bày các vấn đề về Mã hóa band con, tần số của tín hiệu tiếng nói được phân chia thành các dải con và mã hóa mỗi dải với số bít khác nhau trong xử lý tín hiệu số. Mã hóa band con có thể nén được tín hiệu tốt hơn hay bề rộng của dải tần số xử lý được thu hẹp lại và triệt tiêu được các thành phần tần số không mong muốn. Do đó nó có rất nhiều ứng dụng trong xử lý tín hiệu âm thanh, tín hiệu ảnh và những tín hiệu thành phần tần số thấp. Tuy nhiên phương pháp này cũng có nhược điểm của nó như: vấn đề giải quyết bài toán cấp phát bít (hay số bít cấp cho mỗi băng con) để đạt được hiệu quả cao nhất, không xác định được hệ thống mã hóa tối ưu cho các ứng dụng bít thấp, luôn tồn tại sự tương quan nhỏ giữa các băng tần kề nhau và dữ liệu sẽ không được nén hoàn toàn (do các bộ lọc không phải lý tưởng). Hiện nay, đề tài mã hóa band con vẫn còn là mới mẻ chưa được ứng dụng phổ biến. Do thời gian nghiên cứu và kiến thức còn hạn hẹp nên không tránh khỏi thiếu sót mong các thầy, các cô cùng các bạn than gia góp ý kiến và chỉ bảo để đồ án này hoàn thiện hơn. Với đề tài mã hóa band con em mong muốn nó sẽ đóng góp phần nào đó vào các ứng dụng thực tế trong xử lý tín hiệu, đặc biệt là xử lý tín hiệu âm thanh và hình ảnh. Em xin chân thành cảm ơn đến các thầy, cô trong tổ bộ môn điện tử viễn thông đồng các thầy cô trong trường ĐHDL Hải Phòng, cùng các bạn đã giúp đỡ và tạo điều kiện tốt nhất cho em học tập và nghiên cứu trong suốt bốn năm học qua. Và đặc biệt là thầy Nguyễn Văn Dương là người trực tiếp hướng dẫn tôi hoàn thành tốt đồ án này. Em xin chân thành cảm ơn! CÁC THUẬT NGỮ VÀ BẢNG CHỮ VIẾT TẮT DÙNG TRONG ĐỒ ÁN Finit Duration Impulse Response_FIR Hệ thống đáp ứng xung hữu hạn Infinit Duration Impulse Response_IIR). Hệ thống đáp ứng xung vô hạn Discrete Fourier Transform DFT Biến đổi Fourier rời rạc Fast Fourier Trans form FFT Biến đổi Fourier nhanh IDFT Fuorier rời rạc ngược Subband coding Mã hóa band con (hay mã hóa băng con) QMF_Quadrature mirror filter bank Bank lọc số gương cầu phương. PR_QMF (Perfect Reconstruction: PR) Bank lọc QMF khôi phụp hoàn hảo Aliasing Thành phần hư danh (hiện tượng chồng phổ) Sample Quá trình lấy mẫu Quantizing Lượng tử hóa Encoder Mã hóa Decoder Giải mã Bank lọc số Tập hợp các bộ lọc số TÀI LIỆU THAM KHẢO 1. John R. Deller, John H.L. Hansen, John G. Proakis Discrete-Time Processing of Speech Signals, Wiley-IEEE Press, (1999). 2. Hồ Anh Túy Xử lý tín hiệu số - Nhà xuất bản Khoa học kỹ thuật (1996). 3. Martin Vetterli - Jenlenna Kovacevic Wavelet and Subband Coding (1995). 4. Nguyễn Quốc Trung Xử lý tín hiệu và lọc số (tập 1, 2) - Nhà xuất bản Khoa học và kỹ thuật (2001). 5. Phạn Minh Hà Kĩ thuật mạch điện tử - Nhà xuất bản khoa học và kĩ thuật (1997). 6. Nguyễn Hữu tình, Lê Tấn Dũng, Phạm Thị Ngọc Yến, Nguyễn thị Lam Hương Cơ sở matlab và ứng dụng - Nhà xuất bản Khoa học và kĩ thuật (1999). 7. Paul M.Embree - Bruce Kimble Premtice Hall C.Langua Algorithms for Digital Signal Processing. 8. John G. Proakis, Dimitris G. Manolakis Digital Signal Processing, Prentice - Hall Internation, United States (1996) 9. John G. Proakis, Charles M. Rader, Fuyun Ling, Chrysostomos L.Nikias: Advanced Digital Signal Processing - Macmollan Publishing Company, Republic of Singapore (1992). 10. Ts. Cao Phán. Ths. Cao Hồng Sơn Ghép kênh tín hiệu số - Học viện Công nghệ bưu chính viễn thông (2007) 11. Ahmet Kirac Optimal Orthonormal Subband Coding and Lattice Quantization with vecter Dithering - Thesis of Doctor of philosophy Calioria (1998). 12. Nguyễn Văn thắng Bài giảng môn cơ sở thông tin số. 13. Quách Tuấn Ngọc Xử lý tín hiệu số - Nhà xuất bản Giáo dục (1997).

Các file đính kèm theo tài liệu này:

  • doc9.NguyenThiTuyen_DT901.doc