Xem mẫu

  1. Ứng dụng mã cực (Polar) trong mã hóa tiếng nói tốc độ thấp theo chuẩn MELP Nguyễn Anh Hào và Phạm Xuân Nghĩa Khoa Vô tuyến điẹn tử, Học viện Kỹ thuật quân sự Email: hao6379@gmail.com, nghiapx@mta.edu.vn Abstract— Ý tưởng bài báo là sử dụng mã Polar để mã hóa có giá trị nhỏ là các kênh có độ tin cậy cao, các kênh có khung dữ liệu MELP (Mixed-Excitation Linear Predictive) bằng cách chọn các bít dữ liệu theo thứ tự ưu tiên để gán vào các kênh Z(WNi ) lớn là kênh có độ tin cậy thấp. ảo theo thứ tự chất lượng tốt đến giảm dần, đề xuất này mang lại độ lợi mã hóa đến 0,8 dB ở vùng Eb/N0 cao (khoảng 7dB) so với mã Hamming (7,4), với độ phức tạp chấp nhận được. Keywords- Mã Polar, mã thoại tốc độ thấp, MELP. I. GIỚI THIỆU Mã phân cực (Polar Code - PC) được Arikhan giới thiệu năm 2009 là một bộ mã tuyến tính và được chứng minh có thể đạt chất lượng trên kênh trên kênh nhị phân không nhớ rời rạc B-DMC tiếp cận đến giới hạn Shannon. Đối với cấu trúc một khung mã hóa thoại theo chuẩn MELP (2400 bps) gồm các bit thông tin có vai trò quan trọng khác nhau, tác động đến chất lượng tiếng nói sau khôi phục là khác nhau. Phần còn lại của bài báo có bố cục như sau: Mục 2 trình bày tổng quan về mã phân cực, đồng thời phân tích, đánh giá chất lượng của mã phân cực trên kênh AWGN, mục 3 trình bày về mã MELP, mục 4 trình bày đề xuất ứng dụng mã MELP, cuối cùng là phần Kết luận. II. TỔNG QUAN VỀ MÃ PHÂN CỰC (POLAR) Hình 1: Ví dụ về phân cực của kênh BEC với xác suất xóa 0.5 Ý tưởng chính của mã phân cực là từ một kênh B-DMC W có thể tạo ra N các kênh ảo (virtual channels) WN , (i) Mã phân cực sử dụng đặc tính phân cực với các kênh có độ tin cậy cao sẽ được sử dụng để truyền tin còn các kênh có độ tin 1  i  N thông qua một phép biến đổi tuyến tính sao cho cậy thấp sẽ được đóng băng “frozen”. Các bit đóng băng là các N các kênh này được phân cực. Có nghĩa là thông tin tương bit không mang tin và được giả thiết là máy thu đã biết trước. hỗ của chúng I(W ) sẽ hoặc tiến tới 0 hoặc tiến tới 1 (phân Bộ giải mã do Arikhan đưa ra là bộ giải mã xóa tuần tự SC (Successive Cancellation) trong đó quá trình giải mã được cực) [1]. Hình 1 mô tả quá trình phân cực kênh của kênh nhị phân đối xứng có xác suất xóa bằng 0.5. thực hiện tuần tự từ U 1 ,U 2 ,...,U N . Thực tế quá trình giải mã chỉ thực hiện đối với các bit mang tin U j ,1  j  i  1 . Các bít Quá trình biến đổi của bộ mã được thực hiện nhờ phép biến N của u N đổi G2 n gọi là phép mũ Kronecker bậc n của ma trận G2 : còn lại là các bit đóng băng. Bộ giải mã SC tạo ra u N 1 0  dựa trên quan trắc đầu ra kênh y . Bộ giải mã thực hiện N G2    1 1  các quyết định cho từng ui . Nếu ui là bit đóng băng thì bộ Để xây dựng mã phân cực cần phải đánh giá thông tin tương giải mã cố định ui bằng giá trị biết trước tại máy thu. Nếu ui hỗ của các kênh ảo. Thay vì việc tính toán thông tin tương hỗ là bit tin, bộ giải mã chờ sử dụng tất cả các bit đã ước lượng khá phức tạp, [1] đã sử dụng tham số Bhattachryya Z(W ) trước đó. i để tính toán sự phân cực của các kênh. Các kênh có Z(WN ) 93
  2. Đặc điểm quan trọng của mã phân cực là việc phân cực các - Vị trí bit thông tin có tỷ lệ lỗi bit nhỏ nhất không phải vị trí kênh sẽ tạo ra những kênh tốt và những kênh xấu. Việc mã kênh có giá trị phân cực lớn nhất. hóa sẽ được thực hiện bằng cách phát các bit mang tin tức trên III. MÃ THOẠI TỐC ĐỘ THẤP CHUẨN MELP 2400 các kênh tốt, có nghĩa là U i được chọn là bit mang tin nếu Được phát minh năm 1995 do Alan McCree, mã dự đoán I(U i ;Y N ,U i 1 ) tiến tới 1 và đóng băng nếu tuyến tính kết hợp với bộ kích thích (MELP) là một chuẩn mã hóa tiếng nói của Bộ Quốc Phòng và Chính Phủ Mỹ, được ứng I(U i ;Y N ,U i 1 ) tiến tới 0. Chú ý rằng I(U i ;Y N ,U i 1 ) dụng chủ yếu trong các ứng dụng quân sự và thông tin vệ tinh, tương ứng với việc giải mã U i với đầu vào Y và các bít đã âm thanh bảo mật và các thiết bị vô tuyến bảo mật. i 1 giải mã trước đó U . Ở đây, chúng ta sẽ khảo sát tỷ lệ lỗi Theo [2], [3], mã MELP dựa trên mô hình tham số mã dự bit theo vị trí trong từ mã khi dùng mã phân cực trên kênh đoán tuyến tính (LPC - Linear Prediction Coding) và có cải AWGN và thuật toán giải mã SC. Hình 2 và 3 mô tả tỷ lệ lỗi tiến, bổ xung thêm năm đặc trưng nữa để khắc phục các nhược với từng vị trí bít mã trong từ mã có độ dài 128 bít, tỷ lệ mã điểm của mã LPC; đó là Bộ trộn kích thích, chuỗi xung ngẫu hóa là 1/2 trên kênh AWGN; với tỷ số tín tạp lần lượt là nhiên, bộ lọc phổ thích nghi tăng cường, trải phổ xung và mô SNR=0 và SNR=2. hình năng lượng Fourier, một khung dữ liệu MELP được tạo 4000 Khao sat so loi bit theo vi tri thành từ đoạn dữ liệu âm thanh trong khoảng thời gian 22.5ms, trong đó gồm 180 mẫu với tốc độ lấy mẫu là 8,000 3500 mẫu/giây. Sau khi qua quá trình phân tích, tính toán ra các đặc trưng, đoạn dữ liệu này sẽ được mã hóa bằng 54 bit rồi truyền 3000 đi, vậy tốc độ dữ liệu (54 bit/22,5ms tương đương 2400 bit/ 2500 1giây). Phạm vi, giá trị cụ thể của các tham số được cho trong Bảng 1. Bit erro num 2000 Bảng 1: Bảng cấp phát số bit dùng cho các tham số MELP [2] 1500 Tên tham số Có âm (bit) Âm câm (bit) 1000 Hệ số LPC10 (LSF) 25 25 Năng lượng Fuorier 8 - 500 Hệ số khuếch đại (G1,G2) 8 8 Chu kỳ Pitch, Chồng âm 7 7 0 0 10 20 30 40 50 60 70 Bộ lọc âm (5 băng cố định) 4 - Bit Index Cờ ngẫu nhiên 1 - Hình 2: Tỷ lệ lỗi theo vị trí bít tin của mã PC với N=128, K=64; Mã sửa lỗi (FEC) - 13 truyền trên kênh AWGN; SNR=0dB. Số bit kiểm tra: 10000. Bit đồng bộ 1 1 Khao sat so loi bit theo vi tri 700 Tổng số bit/ khung 22,5ms 54 54 600 Trong bài báo này, chúng tôi xét trường hợp 54 bit âm câm (Unvoice), số lượng bit thực chất chứa thông tin là 41, còn lại 500 13 bit dùng để bổ sung mã FEC; cụ thể trong tiêu chuẩn MELP sử dụng mã Hamming như sau: Bit erro num 400 - Lấy 12 bit hệ số LPC (LSF - Line Spectrum Frequency) đầu tiên: chú ý là các bit này trong cấu trúc MELP được xếp theo 300 thứ tự quan trọng (ưu tiên); dùng ba bộ mã H(7,4) để mã hóa, 200 như vậy sau mã hóa tăng thêm 9 bit. - Tiếp tục lấy 4 bit hệ số khuếch đại (G1) và dùng một bộ mã 100 H(8,4) để mã hóa; như vậy sau mã hóa tăng thêm 4 bit. Các bit còn lại truyền trực tiếp, như vậy tổng số bit tăng thêm 0 sau mã hóa là 13 bit; và tổng số bit trong một khung dữ liệu là 0 10 20 30 40 50 60 70 Bit Index 54 bit. Bảng 2: Cấu trúc 54 bit âm câm (MELP) với mã Hamming [2] Hình 3: Tỷ lệ lỗi theo vị trí bít tin của mã PC với N=128, K=64; truyền trên kênh AWGN; SNR=2dB. Số bit kiểm tra: 10000 Đồng LSF G1 G2 Pitch bộ Tổng Từ kết quả trên các Hình 2 và Hình 3 ta có nhận xét sau: 25 4 4 7 1 41 - Tỷ lệ lỗi bit giảm rất nhanh khi SNR tăng. - Vị trí bit thông tin đầu tiên luôn có tỷ lệ lỗi lớn nhất. H(7,4) H(7,4) H(7,4) 13 H(8,4) 4 7 1 54 - Luôn tồn tại một vị trí bit thông tin có tỷ lệ lỗi nhỏ nhất (nhỏ hơn nhiều lần giá trị trung bình) (vị trí bít số 61 trên Hình 3). Từ bảng 2, ta có một số nhận xét: 94
  3. Khi mã hóa dữ liệu cần 4 bộ mã (3 bộ H(7,4) và 1 bộ H(8,4)) Với số lượng bit thông tin đầu vào là 10.000.000 bit. Kết quả để mã hóa. chạy mô phỏng khi sử dụng 2 loại mã Hamming và phân cực -Tỷ lệ lỗi của các bit được mã hóa đồng đều (không có ưu tiên được trình bày trên Hình 5. theo vai trò). 0 - Tỷ lệ lỗi bit giảm chậm khi SNR tăng, điều này phụ thuộc 10 No code vào tính chất của mã Hamming. Polar IV. ỨNG DỤNG MÃ PHÂN CỰC TRONG MÃ THOẠI -2 10 Hamming CHUẨN MELP Đề xuất ý tưởng: Như trên đã trình bày, thấy mã phân cực có đặc điểm truyền các bit thông tin với tỷ lệ lỗi bit khác nhau BER -4 10 theo vị trí của bit trong từ mã. Còn mã hóa tiếng nói theo chuẩn MELP lại có vai trò các bit thông tin trong khung dữ liệu là khác nhau. Ở mục này, chúng tôi trình bày ý tưởng là sẽ -6 dùng một bộ mã Polar P(32,19) để thay thế các mã Hamming 10 trong khung dữ liệu MELP với hy vọng là sẽ nhận được độ chính xác cao với các bit quan trọng trong mỗi khung tín hiệu -8 tiếng nói, điều này xuất phát từ tính chất của mã Polar, nội 10 0 2 4 6 8 10 dung đề xuất được trình bày dưới đây. Eb/N0, dB Hình 5: Kết quả so sánh BER của 2 loại khung dữ liệu MELP 54 bit. Dùng 19 bit thông tin (gồm 15 bit LFS đầu tiên và 4 bit G1) trong khung dữ liệu để gán vào 19 kênh ảo tốt của bộ mã Từ kết quả hình 5 ta có một số nhận xét như sau: P(32,19) theo vị trí ưu tiên. Như vậy số lượng bit của khung - Ở SNR < 4 dB chất lượng mã Polar kém hơn mã Hamming. sau mã hóa vẫn đảm bảo 54 bit, nhưng số lượng bit được mã - Ở SNR ≥ 4 dB chất lượng mã Polar bắt đầu tốt hơn mã hóa (bảo vệ) lại nhiều hơn 19 bit/ 16 bit so với mã Hamming, Hamming, điều này càng rõ rệt khi chất lượng kênh tăng lên. Bảng 3 trình bày cấu trúc một khung (54 bit âm câm) tín hiệu Ví dụ tại BER = 10-6 thì độ lợi khi dùng mã Polar tốt hơn tiếng nói khi sử dụng mã Polar. khoảng 0.8 dB so với mã Hamming. Bảng 3: Cấu trúc 54 bit âm câm (MELP) với mã Polar G1 LFS G2 Pitch Đồng bộ Tổng Mã thoại tốc độ thấp chuẩn MELP hiện nay được ứng dụng rộng rãi trong hệ thống thông tin vô tuyến điện quân sự. Đặc 4 25 4 7 1 41 biệt trong các trang bị vô tuyến điện do Tập đoàn Công nghiệp P(32,19) 10 4 7 1 54 Viễn thông Quân đội sản xuất đều đã sử dụng mã thoại chuẩn MELP. Đối với mã thoại chuẩn MELP, 25 bit dữ liệu LFS Ở đây chỉ dùng 1 bộ mã P(32,19) để mã hóa, số lượng bít (chính là tham số của bộ lọc LPC10) có vai trò quan trọng được mã hóa nhiều hơn: 19 bit so với phương án mã hóa cũ, nhất, chỉ cần các tham số này là có thể tái tạo lại âm thanh, các các bít quan trọng được mã hóa ưu tiên hơn (ánh xạ lên các tham số khác chỉ bổ sung để làm rõ hơn đặc trưng của tiếng kênh có chất lượng tốt hơn). nói gốc. Mặt khác, 25 bit LFS lại được sắp xếp theo vai trò (thứ tự ưu tiên) giảm dần, do vậy theo chuẩn MELP dùng mã Sử dụng một số công cụ trong [4], [5], thực hiện xây dựng mô Hamming để mã hóa bảo vệ 12 bit đầu tiên [2]. Với đề xuất hình mô phỏng so sánh tỷ lệ lỗi bit khi truyền khung dữ liệu dùng mã Polar (32,19), ta không chỉ bảo vệ được 15 bit LFS 54 bit (Unvoice) trên Matlab với hai trường hợp: một là khung mà còn ưu tiên được các bit quan trọng. Để đánh giá kết quả dữ liệu 54 bit đóng gói theo chuẩn MELP (dùng mã này, chúng ta thực hiện mô phỏng trên mathlab với khung dữ Hamming) và hai là khung dữ liệu 54 bit đóng gói theo đề liệu gốc là 41 bit truyền trên kênh AWGN với ba trường hợp: xuất mới (dùng mã P(32,19)). Mô hình hệ thống được trình - Thứ nhất là truyền khung 41 bit không mã hóa. bày trên Hình 4. - Thứ hai là truyền 54 bit, trong đó 16 bit được mã hóa bởi các bộ mã Hamming theo chuẩn MELP thành 29 bit, còn lại 25 bit F-Polar De-Polar truyền trực tiếp. (54 bit) (41 bit) F-MELP AWGN - Thứ ba là truyền 54 bit, trong đó 19 bit được mã hóa Polar (41 bit) F-Hamming De-Hamming (32,19) thành 32 bit, còn lại 22 bit truyền trực tiếp. (41 bit) (54 bit) Ỏ đầu thu thực hiện giải mã, lọc lấy 41 bit thông tin rồi so sánh tỷ lệ lỗi theo từng vị trí bit với 41 bit gốc. Kết quả mô BER phỏng thể hiện trên Hình 6 và Hình 7. Hình 4: Sơ đồ mô phỏng so sánh chất lượng mã Hamming và mã phân cực cho dữ liệu chuẩn MELP 95
  4. - Số lượng bit được mã hóa (tỷ lệ lỗi nhỏ) của phương án đề 0.05 xuất lớn hơn (19/16 bit). - Các bit quan trọng được bảo vệ tốt hơn (tỷ lệ lỗi nhỏ). 0.04 Để đạt được ưu điểm và độ lợi trên đây, khi sử dụng mã phân No code cực ta phải trả giá về độ phức tạp mã hóa và giải mã, qua tính 0.03 Polar tính toán thấy rằng độ phức tạp mã hóa và giải mã Polar có độ Hamming dài N đều là O(N.log2N). Độ phức tạp tương đối thấp và hoàn BER toàn có thể hiện thực được trên các dòng chip phổ biến hiện 0.02 nay. V. KẾT LUẬN 0.01 Bài báo đã sử dụng đặc trưng của mã phân cực trong phân cực kênh ảo để ứng dụng phù hợp với hóa tiếng nói MELP (2400 0 0 10 20 30 40 50 bps) có cấu trúc dữ liệu phân biệt vị trí các bit theo vai trò Bit Index thông tin. Mô hình kết hợp giữa mã Polar và mã thoại MELP Hình 6: So sánh tỷ lệ lỗi bit. SNR = 4 dB, khung truyền 41 bit 2400 bps có kết quả mô phỏng tốt và có thể ứng dụng được thông tin, số khung truyền 100.000 mẫu. trong thực tế. Tuy nhiên, do cấu trúc khung dữ liệu ngắn (54 bit), nên chỉ sử dụng được bộ mã Polar (32,19) nên chất lượng 0.03 cải thiện chưa được nhiều. Mã Polar sẽ hiệu quả hơn đối với các cấu trúc dữ liệu lớn và có phân biệt vai trò các bit thông 0.025 tin. No code TÀI LIỆU THAM KHẢO 0.02 Polar [1] E. Arıkan (2009), “Channel Polarization: A Method for Constructing Hamming Capacity-Achieving Codes for Symmetric Binary-Input Memoryless BER 0.015 Channels,” IEEE Trans. Inf. Theory, vol. 55, no. 7, pp. 3051–3073. [2] MIL_STD-3005, "Analog-to-Digital Conversion of Voice by 2,400 Bit/Second Mixed Excitation Linear Prediction (MELP)", US DoD. 0.01 [3] STANAG-4591, The 1200 and 2400 bit/s Nato Interoperable narrow band voice coder, NATO. 0.005 [4] H. Vangala, E. Viterbo and Y. Hong (2015), "A Comparative Study of Polar Code Constructions for the AWGN channel", arXiv:1501.02473. 0 [5] Harish Vangala, "Poler code in MATLAB", Monash University, 0 10 20 30 40 50 Clayton, VIC- 3800, Australia, Available: http:// www.polarcodes.com. Bit Index [6] Mani Bastani Parizi (2012), Polar Codes: Finite Length Implementation, Hình 7: So sánh tỷ lệ lỗi bit. SNR = 5 dB, khung truyền 41 bit Error Correlations and Multilevel Modulation, EPFL - Ecole thông tin, số khung truyền 1.000.000 mẫu. Polytechnique Fe’de’rale de Lausanne. Từ kết quả trên Hình 6 và hình 7, ta có một số nhận xét sau: 96
nguon tai.lieu . vn