Chương 1 Giới Thiệu Về Tín Hiệu Rời Rạc VàHệ Thống Rời Rạc Sự phát triển của công nghệ vi điện tử và máy tính cùng với sự phát triểncủa thuật toán tính toán nhanh đã làm phát triển mạnh
Giới thiệu
Với sự tiến bộ của công nghệ vi điện tử, máy tính và thuật toán tính toán nhanh, ứng dụng Xử lý Tín hiệu Số (DSP) đã bùng nổ DSP hiện là nền tảng thiết yếu cho mạch tích hợp hiện đại, với các chip có khả năng lập trình tốc độ cao Ứng dụng của DSP bao trùm nhiều lĩnh vực.
- Xử lý tín hiệu âm thanh, tiếng nói: nhận dạng lời nói, giọng nói; tổng hợp tiếng nói; biến văn bản thành tiếng nói; kỹ thuật âm thanh số ; .
- Xử lý ảnh: thu nhận và khôi phục ảnh; làm nổi đường biên; lọc nhiễu; nhận dạng; thị giác máy; hoạt hình; các kỹ xảo về hình ảnh; bản đồ; .
- Viễn thông: xử lý tín hiệu thoại và tín hiệu hình ảnh, video; truyền dữ liệu; khử xuyên kênh; điều chế, mã hóa tín hiệu;
- Thiết bị đo lường và điều khiển: phân tích phổ; đo lường địa chấn; điều khiển vị trí và tốc độ; điều khiển tự động; .
- Quân sự: truyền thông bảo mật; xử lý tín hiệu rada, sonar; dẫn đường tên lửa; .
- Y học: não đồ; điện tim; chụp X quang; chụp CT(Computed TomographyScans); nội soi; .
Có thể nói, xử lý tín hiệu số là nền tảng cho mọi lĩnh vực và chưa có sự biểu hiện bão hòa trong sự phát triển của nó Việc xử lý tín hiệu rời rạc được thực hiện bởi các hệ thống rời rạc Trong chương 1 này, chúng ta nghiên cứu về các vấn đề biểu diễn, phân tích, nhận dạng, thiết kế và thực hiện hệ thống rời rạc.
Tín hiệu rời rạc
Định nghĩa tín hiệu
Tín hiệu là một đại lượng vật lý chứa thông tin Về mặt toán học, tín hiệu được biểu diễn bằng một hàm của một hay nhiều biến độc lập Chẳng hạn, tín hiệu tiếng nói được biểu thị như một hàm số của thời gian còn tín hiệu hình ảnh thì lại được biểu diễn như một hàm số của hai biến số không gian Mỗi loại tín hiệu khác nhau có các tham số đặc trưng riêng, tuy nhiên tất cả các loại tín hiệu đều có các tham số cơ bản là độ lớn (giá trị), năng lượng và công suất, chính các tham số đó nói lên bản chất vật chất của tín hiệu Tín hiệu được biểu diễn dưới dạng hàm của biến thời gian x(t), hoặc hàm của biến tần số X(ω) Trong luận văn này, chúng ta qui ước tín hiệu là một hàm của một biến độc lập và biến này là thời gian Giá trị của hàm tương ứng với một giá trị của biến được gọi là biên độ (amplitude) của tín hiệu Ta thấy rằng, thuật ngữ biên độ ở đây không phải là giá trị cực đại mà tín hiệu có thể đạt được
Phân loại tín hiệu
Có nhiều cách để phân loại tín hiệu, dưới đây là cách phân chia theo cặp thuộc tính:
Thời gian rời rạc - Thời gian liên tục - Tín hiệu rời rạc (về mặt thời gian): là tín hiệu chỉ xác định trên một tập rời rạc của thời gian (một tập những thời điểm rời rạc) Về mặt toán học, tín hiệu rời rạc mang giá trị thực (hoặc phức) có thể được xem là một hàm liên kết tương ứng từ tập số tự nhiên đến tập số thực (hoặc phức).
- Tín hiệu liên tục (về mặt thời gian): là tín hiệu mang giá trị thực (hoặc phức) xác định với mọi thời điểm trong một khoảng thời gian, trường hợp phổ biến nhất là một khoảng thời gian vô hạn Chú ý: Một hàm không liên tục về mặt toán học, ví dụ như hàm sóng vuông (square-wave) hay sóng răng cưa (sawtooth-wave), vẫn có thể là hàm liên tục về mặt thời gian.
Tương tự - Số - Tín hiệu tương tự: là tín hiệu có giá trị thay đổi liên tục theo thời gian.
- Tín hiệu số: là tín hiệu đã được lấy mẫu và lượng tử hóa.
Định lý lấy mẫu Nyquist–Shannon
Nếu x=x(t) là một tín hiệu liên tục theo thời gian t và tín hiệu này được lấy mẫu cách đều nhau một khoảng thời gian là T s , biên độ của mẫu thứ n là x(nT s ) hay x(n) nếu ngầm hiểu rằng ta đã chuẩn hoá trục thời gian theo T s T s gọi là chu kỳ lấy mẫu (Sampling period) f s = 1/T s được gọi là tần số lấy mẫu (Sampling frequency) Định lý lấy mẫu được phát biểu như sau:
Một tín hiệu x(t) không chứa bất kỳ thành phần tần số nào lớn hơn hoặc bằng một giá trị f max có thể biểu diễn chính xác bằng tập các giá trị của nó với chu kỳ lấy mẫu T s = 1/(2f max ).
Như vậy, tần số lấy mẫu phải thoả mãn điều kiện f s ≥ 2f max Tần số giới hạnf s /2này được gọi là tần số Nyquist và khoảng (−f s /2;f s /2)gọi là khoảng Nyquist.
Về bản chất, định lý cho thấy một tín hiệu tương tự có tần số giới hạn đã được lấy mẫu có thể được tái tạo hoàn toàn từ một chuỗi vô số các mẫu nếu tỷ lệ lấy mẫu lớn hơn 2f max mẫu trong 1 giây, f max là các tần số lớn nhất của tín hiệu ban đầu.
Cách biểu diễn tín hiệu rời rạc
Tín hiệu rời rạc là một dãy các giá trị thực hoặc phức Phần tử thứ n của dãy được ký hiệu là x(n) và toàn bộ dãy được ký hiệu là x = {x(n) | -∞ ≤ n ≤ ∞} Mỗi phần tử x(n) được gọi là mẫu thứ n của tín hiệu x.
- Từ đây về sau, trục thời gian sẽ được chuẩn hóa theo T s , khi cần trở về thời gian thực, ta thay biến n bằng nTs.
- Tín hiệu rời rạc chỉ có giá trị xác định ở các thời điểm nguyên n.
- Để đơn giản, sau này, thay vì ký hiệu đầy đủ, ta chỉ cần viết x(n) và hiểu đây là dãy x = x(n).
Các tín hiệu rời rạc cơ bản
Tín hiệu xung đơn vị (unit impulse) Đây là dãy cơ bản nhất được biểu diễn như sau: δ(n)
Hình 1.1: Tín hiệu xung đơn vị δ(n)
Tín hiệu hằng Tín hiệu này có giá trị bằng nhau với tất cả các giá trị của n: x(n) =a với− ∞ ≤ n ≤ ∞ (1.3)
Tín hiệu nhảy bậc đơn vị Dãy này thường được ký hiệu là u(n) và được định nghĩa như sau: u(n)
Hình 1.2: Tín hiệu nhảy bậc đơn vị u(n)
Mối quan hệ giữa tín hiệu nhảy bậc đơn vị với tín hiệu xung đơn vị: u(n) n
Tín hiệu tuần hoàn Một tín hiệu x(n) được gọi là tuần hoàn với chu kỳ N khi: x(n+N) =x(n),∀n (1.6)
Hình 1.3: Tín hiệu tuần hoàn x(n)
Các phép toán cơ bản của dãy
Cho 2 dãy x 1 = {x 1 (n)} và x 2 = {x 2 (n)} các phép toán cơ bản trên hai dãy được định nghĩa như sau:
• Phép nhân 1 dãy với 1 hệ số: y =a.x= {a.x(n)}
• Phép dịch một dãy: (Shifting):
- Dịch phải: Gọi y là dãy kết quả trong phép dịch phải n 0 mẫu một dãy x ta có: y(n) =x(n−n 0 ) (1.7)
Phép dịch phải còn gọi là phép làm trễ (delay) Phép làm trễ một mẫu thường được ký hiệu bằng chữ D hoặc Z −1
- Dịch trái: Gọi z là dãy kết quả trong phép dịch trái n 0 mẫu một dãy x ta có: y(n) =x(n+n 0 ) (1.8)
Nhận xét: Ta thấy, một tín hiệu x(n) bất kỳ có thể biểu diễn bởi tín hiệu xung đơn vị như sau: x(n) ∞
Hệ thống rời rạc
Khái niệm
Hệ thống rời rạc là một phép biến đổi y(n) = {T x(n)} chuyển đổi dãy tín hiệu vào x(n) thành dãy tín hiệu ra y(n) theo một quy luật nhất định.
Tín hiệu vào được gọi là tác động hay kích thích (excitation), tín hiệu ra được gọi là đáp ứng (response) Biểu thức biểu diễn mối quan hệ giữa kích thích và đáp ứng được gọi là quan hệ vào ra của hệ thống. Đáp ứng xung (Impulse respond) Đáp ứng xung h(n) của một hệ thống rời rạc là đáp ứng của hệ thống khi kích thích là tín hiệu xung đơn vị δ(n), ta có: h(n) ={T δ(n)} (1.11)
Biểu diễn hệ thống bằng sơ đồ khối Để có thể biểu diễn một hệ thống bằng sơ đồ khối, ta cần định nghĩa các phần tử cơ bản Một hệ thống phức tạp sẽ là sự liên kết của các phần tử cơ bản này.
- Phần tử nhân dãy với dãy (signal multiplier): tương ứng với phép nhân hai dãy, có sơ đồ khối như sau:
Hình 1.4: Sơ đồ nhân dãy với dãy
- Phần tử nhân một dãy với một hằng số (Constant multiplier): tương ứng với phép nhân một hệ số với một dãy, có sơ đồ khối như sau:
Hình 1.5: Sơ đồ nhân một dãy với với một hằng số
- Phần tử cộng (Adder): tương ứng với phép cộng hai dãy, có sơ đồ khối như sau:
Hình 1.6: Sơ đồ cộng hai dãy
- Phần tử làm trễ một mẫu (Unit Delay Element): tương ứng với phép làm trễ một mẫu, có sơ đồ khối như sau:
Hình 1.7: Sơ đồ làm trễ một dãy
Phân loại hệ thống rời rạc
Các hệ thống rời rạc được phân loại dựa vào các thuộc tính của nó, cụ thể là các thuộc tính của toán tử biểu diễn hệ thống (T).
Hệ thống không nhớ (Memoryless systems):
Hệ thống không nhớ còn được gọi là hệ thống tĩnh (Static systems) là một hệ thống mà đáp ứng y(n) ở mỗi thời điểm n chỉ phụ thuộc vào giá trị của tác động x(n) ở cùng thời điểmn đó.
Một hệ thống không thỏa mãn định nghĩa trên được gọi là hệ thống có nhớ hay hệ thống động (Dynamic systems).
Hệ thống được cho là tuyến tính nếu nó tuân theo Nguyên lý chồng chất, nghĩa là đáp ứng của hệ thống đối với tổng hợp của nhiều tác động bằng tổng hợp các đáp ứng đối với từng tác động riêng lẻ Nếu y 1 (n) và y 2 (n) lần lượt là đáp ứng của hệ thống tương ứng với tác động x 1 (n) và x 2 (n), thì hệ thống là tuyến tính khi và chỉ khi: y(n) = y 1 (n) + y 2 (n).
Phản ứng của hệ tuyến tính với tổng các tác động bằng tổng phản ứng của hệ trước từng tác động riêng lẻ, thể hiện như: T{ax 1 (n) +bx 2 (n)}=aT{x 1 (n)}+bT{x 2 (n)}=ay 1 (n) +by 2 (n) (1.12) Hệ không thỏa mãn định nghĩa này được gọi là hệ phi tuyến tính (Nonliear systems).
Hệ thống bất biến theo thời gian (Time-Invariant systems) Một hệ thống là bất biến theo thời gian nếu và chỉ nếu tín hiệu vào bị dịch n d mẫu thì đáp ứng cũng dịch n d mẫu, ta có:
Nếu y(n) =T{x(n)} và x 1 (n) =x(n−n d ) Thìy 1 (n) =T{x 1 (n)} =T{x(n−n d )}= y(n−n d ) Hệ thống ổn định (Stable systems)
Một hệ thống ổn định còn được gọi là hệ thống BIBO (Bounded-Input Bounded-Output) nếu và chỉ nếu với mỗi tín hiệu vào bị giới hạn sẽ cung cấp dãy ra giới hạn.
Một dãy vào x(n) bị giới hạn nếu tồn tại một số dương hữu hạn B x sao cho:
Một hệ thống ổn định đòi hỏi rằng, ứng với mỗi dãy vào hữu hạn, tồn tại một số dương B y hữu hạn sao cho:
Hệ thống tuyến tính bất biến theo thời gian (LTI: Linear time- invariant system)
Hệ thống tuyến tính bất biến theo thời gian là hệ thống thỏa mãn đồng thời hai tính chất tuyến tính và bất biến.
Gọi T là một hệ thống LTI Giã sử tín hiệu y(n) là đáp ứng của tín hiệu x(n) theo phương trình (1.9) ta có: y(n) =T{x(n)}=T{
Như vậy một hệ thống LTI hoàn toàn có thể được đặc tả bởi đáp ứng xung của nó và ta có thể dùng kết quả trên để tính đáp ứng của hệ thống ứng với một kích thích bất kỳ Hệ thống LTI rất thuận lợi trong cách biểu diễn cũng như tính toán, đây là một hệ thống có nhiều ứng dụng quan trọng trong xử lý tín hiệu.
Tổng chập (Convolution)
Định nghĩa
Tổng chập của hai dãy x 1 (n) và x 2 (n) bất kỳ, ký hiệu: * , được định nghĩa bởi biểu thức sau: y(n) =x 1 (n)∗x 1 (n) ∞
Theo phương trình (1.15) ta có: y(n) ∞
Vậy đáp ứng của một hệ thống bằng tổng chập tín hiệu vào với đáp ứng xung của hệ thống đó.
Các tính chất của tổng chập
Tính giao hoán (Commutative) Cho 2 dãyx 1 (n) và x 2 (n) bất kỳ, ta có: y(n) =x 1 (n)∗x 2 (n) =x 2 (n)∗x 1 (n) (1.18)
Tính kết hợp (Associative) Cho 3 dãyx 1 (n), x 2 (n) và x 2 (n) bất kỳ, ta có: y(n) = [x 1 (n)∗x 2 (n)]∗x 3 (n) =x 1 (n)∗[x 2 (n)∗x 3 (n)] (1.19)
Hệ quả:Xét hai hệ thống LTI có đáp ứng xung lần lược là h 1 (n) và h 2 (n) mắc liên tiếp (cascade), nghĩa là đáp ứng của hệ thống thứ 1 trở thành kích thích của hệ thống thứ 2 Áp dụng tính chất kết hợp ta được: y(n) =x(n)∗h(n) = [x(n)∗h 1 (n)]∗h 2 (n) =x(n)∗[h 1 (n)∗h 2 (n)] hay h(n) = [h 1 (n)∗h 2 (n)] (1.20)
Hình 1.8: Tính chất của hệ thống mắc liên tiếp
Tính chất phân bố với phép cộng (Distributes over addition) Tính chất này được biểu diễn bởi biểu thức sau: y(n) =x 1 (n)∗[x 2 (n) +x 3 (n)] =x 1 (n)∗x 2 (n) +x 1 (n)∗x 3 (n) (1.21)
Hệ quả: Xét hai hệ thống LTI có đáp ứng xung lần lượt là h 1 (n) và h 2 (n) mắc song song (parallel) Áp dụng tính chất phân bố ta được đáp ứng xung của hệ thống tương đương là: h(n) =h 1 (n) +h 2 (n) (1.22)
Hình 1.9: Tính chất của hệ thống mắc song song
Tương quan giữa các tính hiệu rời rạc
Các định nghĩa
Tương quan chéoXét 2 dãy x(n) và y(n), giả sử rằng ít nhất một trong hai dãy có năng lượng hữu hạn, khi đó tương quan chéo của x(n) và y(n)) được định nghĩa như sau: r xy (n) ∞
Tự tương quan Trong định nghĩa tương quan chéo, nếu x(n) = y(n) thì ta sẽ có tự tương quan Vậy tự tương quan của tín hiệu x(n) được định nghĩa như sau: r xx (n) ∞
Các Phép Biến Đổi Quan Trọng
Giới thiệu
Kỹ thuật biến đổi là một công cụ hữu hiệu để phân tích hệ thống LTI Biến đổi Z đối với tín hiệu rời rạc có vai trò tương tự như biến đổi Laplace đối với tín hiệu liên tục, và chúng có quan hệ giống nhau với biến đổi Fourier Tổng chập của hai dãy trong miền thời gian sẽ biến thành tích của hai biến đổi Z tương ứng trong miền biến phức z Tính chất này sẽ làm đơn giản hóa việc tính đáp ứng của hệ thống với các tín hiệu vào khác nhau.
Như ta sẽ thấy trong các phần tiếp theo, biến đổi Fourier giữa vai trò chìa khóa trong việc biểu diễn và phân tích các hệ thống rời rạc Tuy nhiên, trong một số trường hợp cần phải sử dụng dạng tổng quát hóa của biến đổi Fourier,đó là biến đổi Z.
Biến đổi Z (Z transform)
Biến đổi Z của một dãy x(n) được định nghĩa như là chuỗi lũy thừa:
X n=−∞ x(n)z −n (2.1) với z là một biến phức.
Ta có thể coi biến đổi Z như là một toán tử (operator) mà nó biến một dãy thành một hàm, ký hiệu ZT, ta viết lại:
Biến đổi Z được định nghĩa bởi (2.3) được gọi là biến đổi Z hai phía (bilateral Z-transform) do biến n chạy từ −∞ đến ∞ Biến đổi Z một phía (unilateral Z-transform) được định nghĩa như sau:
X n=0 x(n)z −n (2.4) trong trường hợp này biến n chạy từ 0 đến ∞.
Ta thấy biến đổi Z hai phía và một phía chỉ bằng nhau khi x(n) = 0 với mọi n≤ 0 Nếu biểu diễn Z theo tọa độ cực z =re jω ,(2.1) trở thành:
X n=−∞ x(n)r(e jω ) −n (2.5) Đặc biệt, nếu r = 1 ( nghĩa là |z| = 1), thì biến đổi Z trở thành biến đổi Fourier:
2.2.2 Miền hội tụ (ROC: Region of Convergence)
Biến đổi Z của một tín hiệux(n)là một chuỗi lũy thừa, gọi là chuỗi Laurent,do đó không phải lúc nào biến đổi Z cũng hội tụ với mọi tín hiệu hay với mọi giá trị của z, vì vậy phải xét đến miền hội tụ của nó. Định nghĩa: Với mọi dãyx(n) xác đinh, tập hợp các giá trị của z sao cho chuổi:
X n=−∞ x(n)z −n (2.7) hội tụ được gọi là miền hội tụ của biến đối Z.
Kí hiệu: ROC(Region of Convergence) Vậy:
< ∞} (2.8) Điều kiện đủ để biến đổi Z hội tụ là:
Nếu một giá trị z = z 1 nào đó ở trong ROC, thì vòng tròn có bán kính là
|z| =z 1 cũng nằm trong ROC Điều này cho thấy rằng ROC là một miền hình vành khăn bao quanh góc tọa độ như biểu diễn trong hình 2.1
Hình 2.1: Miền hội tụ của biến đổi Z
Một loại biến đổi Z thông dụng và quan trọng đó là biến đổi Z mà X(z) của nó có dạng là một hàm hữu tỉ với mọi z trong ROC, nghĩa là:
Các nghiệm của X(z) khi X(z) = 0 được gọi là các zeros, còn khi X(z) = ∞ được gọi là các cực (poles) Các cực là các nghiệm xác định của đa thức mẫu số Q(z) và thêm vào các giá trị đặc biệt z = 0 hoặc z = ∞.
2.2.4 Biến đổi Z ngược (The inverse Z -transform) Định nghĩa: Nếu X(z) là biến đổi Z của x(n), thì x(n) là biến đổi Z ngược của X(z), ta có cặp biến đổi Z: x(n) ←−→ TZ
Biến đổi Z ngược còn được định nghĩa là một thủ tục để biến đổi từ miền z sang miền thời gian Về mặt toán học, biến đổi Z ngược là một toán tử mà nó biến một hàm X(z) thành dãy x(n).
Công thức để tính dãy x(n) từ X(z) được thành lập dựa vào định lý tích phân Cauchy.
Theo định nghĩa biến đổi Z ở phần trên ta có:
Nhân hai vế cho Z k−1 ta có z k−1 X(z) ∞
Lấy tích phân hai vế trên đường cong kín C bao quanh gốc tọa độ, ngược chiều kim đồng hồ và nằm trong miền hội tụ của X(z), ta được:
Tích phân đường trong công thức(2.14) được tính bằng định lý giá trị thặng dư của Cauchy.
Với Res(f, z) là giá trị thặng giư tại các cực năm trong C.
2.2.5 Các tính chất của biến đổi Z
Giả sử ta có các cặp biến đổi Z như sau: x(n) −−→ ZT X(Z) với ROC x =R x x 1 (n)−−→ ZT X 1 (Z) với ROC x−1 =R x 1 x 2 (n)−−→ ZT X 2 (Z) với ROC x−2 =R x 2 y(n) −−→ ZT Y(Z) với ROC x =R y
Tuyến tính (Linearity) ax 1 (n) +bx 2 (n) −−→ ZT aX 1 (Z) +bX 2 (Z) (2.16) trong đó a và b là các hằng số bất kỳ.
Dịch thời gian (Time shifting) x(n−k)−−→ ZT z −k X(Z) (2.17)
Nhận xét: Dịch phải k mẫu tức là làm trễ tín hiệu k mẫu sẽ tương ứng với nhân cho z −k trong phép biến đổi z Với k = 1, ta ký hiệu toán tử z tương ứng với phép làm trễ một mẫu, đây là ký hiệu đã được dùng để biểu diễn phần tử làm trễ một mẫu Tính chất tuyến tính và tính chất dịch thời gian làm cho biến đổi z trở thành cực kỳ hữu dụng trong việc phân tích hệ thống LTI. Đổi thang đo trong miền z (Scaling in the z domain) a n x(n) −−→ ZT X(z a) (2.18) Đảo thời gian (Time Reversal) x(−n) −−→ ZT X(z 1 ) (2.19) Tích Chập (Convolution) x(n) =x 1 (n)∗x 1 (n) −−→ ZT X(z) =X 1 (z)X 2 (z) (2.20)
Tính chất này được áp dụng để tính tổng chập một cách có hiệu quả bởi vì phép tổng chập trong miền thời gian sẽ được biến đổi thành phép nhân trong miền z.
2.2.6 Các cặp biến đổi Z cơ bản
Các cặp biến đổi Z cơ bản được liệt kê trong bảng 2.1
Bảng 2.1: Các cặp biến đổi Z cơ bản
Tin hiệu x(n) Biến đổi Z, X(z) ROC δ(n) 1 Tất cả mặt phẳng z u(n) 1
2.2.7 Hàm truyền đạt của hệ thống LTI
Từ chương 1, ta đã thấy rằng một hệ thống LTI hoàn toàn có thể đặc trưng trong miền thời gian bởi đáp ứng xung h(n) của nó, với tín hiệu vàox(n), đáp ứng của hệ thống được tính bởi tổng chập: y(n) =x(n)∗h(x) (2.22)
Chúng ta cũng thấy được các khó khăn khi xác định đáp ứng của hệ thống trực tiếp bằng tổng chập.
Gọi X(z) và H(z) lần lượt là biến đổi z của x(n) và h(n), áp dụng tính chất chập của biến đổi Z, ta được biến đổi Z của y(n) như sau:
Y(z) =X(z)H(z) (2.23) với một miền hội tụ thích hợp.
Vậy thông qua phép biến đổiZ, tổng chập của hai dãy đã biến thành phép nhân đơn giản Sau khi có được Y(z), ta dùng phép biến đổi Z ngược để tính đáp ứngy(n) Cách làm này rõ ràng là dễ dàng hơn cách tính trực tiếp từ tổng chập.
Phương trình 2.23 có thể được viết lại:
H(z)được gọi là hàm hệ thống (System function) hay hàm truyền đạt (Transfer function) Vì H(z) và h(n) là một cặp duy nhất, nên một hệ thống LTI bất kỳ hoàn toàn có thể được đặc tả bởi hàm truyền đạt của nó.
Biến đổi Fourier (Fourier transform)
Ta đã biết một tín hiệu liên tục tuần hoàn bất kỳ có thể phân tích thành tổ hợp tuyến tính của các tín hiệu hình sin hay hàm mũ phức Ở đây, ta chỉ nhắc lại một cách tóm lược.
Xét một tín hệu tuần hoànx(t) với chu kỳ cơ bản là Tp được khai triển bởi chuỗi Fourier như sau:
Tổng quát, các hệ số Fourier X k có giá trị phức, đặc trưng cho biên độ và pha của các thành phần tần số F =kF p Nếu tín hiệu tuần hoàn là thực, thì X k và X −k là các liên hợp phức.
Ta có thể xem|X k | là một hàm rời rạc biếnk đồ thị của nó được gọi là phổ biên độ của tín hiệu Khi tín hiệu tuần hoàn là tín hiệu thực, phổ biên độ của nó là hàm chẳn nên có đồ thị đối xứng qua trục tung Vì thế khi khảo sát phổ biên độ của các tín hiệu tuần hoàn thực ta chỉ cần khảo sát trong miền tần số dương.
Một tín hiệu không tuần hoàn có độ dài hữu hạn (finite duration)x(t) như được minh họa trong hình 2.2 Từ tín hiệu không tuần hoàn này, ta có thể tạo ra một tín hiệu tuần hoàn x p (t) chu kỳ T p bằng cách lặp lại tín hiệu x(t) với chu kỳ T p Rõ ràng, khi T p → ∞ thì x p (t) =x(t)
Hình 2.2: Tạo tín hiệu tuần hoàn từ tín hiệu không tuần hoàn có độ dài hữu hạn.
Chuỗi Fourier của tín hiệu tuần hoàn x p (t) là :
2 nên ta có thể thay x p (t) bằng x(t) trong tích phân 2.3.24 và khi đó miền lấy tích phân trở thành: (−∞,∞):
T p khi k chạy từ −∞ → ∞, F k sẽ nhận các giá trị:
Khi T_p tiến tới vô cùng lớn, F_k sẽ nhận các giá trị liên tục trong tập R Do đó, ta định nghĩa Biến đổi Fourier của tín hiệu liên tục không tuần hoàn như sau: X(f) = ∫_{-∞}^∞x(t)e^-j2πft dt.
Biến đổi Fourier của tín hiệu liên tục không tuần hoàn x(t)là một hàm X(F) của biến tần số liên tục F được xác định bởi tích phân :
2.3.3 Biến đổi Fourier ngược của tín hiệu liên tục
Như đã đề cập ở trên khi T p → ∞ thì x p (t) → x(t) ∆F trở thành vi phân dF và k∆F trở thành biến tần số liên tục F Phương trình 2.33 trở thành: x(t) ∞
Nếu X(F) là biến đổi Fourier của tín hiệu x(t) thì: x(t) ∞
X(F)e 2πjF t dF (2.35) cách tính x(t) từ X(F) như trên được gọi là biến đổi Fourier ngược của X(F)
Biến đổi Fourier rời rạc-DFT
2.4.1 Biến đổi Fourier rời rạc-DFT
Như chúng ta đã biết, máy tính chỉ có thể làm việc với các tổng hữu hạn.
Việc chuyển đổi tín hiệu liên tục sang tín hiệu rời rạc yêu cầu tín hiệu có giá trị hữu hạn trong cả miền thời gian và miền tần số Về mặt lý thuyết, điều kiện này không thể đạt được Tuy nhiên, phần lớn các tín hiệu trong thực tế đều có giá trị hữu hạn ở cả hai miền này.
Giả sử x(t) là tín hiệu có giá trị 0 với mọi t ở ngoài đoạn [0, L] và biến đổi Fourier X(F) củax(t) cũng có giá trị 0 với mọi tần số F ở ngoài đoạn [0,2B].
Theo định lý lấy mẫu nếu ta muốn nội suy x(t) ta cần lấy mẫu với chu kỳ
F s ≥ 1 2B Như vậy số mẫu tối thiểu cần phải lấy là:
Và ta cần lấy mẫu ở những vị trí sao: t 0 = 0;t 1 = 1
Dạng rời rạc củax(t) là một dãy các giá trị: x(t 0 );x(t 2 );x(t 2 ); .;x(t N −1 ).
Vì ở miền thời gian x(t) là hàm có giá trị 0 với mọi t ở ngoài đoạn [0, L],
Nên nếu muốn nội suy X(F) ta phải lấy mẫu ở miền tần số với chu kỳ là 1
L Vậy số mẫu cần phải lấy là:
Và ta cần lấy mẫu ở những vị trí sau:
L Dạng rời rạc củaX(F)là một dãy các giá trị:X(F 0 );X(F 2 );X(F 2 ); .;X(F N−1 ) Ta có:
Cho tín hiệu rời rạc: x(n) ={x(0), x(1), x(2), , x(N −1)}
Biến đổi Fourier rời rạc của x(n) là tín hiệu:
Dạng ma trận của biến đổi Fourier rời rạc: Đặt: ωN =e
Trong trường hợp tổng quát khi không quan tâm tới giá trị của N ta có thể viết ω thay cho ω N
Dạng ma trận của phương trình trên là:
được gọi là ma trận của biến đổi DFT và:
X D [F D ] = W N x(n) (2.40) được gọi là dạng ma trận của của biến đổi DFT.
2.4.2 Biến đổi Fourier rời rạc ngược Đặt: Ω = 1, ω 1 , ω 2 ,ã ã ã , ω (N −1) Ta có:
• Nếu k là một bội của N thì:
• Nếu k không phải là bội của N thì:
• Với hai số nguyên k, l ta có:
0 nếu k 6≡l mod N N nếu k ≡l mod N Gọi W N ∗ là ma trận chuyển vị của ma trận DFT W N :
NW N ∗ Từ dạng ma trận của biến đổi DFT:
Khai triển phép nhân ma trận bên trên ta được: x(n) = 1
X D (F D ) ={X(0), X(1), X(2), , X(N −1)} là biến đổi Fourier rời rạc của tín hiệu: x(n) ={x(0), x(1), x(2), , x(N −1)}
Cách tính x(n) từ X D (F D ) như trên được gọi là biến đổi Fourier rời rạc ngược của X D (F D )
Mô Hình Toán Học Của Hệ Thống Phát Âm Của Người - Phương pháp LPC (Linear Prediction Coding)
Giới thiệu
Tiếng nói là một trong những phương tiện trao đổi thông tin của con người.
Tiếng nói được tạo ra từ tư duy của con người dưới sự chỉ đạo của trung khu thần kinh, mệnh lệnh phát sinh tiếng nói được phát ra và hệ thống phát âm thực hiện nhiệm vụ tạo âm thanh Tiếng nói mà con người vẫn giao tiếp hàng ngày có bản chất là sóng âm thanh lan truyền trong không khí Sóng âm thanh trong không khí là sóng dọc sinh ra do sự dãn nở của không khí Tín hiệu âm thanh là tín hiệu biến thiên liên tục về thời gian và biên độ, có dải tần số rất rộng Tuy nhiên tai người chỉ có thể nhận biết được các sóng âm có tần số trong khoảng 20 - 20000 (Hz) Những sóng âm có tần số lớn hơn 20000 Hz gọi là sóng siêu âm Những sóng có tần số nhỏ hơn 20 Hz gọi là sóng hạ âm Thực tế người ta có thể hạn chế dải tần số của tín hiệu tiếng nói trong khoảng từ 300 đến 3500 Hz Do đó, quá trình phân tích cũng như tổng hợp tiếng nói chỉ cần dùng một số nhất định các tham số cũng đủ để biểu diễn tín hiệu tiếng nói mà não người xử lý.
Xử lý tiếng nói đã đạt được nhiều tiến bộ vượt bậc, ứng dụng trong nhiều lĩnh vực xã hội như nhận dạng, tổng hợp giọng nói, tương tác người máy, truyền thông, giáo dục Nhờ đó, con người tạo ra máy móc thông minh hơn, hiểu và giao tiếp bằng lời nói Phương pháp mã hóa dự đoán tuyến tính (LPC) đóng vai trò quan trọng trong xử lý tiếng nói, được áp dụng trong phân tích, mã hóa, tổng hợp giọng nói.
Bộ máy phát âm và cơ chế phát âm
Hình 3.1: Bộ máy phát âm của người
Bộ máy phát âm gồm:
- Các cơ quan tạo năng lượng cho hoạt động phát âm là phổi, khí quản (Trachead).
Các cơ quan tham gia vào quá trình tạo âm thanh bao gồm các cấu trúc trong thanh hầu (larynx), khoang hầu (pharynx), khoang miệng (oral cavity) và khoang mũi (nasal cavity) Thanh hầu đóng vai trò tạo ra âm thanh cơ bản, còn các khoang cộng hưởng khác khuếch đại và điều chế âm thanh, tạo nên đặc điểm giọng nói và giọng hát của mỗi người.
Thanh hầu và các khoang nói trên là các cộng minh trường (hộp cộng hưởng) chứa nhiều bộ phận mà sự vận động của chúng có tác dụng tạo nên các âm thanh với các âm sắc khác nhau.
Thanh hầu giống như một cái hộp nằm phía trên của khí quản do bốn miếng sụn hợp lại, có tác dụng khuếch đại âm thanh được phát ra do sự dao động của dây thanh.
Hình 3.2: Mô phỏng khoang hầu, khoang miệng và khoang mũi
Dây thanh là hai cơ mỏng dài khoảng 2cm, nằm song song theo chiều dọc ở thanh quản Dưới sự điều khiển của hệ thần kinh, dây thanh có thể mở ra, khép lại, căng lên, chùng xuống và dao động Dây thanh nam giới thường dày hơn nữ giới và độ dày tăng dần theo tuổi tác, đặc biệt nhanh ở độ tuổi dậy thì, lý giải cho hiện tượng vỡ giọng.
Khoang hầu ở ngay trên thanh hầu, nằm phía dưới khoang miệng và có một đường nhỏ thông lên khoang mũi Nhờ vào hoạt động của lưỡi và môi mà thể tích, hình dáng và lối thoát của khí có thể thay đổi rất linh hoạt Chúng có vai trò rất quan trọng trong việc tạo ra các âm với những âm sắc khác nhau Giữa khoang hầu và khoang mũi có lưỡi con (velum) Lưỡi con có vai trò như một van thoát khí Nó có tác dụng tạo ra sự khác biệt giữa âm miệng (buccal/oral) và âm mũi (nasale/nasal) Ngăn cách giữa khoang miệng và khoang mũi là vòm miệng (palate) còn gọi là mạc Sự phối hợp hoạt động của môi, lưỡi, răng, lợi, ngạc, mạc có thể tạo ra những chỗ cản đa dạng trong khoang miệng Chúng là cơ sở để tạo ra các phụ âm.
3.2.2 Cơ chế phát âm Để phát âm, dưới sự điều khiển của hệ thần kinh, nói chung không khí từ phổi được đẩy qua khí quản, vào thanh hầu rồi thoát qua các cộng minh trường phía trên thanh hầu để thoát ra ngoài Có thể thấy hai trường hợp.
- Không khí thoát ra làm rung dây thanh với một tần số nào đó để tạo nên một âm với một thanh điệu nhất định (hình 3.3) Âm này nhỏ, được uốn nắn, được khuếch đại nhờ các cộng minh trường (thanh hầu, khoang hầu, khoang miệng, khoang mũi) để trở thành âm thanh lời nói Trong trường hợp này, ta sẽ có các âm hữu thanh (voiced sounds) Nếu dây thanh có chu kì rung đều đặn, ta sẽ có âm chứa nhiều tiếng thanh Ngôn ngữ học gọi các âm loại này là các âm vang Các nguyên âm và các phụ âm mũi, phụ âm bên, phụ âm rung là các âm vang Trường hợp nói thì thào, không khí từ phổi ra tuy mạnh nhưng dây thanh ở xa nhau và chỉ rung động rất nhẹ; ngôn ngữ học gọi các âm thì thào là các âm giọng thở (breathed sounds).
Hình 3.3: Hoạt động của hai dây thanh
- Không khí thoát ra không làm rung dây thanh thì lượng khí sẽ cọ xát, lách qua hoặc phá vỡ chỗ cản được tạo ra bởi các bộ phận hoạt động được của bộ máy phát âm để tạo ra âm, rồi được khoang hầu, khoang miệng, khoang mũi cộng hưởng, khuếch đại thành âm thanh lời nói Ngoài cộng minh trường là thanh hầu chứa dây thanh, các cộng minh trường còn lại có tác dụng khống chế một số tần số này và tăng cường một số tần số khác tạo nên các hòa âm Việc không khí cọ xát hoặc bật phá chỗ cản sẽ tạo nên những dao động có chu kì không đều đặn làm thành những tiếng động (tiếng ồn) Những âm có tiếng động, không có sự tham gia của tiếng thanh được gọi là các âm vô thanh (unvoice sounds).
Hệ thống tạo âm thanh của con người được biểu diễn bởi sơ đồ 3.4:
Hình 3.4: Sơ đồ biểu diễn hệ thống phát âm của người
Trong phổ tần số của tín hiệu tiếng nói, mỗi đỉnh có biên độ cao nhất xét trong một khoảng nào đó (còn gọi là cực trị địa phương) xác định một formant
(hình 3.5) Về mặt vật lý các tần số formant tương ứng với các tần số cộng hưởng của khoang hầu Trong xử lý tiếng nói và nhất là trong tổng hợp tiếng nói để mô phỏng lại tuyến âm người ta phải xác định được các tham số formant đối với từng loại âm vị, do đó việc đánh giá, ước lượng các formant có ý nghĩa rất quan trọng.
Hình 3.5: Các formant của một đoạn tín hiệu tiếng nói
Tần số formant biến đổi trong một khoảng rộng phụ thuộc vào giới tính của người nói và phụ thuộc vào các dạng âm vị tương ứng với formant đó. Đồng thời, formant còn phụ thuộc các âm vị trước và sau đó Về cấu trúc tự nhiên, tần số formant có liên hệ chặt chẽ với hình dạnh và kích thước tuyến âm Thông thường trong phổ tần số của tín hiệu có khoảng 6 formant nhưng chỉ có 3 formant đầu tiên ảnh hưởng quan trọng đến các đặc tính của các âm vị, còn các formant còn lại cũng có ảnh hưởng song rất ít Các formant có giá trị tần số xê dịch từ vài trăm đến vài nghìn Hz.
Mô hình toán học của hệ thống phát âm của người
Như đã đề cập ở phần trên các bộ phận trong sơ đồ 3.4 có vai trò như các hợp cộng hưởng, bằng cách rời rạc hoá, thay thế từng đoạn của các bộ phân bởi các ống cơ bản có chiều dài ngắn (các ống hình trụ hinh 3.2) và sau đó thực hiện tính toán trên các ống này ta có thề dùng các bộ lọc số để mô phỏng chúng Hơn nữa, quá trình tạo ra âm hữu thanh và âm vô thanh là khác nhau nên ta có thể biểu diễn lại sơ đồ 3.4 thành mô hình toán học:
Hình 3.6: Mô hình toán học của hệ thống phát âm của người
Mô hình 3.6 được Gunnar Fant xây dựng vào năm 1960. Đối với âm hữu thanh: tín hiệu vào của hệ thống là một chuỗi xung đơn vị có chu kỳ P. e(n) =δ(n−kP) với k = 0,1,2, (3.1) Như vậy trong miền z ta có:
Tín hiệu này được cho bộ lọc thông thấp đóng vai trò của thanh hầu có hàm truyền đạt là:
(1−z −1 ) 2 (3.3) Đầu ra của bộ lọc ta được tín hiệu nguồn của hệ thống (cũng là tín hiệu tuần hoàn với chu kỳ P) Tín hiệu nguồn sau đó được nhân với hệ số khuếch đại A v rồi được đưa qua khoang hầu thực chất là một hợp cộng hưởng được mô hình hoá bằng K mạch cộng hưởng mắc nối tiếp nhau với hàm truyền đạt:
Với p= 2K và K là số tần số cộng hưởng muốn xác định.
Cuối cùng âm thanh được phát ra ở môi, nơi được coi như một tải âm học.
Sự tán xạ ở môi được mô phỏng như là bộ lọc thông cao có hàm truyền đạt:
Hình 3.7: Mô hình toán học tạo âm hữu thanh
Như vậy hàm truyền đạt của cả mô hình 3.7 là:
Hàm truyền đạt của cả hệ thống là hàm toàn cực, điều này rất quan trọng vì nó giúp cho việc tính toán thuận lợi hơn. Đối với âm vô thanh: Khoang hầu không hoạt động hai dây thanh không rung Lượng khí sẽ cọ xát, lách qua hoặc phá vỡ chỗ cản được tạo ra bởi các bộ phận hoạt động được của bộ máy phát âm để tạo ra âm, rồi được khoang hầu, khoang miệng, khoang mũi cộng hưởng, khuếch đại thành âm thanh lời nói Như vậy, trong một vài trường hợp lưỡi con sẽ đóng lại và âm thanh sẽ theo khoang mũi thoát ra ngoài, khi đó ta sẽ có âm mũi Vì thế chúng ta cần phải đưa bộ lọc khoang mũi có hàm truyền đạt C(z) vào mô hình, đây không phải là hàm toàn cực
Hình 3.8: Mô hình toán học tạo âm vô thanh
Hàm truyền đạtC(z) của bộ lọc khoang mũi không phải là hàm toàn cực.
Như vậy hàm truyền đạt của cả mô hình 3.8 là:
Như vậy, ta có thể biểu diễn gần đúng một điểm zero bằng hai điểm cực, hàm truyền đạt của mô hình trở thành:
Từ (3.4) và (3.10) có thể xây dựng một công thức chung cho hàm truyền đạt cho cả hai mô hình tạo âm hữu thanh và âm vô thanh:
• G là hệ số khuếch đại.
• q là một số nguyên dương nào đó được gọi là bậc của mô hình, bằng những kinh nghiệm thực tiển người ta thấy rằng với q = 12 là đủ để mô hình hoạt động hiệu quả.
Hệ số dự đoán trong hàm truyền đạt (k) phản ánh sự thay đổi của các cấu trúc trong hệ thống tạo âm thanh của con người, cho phép tạo ra các âm thanh khác biệt.
Hình 3.9: Mô hình toán học tạo âm thanh
Mô hình 3.9 cho kết quả rất tốt khi khảo sát các mẫu âm thanh trong khoảng thời gian ngắn (10-30ms) Bởi vì mặc dù các hệ số của mô hình biến đổi theo thời gian, nhưng con người cần khoảng 10-30ms để tạo ra một âm(con số này sẽ thay đổi tùy vào tốc độ nói của từng người và từng ngôn ngữ) trong khoảng thời gian này các hệ số không đổi Trong phần tiếp theo của đề tài, chúng ta sẽ tìm hiểu cách tính các hệ số trên từ đó xây đựng thuật toánLPC để nén và giải nén âm thanh.
Phương pháp CELP (Code excited linear prediction) 54 4.1.Giới thiệu
Phương pháp CELP
Ý tưởng cơ bản của phương pháp được thể hiện bằng sơ đồ trong hình 4.1.
Hình 4.1: Phương pháp CELP Đầu tiên nguồn âm đươc khổi tạo và đi qua bộ lọc LPC, chúng ta sẽ tổng hợp được âm thanh s(n) Sau đó chúng ta sẽ lấy âm thanh gốc ban đầu trừˆ đi âm thanh chúng ta vừa tổng hợp được ta có dãy sai số Cho dãy sai số đi qua bộ lọc cảm nhận ta có dãy a w (n) Cực tiểu hóa dãy a w (n) ta sẽ tìm được nguồn âm thích hợp cho đoạn âm thanh ban đầu.
4.2.1 Bộ lọc nhấn cảm nhận
Ngoài việc khai thác các tính chất tiếng nói để nén âm thanh, người ta còn khai thác sự cảm nhận âm thanh của tai người Tai người không cảm nhận được những âm thanh bị che đi bởi các âm thanh khác có năng lượng lớn hơn một mức nhất định.
Hình 4.2: Biểu diễn hiệu ứng của bộ lọc nhấn cảm nhận
Sự tác động của bộ lọc nhấn cảm nhận được biểu diễn trong hình 4.2 Ta thấy phổ của nhiễu có các vùng nằm phía trên của đáp ứng tần số của bộ lọcLPC do đó các tần số nằm trong vùng này sẽ bị nhiễu che đi Bộ lọc nhấn cảm nhận W(z) sẽ nâng biên độ của nhiễu trong vùng tần số formant (vùng đỉnh của đáp ứng tần số bộ lọc LPC) và nén biên độ của nhiễu trong các vùng trũng của đáp ứng tần số Phổ của nhiễu sau khi đi qua W(z) sẽ có hình dạng tương tự như phổ của bộ lọc LPC và nhiễu sẽ dễ dàng bị các tần số formant che đi (năng lượng các tần số formant che năng lượng nhiễu) Như vậy, W(z) sẽ định dạng nhiễu hay các sai số sao cho chúng bị che đi bởi các tần số formant năng lượng cao.
Hàm truyền đạt của bộ lọc nhấn cảm nhận là:
• a k là các hệ số tiên đoán cho bộ lọc LPC ở frame tương ứng.
• γ D ∈ (0,1) trong thực tế lựa chọn tốt nhất cho γ D nằm trong khoảng 0,8→ 0,9.
4.2.2 Bộ lọc dự đoán thời gian dài - Long term predic- tion filter
Như đã đề cập ở chương 3, dãy sai số dự đoán chứa thông tin về tần số khởi tạo xung, ý tưởng là chúng ta sẽ thiết kế một bộ lọc mà khi cho dãy sai số dự đoán qua bộ lọc này các đỉnh xung sẽ bị lọc bỏ, dãy sai số dự đoán trở thành dãy nhiễu trắng Bộ lọc này có ý nghĩa quan trọng trong phương pháp CELP bởi vì nó đồng nhất nguồn âm của âm hữu thanh và âm vô thanh thành nhiễu trắng Ý tưởng của bộ lọc được diễn tả bằng sơ đồ trong hình 4.3.
Hình 4.3: Bộ lọc dự đoán dài LTP
Hàm truyền đạt của bộ lọc:
Nguyên tắc hoạt động của bộ lọc là làm trễ dãy sai số dự đoánα mẫu, sau đó nhân dãy với hệ số b 0 rồi trừ với dãy sai số ban đầu Nếu chúng ta tìm được α khớp với chu kỳ khởi tạo xung thì sau phép trừ đỉnh xung sẽ bị triệt tiêu (hình 4.4) Như vậy, tìm được α đồng nghĩa với việc tìm được chu kỳ khởi tạo xung.
Hình 4.4: Nguyên tắc hoạt động của bộ lọc dự đoán dài LTP
Hệ sốα được tìm trong khoảng 20→ 147tương ứng với ngưỡng tần số của giọng nói người (50 → 400Hz) Chúng ta sẽ tìm hiểu cách tìm α và b 0 trong phần tiếp theo của đề tài.
Từ hình 4.3 ta có sơ đồ trong hình 4.5:
Hình 4.5: Bộ lọc dự đoán dài ngược
Như vậy sơ đồ trong hình 4.1 trở thành sơ đồ trong hình 4.6
Hình 4.6: Phương pháp CELP với Bộ lọc LTP ngược
Từ sơ đồ 4.6 ta thấy nguồn âm bây giờ là nhiễu, từ đó chúng ta có khái niệm codebook Đây là nơi chứa các vectơ kích thích và mỗi vectơ đó có độ dài cố định Các vectơ này được tạo thành từ các dãy nhiễu Gaussian Tín hiệu kích thích (nguồn âm) cho mỗi đoạn tiếng nói sẽ được tìm kiếm trong codebook sao cho năng lượng của dãy sai số a w (n) là nhỏ nhất.
Hình 4.7: Sơ đồ CELP hoàn chỉnh
Một codebook thường chứa 1024 vectơ, mỗi vectơ có độ dài bằng 1
Vì các hệ số tiên đoán ổn định trong 20ms, nhưng các thông số về chu kỳ khởi tạo xung, hệ số khuếch đại chỉ ổn định trong 5ms, do đó các frame cần được chia thành các subframe khoảng 5ms Sau mỗi subframe, nguồn âm sẽ được cập nhật lại Bên cạnh đó, phương pháp này sử dụng bộ lọc LPC bậc 10 Đối với mỗi subframe, chỉ số của vectơ dùng làm nguồn âm trong codebook, hệ số khuếch đại β, và hai thông số b0, α sẽ được cập nhật để xây dựng bộ lọc dự đoán dài 1.
Hình 4.8: Các thông số cần cho mỗi frame và subframe
4.2.4 Cách tính các thông số cho một subframe
Theo sơ đồ 4.7 ta có: e(n) =s(n)−s(n)ˆ
Như vậy chúng ta có thể thay thế vị trí đặt bộ lọc nhấn cảm nhận và cái tiến sơ đồ 4.7 thành sơ đồ 4.9:
Hình 4.9: Phương pháp CELP sau khi di chuyển bộ lọc nhấn cảm nhận
D) nên ta có thể thu gọn hai bộ lọcH(z) và W(z) thành bộ lọc 1
Hình 4.10: Phương pháp CELP sau khi thu gọn các bộ lọc
• h(n) là đáp ứng xung của bộ lọc 1
• w(n) là đáp ứng xung của bộ lọc nhấn cảm nhận W(z) Ta có:
=⇒ a w (n) =ζ w0 (n)−βζ w1 (n, k)−b 0 ζ w2 (n, α) Để đơn giản quá trình cực tiểu năng lượng của dãy aw(n) ta chia quá trình thành hai bước:
Bước 1: Chúng ta tìm giá trị tối ưu của b 0 và α để cực tiểu hàm: ξ 2 (b 0 , α) n
Với α cho trước, giá trị tối ưuˆb 0 (α) của b 0 phải thỏa: δξ 2 δb 0 ˆb 0 (α) n
P i=1 ζ w0 (n)ζ w2 (n, α) ζ w2 (n, α) Thay giá trị ˆb0(α) vừa tìm được vào 4.3 ta có: ξ 2 (α) n
Giá trị tối ưu của α để cực tiểu ξ 2 (α) được tìm trong khoảng 20 → 147. Điều này được thực hiện dễ dàng trên máy tính.
Bước 2: Sau khi tìm được các giá trị của b 0 và α, chúng ta đồng thời tìm được giá trị của hàm: ζ w0 0 (n) =ζ w0 (n)−b 0 ζ w2 (n, α) (4.5) Công việc ở bước 2 là tìm giá trị tối ưu của k và β để cực tiểu hàm: ξ 1 (β, k) n
[ζ w0 0 (n)−βζ w1 (n, k)] 2 (4.6) Điều này được thực hiện tương tự như ở bước 1 Tuy nhiên, trong trường hợp này giá trị của k được tìm trong 1024 chỉ số của codebook.
Thuật toán nén và giải nén theo phương pháp CELP
Trong các phần trước của chương chúng ta đã tìm hiểu cách tìm các hệ số cần thiết cho một subframe Trong phần này chúng ta sẽ xây dựng thuật toán nén và giải nén âm thanh CELP Đầu vào của thuật toán là một dãy tín hiệu âm thanh, đầu ra của thuật toán là ma trân chứa các thông số quan trọng của hệ thống LPC và các thông số cần thiết cho các subframe mà từ ma trận đó ta có thể nội suy được tín hiệu âm thanh ban đầu.
4.3.1 Nén Đầu tiên ta chia đoạn âm thanh thanh nhiều đoạn ngắn (frame) mỗi frame khoảng 20ms, mỗi frame được chia thành các subframe (5ms) Sau đó dùng các phương pháp đã trình bài ở phần trên để tính các thông số ak cho mỗi frame và k, β, b 0 , α cho mỗi subframe (hinh 4.11).
Giả sử ta có một đoạn âm thanh được lấy mẫu với tần số lấy mẫu là 16000 mẫu/giây Như vậy mỗi đoạn 20ms chứa 320 mẫu Với phương pháp nén CELP ta chi cần lưu 26 thông số cho đoạn âm thanh 20ms trên như vậy tỉ lệ nén là :12.3:1 tỉ lệ này tốt hơn so với các phương pháp nén âm thanh đang được sử dụng hiện nay như: MP3, WMA, AAC, M4A mà chất lượng âm thanh là tương đương.
Hình 4.11: Thuật toán nén CELP
Trong quá trình giải nén, hệ thống cập nhật các thông số quan trọng (tần số lấy mẫu, độ dài khung) và chia dữ liệu thành từng tập Mỗi tập chứa thông số bộ lọc LPC của khung tương ứng cùng các thông số k, β, b0, αc của từng tiểu khung Hệ thống dùng các thông số này để khởi tạo nguồn âm, sau đó dẫn nguồn âm qua bộ lọc LPC để tổng hợp tín hiệu âm thanh cho từng tiểu khung Cuối cùng, ghép các khung lại tạo thành đoạn âm thanh gốc.
Hình 4.12: Thuật toán giải nén CELP cho mỗi frame
Bảng 4.1: Kết quả nén CELP cho một số đoạn âm thanh
Tỉ lệ nén W WAV:LPC
Để chứng minh hiệu quả nén của thuật toán CELP, chúng tôi đã nén 5 đoạn âm thanh có dung lượng và giọng nói khác nhau Kết quả cho thấy thuật toán CELP có tỷ lệ nén thấp hơn thuật toán LPC nhưng vẫn cao hơn định dạng âm thanh phổ biến hiện nay Đặc biệt, thuật toán CELP cải thiện đáng kể chất lượng âm thanh.
Trong đề tài này chúng tôi đã xây dựng thành công các thuật toán lọc và nén âm thanh từ các mô hình xấp sỉ và nội suy với tỉ lệ nén cao rất nhiều so với các định dạng nén đang được sự dụng rộng rải hiện nay như: MP3, WMA, AAC, M4A và chất lượng âm thanh tốt.
Với thuật toán LPC đề tài đã đạt được tỉ lệ nén cao nhất là:
Tỷ lệ nén của thuật toán CELP là 22.81:1, cao hơn so với thuật toán LPC mà vẫn giữ được chất lượng giọng nói và nội dung thông tin cần truyền tải Thuật toán này giúp đạt được tỷ lệ nén cao nhất, đáp ứng nhu cầu nén dữ liệu âm thanh hiệu quả hơn so với các phương pháp trước đây.
Các kết quả mà đề tài đã đạt được không những có ý nghĩa khoa học, mà còn có ý nghĩa thực tiển nhằm ứng dụng trong: Sách nói, ghi âm các bài phỏng vấn và phát biểu
Phân tích LPC không chỉ có ứng dụng trong việc nén tiếng nói mà còn được ứng dụng trong các thuật toán nhân dạng âm thanh Do dó, hướng phát triển tiếp theo của đề tài là sự dụng các thông số tìm được trong phân tích LPC để nhận dạng tiếng Việt hướng nghiên cứu này có ý nghĩa rất lớn trong: Điều khiển các thiết bị bằng giọng nói, dịch thuật, chuyển giọng nói thành văn bản