Ý tưởng trong bài báo là sử dụng mã Polar để mã hóa 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 ả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. Mời các bạn cùng tham khảo!
Trang 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
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
ả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 E b /N 0 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ỚITHIỆ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ỔNGQUANVỀMÃPHÂNCỰC(POLAR)
Ý tưởng chính của mã phân cực là từ một kênh B-DMC Wcó
thể tạo ra N các kênh ảo (virtual channels) WN ( i ) ,
1 i N thông qua một phép biến đổi tuyến tính sao cho
N các kênh này được phân cực Có nghĩa là thông tin tương
hỗ của chúng I(W ) sẽ hoặc tiến tới 0 hoặc tiến tới 1 (phân
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
Quá trình biến đổi của bộ mã được thực hiện nhờ phép biến
đổi n
2
G gọi là phép mũ Kronecker bậc n của ma trận
2
G :
Để xây dựng mã phân cực cần phải đánh giá thông tin tương
hỗ của các kênh ảo Thay vì việc tính toán thông tin tương hỗ
khá phức tạp, [1] đã sử dụng tham số Bhattachryya Z(W )
để tính toán sự phân cực của các kênh Các kênh có i
N Z(W )
có giá trị nhỏ là các kênh có độ tin cậy cao, các kênh có
i N Z(W ) lớn là kênh có độ tin cậy thấp
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
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 cậy thấp sẽ được đóng băng “frozen” Các bit đóng băng là các bit không mang tin và được giả thiết là máy thu đã biết trước
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 thực hiện tuần tự từ U ,U , ,U 1 2 N Thực tế quá trình giải mã chỉ thực hiện đối với các bit mang tin U ,1 j j i 1 Các bít còn lại là các bit đóng băng Bộ giải mã SC tạo ra N
u của uN
dựa trên quan trắc đầu ra kênh yN Bộ giải mã thực hiện N
các quyết định cho từng ui Nếu ui là bit đóng băng thì bộ giải mã cố định ui bằng giá trị biết trước tại máy thu Nếu ui
là bit tin, bộ giải mã chờ sử dụng tất cả các bit đã ước lượng trước đó
2
1 0 G
1 1
Trang 2Đặc điểm quan trọng của mã phân cực là việc phân cực các
kênh sẽ tạo ra những kênh tốt và những kênh xấu Việc mã
hóa sẽ được thực hiện bằng cách phát các bit mang tin tức trên
các kênh tốt, có nghĩa là Ui được chọn là bit mang tin nếu
i
i
I(U ;Y ,U ) tiến tới 0 Chú ý rằng I(U ;Y ,Ui N i 1 )
tương ứng với việc giải mã U i với đầu vào Y và các bít đã
giải mã trước đó Ui 1 Ở đây, chúng ta sẽ khảo sát tỷ lệ lỗi
bit theo vị trí trong từ mã khi dùng mã phân cực trên kênh
AWGN và thuật toán giải mã SC Hình 2 và 3 mô tả tỷ lệ lỗi
với từng vị trí bít mã trong từ mã có độ dài 128 bít, tỷ lệ mã
hóa là 1/2 trên kênh AWGN; với tỷ số tín tạp lần lượt là
SNR=0 và SNR=2
0
500
1000
1500
2000
2500
3000
3500
4000
Bit Index
Khao sat so loi bit theo vi tri
Hình 2: 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=0dB Số bit kiểm tra: 10000
0
100
200
300
400
500
600
700
Bit Index
Khao sat so loi bit theo vi tri
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
Từ kết quả trên các Hình 2 và Hình 3 ta có nhận xét sau:
- 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
- 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)
- Vị trí bit thông tin có tỷ lệ lỗi bit nhỏ nhất không phải vị trí kênh có giá trị phân cực lớn nhất
III MÃTHOẠITỐCĐỘTHẤPCHUẨNMELP2400 Được phát minh năm 1995 do Alan McCree, mã dự đoán 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 dụng chủ yếu trong các ứng dụng quân sự và thông tin vệ tinh,
âm thanh bảo mật và các thiết bị vô tuyến bảo mật
Theo [2], [3], mã MELP dựa trên mô hình tham số mã dự đoán tuyến tính (LPC - Linear Prediction Coding) và có cải tiến, bổ xung thêm năm đặc trưng nữa để khắc phục các nhược điểm của mã LPC; đó là Bộ trộn kích thích, chuỗi xung ngẫu nhiên, bộ lọc phổ thích nghi tăng cường, trải phổ xung và mô hình năng lượng Fourier, một khung dữ liệu MELP được tạo 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 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
đi, vậy tốc độ dữ liệu (54 bit/22,5ms tương đương 2400 bit/ 1giây) Phạm vi, giá trị cụ thể của các tham số được cho trong Bảng 1
Bảng 1: Bảng cấp phát số bit dùng cho các tham số MELP [2]
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
13 bit dùng để bổ sung mã FEC; cụ thể trong tiêu chuẩn MELP sử dụng mã Hamming như sau:
- 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 thứ tự quan trọng (ưu tiên); dùng ba bộ mã H(7,4) để mã hóa, 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ã 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 sau mã hóa là 13 bit; và tổng số bit trong một khung dữ liệu là
54 bit
Bảng 2: Cấu trúc 54 bit âm câm (MELP) với mã Hamming [2]
Từ bảng 2, ta có một số nhận xét:
25 4 4 7 1 41 H(7,4) H(7,4) H(7,4) 13 H(8,4) 4 7 1 54
Trang 3Khi mã hóa dữ liệu cần 4 bộ mã (3 bộ H(7,4) và 1 bộ H(8,4))
để mã hóa
-Tỷ lệ lỗi của các bit được mã hóa đồng đều (không có ưu tiên
theo vai trò)
- Tỷ lệ lỗi bit giảm chậm khi SNR tăng, điều này phụ thuộc
vào tính chất của mã Hamming
IV ỨNGDỤNGMÃ PHÂNCỰCTRONGMÃTHOẠI
Đề 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
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ẽ
dùng một bộ mã Polar P(32,19) để thay thế các mã Hamming
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
tiếng nói, điều này xuất phát từ tính chất của mã Polar, nội
dung đề xuất được trình bày dưới đây
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ã
P(32,19) theo vị trí ưu tiên Như vậy số lượng bit của khung
sau mã hóa vẫn đảm bảo 54 bit, nhưng số lượng bit được mã
hóa (bảo vệ) lại nhiều hơn 19 bit/ 16 bit so với mã Hamming,
Bảng 3 trình bày cấu trúc một khung (54 bit âm câm) tín hiệu
tiếng nói khi sử dụng mã Polar
Bảng 3: Cấu trúc 54 bit âm câm (MELP) với mã Polar
4 25 4 7 1 41
P(32,19) 10 4 7 1 54
Ở đây chỉ dùng 1 bộ mã P(32,19) để mã hóa, số lượng bít
được mã hóa nhiều hơn: 19 bit so với phương án mã hóa cũ,
các bít quan trọng được mã hóa ưu tiên hơn (ánh xạ lên các
kênh có chất lượng tốt hơn)
Sử dụng một số công cụ trong [4], [5], thực hiện xây dựng mô
hình mô phỏng so sánh tỷ lệ lỗi bit khi truyền khung dữ liệu
54 bit (Unvoice) trên Matlab với hai trường hợp: một là khung
dữ liệu 54 bit đóng gói theo chuẩn MELP (dùng mã
Hamming) và hai là khung dữ liệu 54 bit đóng gói theo đề
xuất mới (dùng mã P(32,19)) Mô hình hệ thống được trình
bày trên Hình 4
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
Với số lượng bit thông tin đầu vào là 10.000.000 bit Kết quả chạy mô phỏng khi sử dụng 2 loại mã Hamming và phân cực được trình bày trên Hình 5
0 2 4 6 8 10
10-8
10-6
10-4
10-2
100
Eb/N0, dB
No code Polar Hamming
Hình 5: Kết quả so sánh BER của 2 loại khung dữ liệu MELP 54 bit
Từ kết quả hình 5 ta có một số nhận xét như sau:
- Ở SNR < 4 dB chất lượng mã Polar kém hơn mã Hamming
- Ở SNR ≥ 4 dB chất lượng mã Polar bắt đầu tốt hơn mã Hamming, điều này càng rõ rệt khi chất lượng kênh tăng lên
Ví dụ tại BER = 10-6 thì độ lợi khi dùng mã Polar tốt hơn khoảng 0.8 dB so với mã Hamming
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 biệt trong các trang bị vô tuyến điện do Tập đoàn Công nghiệp 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 (chính là tham số của bộ lọc LPC10) có vai trò quan trọng nhất, chỉ cần các tham số này là có thể tái tạo lại âm thanh, các tham số khác chỉ bổ sung để làm rõ hơn đặc trưng của tiếng 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ã Hamming để mã hóa bảo vệ 12 bit đầu tiên [2] Với đề xuất dùng mã Polar (32,19), ta không chỉ bảo vệ được 15 bit LFS
mà còn ưu tiên được các bit quan trọng Để đánh giá kết quả này, chúng ta thực hiện mô phỏng trên mathlab với khung dữ liệu gốc là 41 bit truyền trên kênh AWGN với ba trường hợp:
- Thứ nhất là truyền khung 41 bit không mã hóa
- 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 truyền trực tiếp
- Thứ ba là truyền 54 bit, trong đó 19 bit được mã hóa Polar (32,19) thành 32 bit, còn lại 22 bit truyền trực tiếp
Ỏ đầ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ô phỏng thể hiện trên Hình 6 và Hình 7
F-MELP
(41 bit)
F-Polar (54 bit) F-Hamming
(54 bit)
AWGN
De-Polar (41 bit)
De-Hamming (41 bit)
BER
Trang 40 10 20 30 40 50
0
0.01
0.02
0.03
0.04
0.05
Bit Index
No code Polar Hamming
Hình 6: So sánh tỷ lệ lỗi bit SNR = 4 dB, khung truyền 41 bit
thông tin, số khung truyền 100.000 mẫu
0 10 20 30 40 50
0
0.005
0.01
0.015
0.02
0.025
0.03
Bit Index
No code Polar Hamming
Hình 7: So sánh tỷ lệ lỗi bit SNR = 5 dB, khung truyền 41 bit
thông tin, số khung truyền 1.000.000 mẫu
Từ kết quả trên Hình 6 và hình 7, ta có một số nhận xét sau:
- Số lượng bit được mã hóa (tỷ lệ lỗi nhỏ) của phương án đề 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ỏ)
Để đạt được ưu điểm và độ lợi trên đây, khi sử dụng mã phân cực ta phải trả giá về độ phức tạp mã hóa và giải mã, qua tính tính toán thấy rằng độ phức tạp mã hóa và giải mã Polar có độ
dài N đều là O(N.log2N) Độ phức tạp tương đối thấp và hoàn
toàn có thể hiện thực được trên các dòng chip phổ biến hiện nay
V KẾTLUẬN 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 bps) có cấu trúc dữ liệu phân biệt vị trí các bit theo vai trò thông tin Mô hình kết hợp giữa mã Polar và mã thoại MELP
2400 bps có kết quả mô phỏng tốt và có thể ứng dụng được 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 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 tin
TÀILIỆUTHAMKHẢO
[1] E Arıkan (2009), “Channel Polarization: A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless 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 [3] STANAG-4591, The 1200 and 2400 bit/s Nato Interoperable narrow band voice coder, NATO
[4] H Vangala, E Viterbo and Y Hong (2015), "A Comparative Study of Polar Code Constructions for the AWGN channel", arXiv:1501.02473 [5] Harish Vangala, "Poler code in MATLAB", Monash University, Clayton, VIC- 3800, Australia, Available: http:// www.polarcodes.com [6] Mani Bastani Parizi (2012), Polar Codes: Finite Length Implementation, Error Correlations and Multilevel Modulation, EPFL - Ecole Polytechnique Fe’de’rale de Lausanne.