Tiểu luận Nghiên cứu mô hình mã hóa tiếng nói Melp

Xét tín hiệu tiếng nói đầu vào trong một khung thời gian 22,5 ms sau khi qua bộ chuyển đổi AD, thì ta được 180 mẫu x 14 bit. Sau đó dữ liệu được cho qua bộ mã hóa Melp đầu ra bộ mã hóa còn lại là 54 bit. Ta thêm vào các bit chẵn lẻ và sau đó cho qua bộ mã hóa Reed-Solomon và sau đó thêm vào các bít đồng bộ được 180 mẫu. Cuối cùng cho dữ liệu này qua bộ chuyển đổi DAC và truyền lên băng cơ sở.

doc23 trang | Chia sẻ: lylyngoc | Lượt xem: 2736 | Lượt tải: 3download
Bạn đang xem trước 20 trang tài liệu Tiểu luận Nghiên cứu mô hình mã hóa tiếng nói Melp, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Khoa Đào tạo quốc tế và Sau đại học ------------o0o----------- TIỂU LUẬN MÔN XỬ LÝ TÍN HIỆU NÂNG CAO “NGHIÊN CỨU MÔ HÌNH MÃ HÓA TIẾNG NÓI MELP” Giáo viên hướng dẫn: TS. Nguyễn Ngọc Minh Nhóm thực hiện: Hà Nội, tháng 5 năm 2013 MỤC LỤC LỜI NÓI ĐẦU Trong thông tin vô tuyến điện băng hẹp HF, VHF nói chung và thông tin vô tuyến điện quân sự nói riêng thì việc tiết kiệm băng thông, cải thiện chất lượng tín hiệu khi truyền là vấn đề rất quan trọng. Có rất nhiều thuật toán để xử lý số tín hiệu tiêngs nói khác nhau để giải quyết vấn đề này như là LPC, CVSD, Melp (Mixed-Excitation Linear Predictive) . Đối với thông tin vô tuyến điện quân sự ngoài việc tiết kiệm băng thông kênh truyền còn có nhiệm vụ quan trọng nữa đó là chống tác chiến điện tử của kẻ thù, nên việc yêu cầu phải tích hợp rất nhiều dịch vụ trên một kênh truyền HF và VHF. Điều này chỉ được giải quyết khi ta nén dữ liệu số xuống một tốc độ rất thấp. Vì vậy thuật toán Melp là đáp ứng được các yêu cầu trên. Mã dự đoán tuyến tính kết hợp với bộ kích thích (MELP) là một mã hóa tiếng nói chuẩn 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. Được phát minh năm 1995 do Alan McCree (làm luận văn tốt nghiệp về xử lý tín hiệu và xử lý ảnh). Sau đó được hãng Texas Instruments đưa vào sản phẩm thương mại (chíp DSP kèm phần mềm MELP với tốc độ 2400bps). Năm 1997 đưa vào thành chuẩn quân sự Mỹ (MIL-STD-3005) và đến năm 2001 được đưa vào chuẩn NATO (STANAG 4591). Ngày nay chuẩn mã thoại MELP gồm 3 tốc độ (2400bps, 1200bps và 600bps). I. Khái quát chung Theo chuẩn MIL-STD-3005, mã MELP dựa trên mô hình tham số mã dự đoán tuyến tính (LPC - Linear Prediction Coding chủ yếu là LPC10) 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). Các yêu cầu về đặc tính tương tự và các tham số mã hóa cụ thể như sau: Yêu cầu về tín hiệu tương tự: Băng thông tín hiệu tương tự từ 100Hz đến 3800Hz; Bộ biến đổi A/D lớn nhất là 16 bit (tức là có giá trị sau biến đổi nằm trong khoảng -32768 đến 32767); Độ lợi xử lý mã phải đồng đều trên cả băng thông để đảm bảo mức của tín hiệu tiếng nói đầu ra phù hợp với mức của tín hiệu tiếng nói đầu vào. Yêu cầu các tham số mã hóa và lượng tử: Các tham số của mã MELP sau khi lượng tử hóa và được truyền đi bao gồm: chu kỳ pitch cuối cùng (P3); các giá trị âm thanh qua lọc băng thông (Vbpi, i = 1, 2, …, 5); giá trị 2 hệ số khuếch đại (G1, G2); các hệ số dự đoán tuyến tính (ai, i= 1, 2, …, 10); giá trị năng lượng Fourier và cờ ngẫu nhiên. 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 Tên tham số Âm hữu thanh (bit) Âm vô thanh (bit) Hệ số LPC10 (LSF) 25 25 Năng lượng Fuorier 8 - Hệ số khuếch đại (G1,G2) 8 8 Chu kỳ Pitch, Chồng âm 7 7 Bộ lọc âm (5 băng cố định) 4 - Cờ ngẫu nhiên 1 - Mã sửa lỗi (FEC) - 13 Bit đồng bộ 1 1 Tổng số bit/ khung 22,5ms 54 54 II. Thủ tục mã hóa Melp 1. Mô hình mã hóa Melp Thủ tục giải mã Melp Hình trên là mô hình hệ thống mã hóa MELP. Chức năng của từng bộ phận trong hệ thống lần lượt được trình bày ở phần tiếp theo. 2. Lọc bỏ tần số thấp Bước đầu tiên thực hiện mã hóa là lọc bỏ các tần số thấp, năng lượng một chiều của dữ liệu tiếng nói đầu vào. Bước này được thực hiện với một bộ lọc thông cao Chebychev 4 bậc loại II, với tần số cắt tại 60Hz và hệ số nén ngoài dải thông là 30dB. Dữ liệu tiếng nói sau lọc được đưa vào bộ đệm. 3. Bộ đệm đầu vào mẫu Bộ đệm chứa các mẫu mới nhất của tín hiệu tiếng nói đầu vào. Trong đó có một mẫu là mẫu mới nhất trong khung hiện tại. Bộ đệm được bổ xung thêm các mẫu trước và sau mẫu này để có các mẫu cần thiết cho quá trình giải mã. 4. Tính toán phần nguyên độ cao tiếng nói (pitch) (1) (2) Để tính độ cao tiếng nói, đầu tiên tín hiệu giọng nói được lọc với bộ lọc thông thấp Butterworth bậc 6 tần số cắt 1kHz. Giá trị phần nguyên của độ cao âm thanh P1 là giá trị của τ, τ = 40, 41, …, 160, để cho hàm tự tương quan chuẩn r(τ) cực đại. Hàm này được xác định bởi công thức sau: Trong đó [τ/2 ] là giá trị nguyên lớn nhất không vượt quá τ/2. 5. Phân tích dải tần tiếng nói Phần này của bộ mã hóa sẽ xác định tiếng nói thuộc băng tần nào trong 5 băng tần và tính cường độ tiếng nói Vbpi, i= 1, 2, 3, 4, 5, sau khi cho qua các bộ lọc Butterworth bậc 6 với các dải băng thông là 0 ÷ 500, 500 ÷ 1000, 1000 ÷ 2000, 2000 ÷ 3000, 3000 ÷ 4000 Hz. 6. Tính phần thập phân của độ cao tiếng nói (3) Thủ tục này dùng phương pháp nội suy để tăng độ chính xác cho độ cao tiếng nói. Đầu tiên độ cao tiếng nói được làm tròn đến giá trị nguyên gần nhất. Giả sử rằng giá trị này bằng T mẫu và hàm tự tương quan chuẩn hóa r() là một hàm liên tục và có cực đại trong khoảng T-1 và T+1 từ đó c(0,T-1) và c(0,T+1) được tính và so sánh để xác định cực đại nằm trong khoảng T-1 và T hay T và T+1. Nếu c(0,T-1) > c(0,T+1) thì cực đại nằm giữa T-1 và T thì độ cao tiếng nói T cần phải giảm đi 1. Phần thập phân ɛ được tính bằng công thức sau: (3) Trong đó c(m,n) được xác định ở công thức (2) ở trên. Giá trị độ cao âm thanh tính được ở phần này là: P2 = T + . 7. Cờ ngẫu nhiên Cờ ngẫu nhiên được thiết lập bằng 1 khi Vpb1 < 0,5 và được thiết lập tới 0 trong các trường hợp khác. Giá trị của Vpb1 được xác định trong phân tích dải tần tiếng nói như ở phần 4. 8. Phân tích dự đoán tuyến tính Một bộ phân tích dự đoán tuyến tính bậc 10 được thực hiện trên đầu vào tín hiệu tiếng nói sử dụng cửa sổ Hamming 200 mẫu ( 25 ms) tập trung xung quanh mẫu mới nhất trong khung hiện tại. Quá trình tính được thực hiện bởi thuật toán đệ qui Levinson-Durbin. 9. Tính toán tín hiệu sau lọc của dự đoán tuyến tính Tín hiệu sau lọc của dự đoán tuyến tính được tính toán bằng cách lọc tín hiệu tiếng nói đầu vào với bộ lọc dự đoán tuyến tính có hệ số được xác định ở phần 7. Cửa sổ để tính tín hiệu sau lọc có tâm là mẫu mới nhất trong khung hiện tại và được làm đủ rộng để sử dụng cho việc tính toán độ cao âm thanh sau cùng. (ở phần 10). 10. Tính toán Peakiness (4) Đỉnh của tín hiệu sau lọc được tính toán trên một cửa sổ 160 mẫu có tâm là mẫu mới nhất của khung hiện hành. Giá trị đỉnh là được tính dựa trên tín hiệu sau lọc rn như công thức dưới: Nếu giá trị đỉnh vượt quá 1,34 thì cường độ âm thanh Vpb1 được gán 1,0. Nếu giá trị đỉnh vượt qua 1,6 thì cường độ âm thanh 3 băng, Vpbi , i=1, 2, 3 được gán bằng 1,0. Peakiness chỉ được sử dụng cho mục đích trên. 11. Hoàn tất tính toán cao độ của tiếng nói Quá trình tính toán giá trị cuối cùng của cao độ tiếng nói dựa trên tín hiệu sau lọc sau khi đã lọc thông thấp với bộ lọc thông thấp Butterworth bậc 6, tần số cắt 1kHz. Phương trình (1) cũng được sử dụng để tìm phần nguyên của cao độ của tín hiệu sau lọc dao động từ nhỏ hơn độ cao giọng nói 5 mẫu đến lớn hơn cao độ giọng nói 5 mẫu. Quá trình tính toán phần thập phân của cao độ tín hiệu sau lọc cũng được tiến hành tương tự như phần 6 để tìm ra giá trị chính xác của cao độ P3 và giá trị tương quan chuẩn tương ứng r(P3). Nếu r(P3)≥0,6 (nghĩa là giá trị tự tương quan tính ra đủ lớn, tức tín hiệu sau lọc gần như tuần hoàn với chu kỳ P3 mẫu) thì giá trị cao độ này sẽ được coi như cao độ của tiếng nói, ta tiến hành kiểm tra xem cao độ tìm được có là bội của cao độ nào nhỏ hơn không (mục 12) với ngưỡng để so sánh là Dth (nghĩa là nếu muốn khẳng định P3 có phải là bội của cao độ nhỏ hơn P3/n nào đó, cần có r(P3/n)≥Dth.r(P3) để tìm ra giá trị cao độ cuối cùng. Nếu P3≤100 thì chọn Dth=0,75, ngược lại thì chọn Dth=0,5. Ngược lại (tức độ tương quan không đủ lớn – tín hiệu sau lọc gần như là ngẫu nhiên không có chu kỳ), thì giá trị cao độ của tiếng nói ban đầu sẽ được chọn để tính cao độ cuối cùng. Nếu giá trị tự tương quan đã chuẩn hóa tính được nhỏ hơn 0,55 thì tiếng nói ban đầu gần như là ngẫu nhiên không có chu kỳ, ta sử dụng cao độ trung bình Pavg. Ngược lại thì giá trị này được coi như độ cao của tiếng nói, ta tiến hành kiểm tra xem cao độ này có phải là bội số của cao độ nhỏ hơn nào đó không với ngưỡng so sánh là Dth=0,9 nếu P3≤100, Dth=0,7 nếu ngược lại. Quá trình trên có thể tính ra giá trị P3 và giá trị tự tương quan tương ứng khác với các giá trị ban đầu. Nếu giá trị tương quan tính được nhỏ hơn 0,55 thì cao độ được gán bằng giá trị cao độ trung bình. 12. Kiểm tra tính bội của cao độ Một hàm tuần hoàn với chu kỳ T nào đó thì cũng tuần hoàn với chu kỳ 2T, 3T,… nên cao độ tính được ở bước trên có thể gấp 2 lần, 3 lần… cao độ cơ bản nào đó. Quá trình kiểm tra tính bội của cao độ nhằm tính ra cao độ cơ bản từ giá trị cao độ tính được ở trên. 13. Tính hệ số khuyếch đại Hệ số khuyếch đại âm thanh đầu vào được tính hai lần trong mỗi frame sử dụng cửa sổ có độ rộng thay đổi theo giá trị cao độ. Độ rộng cửa sổ ở cả hai lần tính đều giống nhau và được xác định như sau: Nếu Vbp1>0,6, độ rộng cửa sổ bằng số lần P2 nhỏ nhất sao cho giá trị của nó lớn hơn 120 mẫu. Nếu độ rộng này vượt quá 320 mẫu thì nó được chia cho 2. Nếu Vbp1≤0,6, độ rộng cửa sổ là 120 mẫu. Cửa sổ thứ nhất có tâm cách 90 mẫu trước mẫu cuối cùng trong khung hiện hành. Cửa sổ thứ hai có tâm là mẫu cuối cùng của khung hiện hành. Hệ số khuyếch đại Gi ,i=1,2, là giá trị hiệu dụng của dãy tín hiệu sn tính theo thang dB theo công thức: (6) Trong đó L là độ rộng cửa sổ. Giá trị 0,01 được đưa vào để không bị lỗi lấy logarit của 0. Nếu hệ số khuyếch đại tính ra nhỏ hơn 0,0… thì lấy giá trị bằng 0,0. Trong quá trình tính toán, ta giả thiết rằng giá trị các mẫu tín hiệu nằm trong khoảng từ -32768 đến 32767. 14. Cập nhật cao độ trung bình (7) Cao độ trung bình trong một thời gian dài được cập nhật bằng thao tác làm mịn đơn giản: Nếu r(P3)>0,8 và G2>30dB thì P3 được đưa vào bộ đệm chứa 3 giá trị cao độ rõ nhất cho đến hiện tại, pi, i=1,2,3. Ngược lại thì tất cả 3 giá trị cao độ rõ nhất trong bộ đệm được thay đổi để giá trị của nó dịch dần về giá trị cao độ mặc định Pdefault=50 mẫu: Giá trị cao độ trung bình Pavg được cập nhật bằng trung bình cộng của 3 giá trị cao độ lưu trong bộ đệm. Giá trị này được sử dụng để tính giá trị cuối cùng của cao độ trong các phần trước. 15. Lượng tử hóa các hệ số của bộ lọc dự đoán tuyến tính. Đầu tiên, từ các hệ số của bộ lọc dự đoán tuyến tính tính ra các tần số có phổ vạch (Line Spectral Frequencies – LSFs). Tiếp đó, các tần số này được sắp xếp tăng dần bằng phương pháp nổi bọt, tức kiểm tra tất cả các cặp tần số liên tiếp, nếu có cặp nào không tăng dần thì đổi chỗ 2 tần số này. Quá trình này lặp lại cho đến khi dãy tần số theo đúng thứ tự. Sau đó, các tần số được điều chỉnh để khoảng cách nhỏ nhất giữa 2 tần số liên tiếp fi và fi+1 là di =fi+1 - fi không nhỏ hơn 50Hz như đoạn giả mã dưới đây. Ở đây giả sử các tần số có phổ vạch được tính trong thang Hz, trong các thang khác thì quá trình tính có thể hơi khác. Vectơ các tần số phổ vạch f sau đó được lượng tử hóa sử dụng phương pháp lượng tử hóa vectơ nhiều tầng. Bảng tra lượng tử hóa vectơ nhiều tầng chứa 4 tầng với số mức ở các tầng là 128,64,64,64. Vectơ sau khi lượng tử hóa f là tổng của 4vectơ ở 4 tầng. Ta cần tìm một vectơ trong bảng tra sao cho bình phương khoảng cách Ơclit giữa nó và vectơ cần lượng tử hóa là nhỏ nhất. (8) Trong đó, fi là tần số phổ vạch thứ i và P(fi) – nghịch đảo của năng lượng phổ của bộ lọc dự đoán tuyến tính tại tần số fi. Quá trình tính toán vectơ lượng tử là quá trình xấp xỉ dần, dùng phương pháp bình phương cực tiểu. Từ vectơ tối ưu tìm được ở mỗi tầng, tính ra vectơ sai số và ở tầng tiếp theo ta lại xấp xỉ vectơ sai số này. Vectơ tính ra ở bước này sẽ được dùng để tính các biên độ Furie (mục 19) 16. Lượng tử hóa độ cao tiếng nói Giá trị cuối cùng của độ cao P3 được lượng tử hóa theo thang logarit cơ số 10 với bộ lượng tử hóa vô hướng 99 mức các giá trị trong phạm vi từ 20 đến 160 mẫu. Giá trị cao độ được ánh xạ đến bộ từ điển 7 bit. Từ mã có tất cả các thành phần đều bằng 0 để chỉ âm thanh là vô thanh, xảy ra khi Vbp1≤0,6. Tất cả 28 từ mã có trọng lượng Hamming bằng 1 hoặc 2 (tức có từ 1 đến 2 bit 1) không dùng để tránh lỗi. 17. Lượng tử hóa hệ số khuyếch đại Hai hệ số khuyếch đại được lượng tử hóa như sau: Đầu tiên, G2 được lượng tử hóa sử dụng bộ lượng tử hóa vô hướng 5 bit trong khoảng 10 đến 77dB. Sau đó, G1 được lượng tử hóa thành 3 bit sử dụng thuật toán thích nghi như sau: Nếu G2 ở khung hiện tại cách G2 ở khung trước ít hơn 5dB và G1 cách trung bình cộng của G2 ở 2 khung ít hơn 3dB thì thì khung đang ở trạng thái ổn định và G1 được gán giá tri đặc biệt (tất cả các bit đều bằng 0) để ám chỉ rằng bộ giải mã chỉ cần lấy G1 bằng giá trị G2 ở khung hiện hành là được. Ngược lại thì khung hiện tại là một khung chuyển tiếp và giá trị G1 được lượng tử hóa sử dụng bộ lượng tử hóa vô hướng 7 mức các giá trị trong khoảng từ nhỏ hơn giá trị nhỏ hơn trong 2 giá trị G2 ở khung trước và khung hiện tại 6dB đến lớn hơn giá trị lớn hơn trong 2 giá trị đó 6dB. 18. Lượng tử hóa băng tần tiếng nói Nếu Vbp1≤0,6 (tiếng nói là vô thanh) thì tất cả các cường độ tiếng nói sau khi qua lọc ở các dải băng tần còn lại Vbpi , i=2,3,4,5 được lượng tử hóa về 0. Ngược lại thì các giá trị các cường độ này được lượng tử hóa về 1 nếu giá trị của nó vượt quá 0,6 và về 0 nếu ngược lại. Nếu chỉ có Vbp5 vượt quá 0,6 thì nó cũng được lượng tử hóa về 0. 19. Tính toán biên độ Fourier và lượng tử hóa Tiếng nói tạo ra do bộ lọc dự đoán tuyến tính gọi là tín hiệu sau lọc. Quá trình này tính 10 biên độ của 10 hài đầu tiên của cao độ của tín hiệu sau lọc này. Nó sử dụng biến đổi Furie nhanh (FFT) 512 điểm trên cửa sổ gồm 200 mẫu tín hiệu sau lọc có tâm tại mẫu cuối cùng của khung. Đầu tiên, từ vectơ các tần số phổ vạch (LSF) đã được lượng tử hóa ở trên tính ra các hệ số của bộ lọc dự đoán tuyến tính. Sau đó, tính tín hiệu sau lọc giữa tiếng nói tạo ra do bộ lọc và tiếng nói ban đầu. Tiếp đó dùng cửa sổ Hamming 200 mẫu, thêm các mẫu 0 ở các vị trí cần thiết để được 512 điểm, và tiến hành tính FFT. Cuối cùng, từ kết quả của biến đổi Furier tính ra biên độ và tìm ra các hài bằng cách xác định các điểm đỉnh của phổ. Đỉnh của phổ được tìm bằng cách xác định điểm cực đại trong khoảng rộng 512/P^3 xung quanh điểm ước lượng của hài, trong đó P^3 là cao độ tiếng nói sau khi đã lượng tử hóa. Bề rộng của khoảng được cắt chỉ giữ lại phần nguyên. Điểm ước lượng cho tần số hài thứ i là 512i/P^3. Số lượng biên độ phải tìm không lớn hơn P^3/4, cũng không lớn hơn 10. Nếu tìm thấy ít hơn 10 hài thì các biên độ còn lại gán bằng 1,0. (9) 10 biên độ được lượng tử hóa dùng bộ lượng tử hóa vectơ 8 bit. Việc tìm từ mã tối ưu sử dụng khoảng cách Ơclit có trọng số (bình phương tối thiểu có trọng số) với trọng số ở các tần số thấp cao hơn trọng số ở các tần số cao. Trọng số được tính như sau: Trong đó fi=8000i/60. Trọng số này được nhân vào hiệu bình phương của biên độ Furier ban đầu và giá trị tương ứng của bảng từ mã. 20. Sửa lỗi và đóng gói các bit thành khung Bảng 1 ở mục I cho thấy bố trí các bit trong khung bit của bộ mã hóa MELP. Để tăng hiệu quả trên các kênh lỗi, các bit không sử dụng hết ở các khung vô thanh có thể dùng để làm mã sửa lỗi. 3 mã sửa lỗi Hamming(7,4) và một mã Hamming(8,4) được dùng. Mã (7,4) có thể sửa bất kỳ lỗi đơn nào, trong khi đó mã (8,4) còn cho phép xác định được cả lỗi kép. III. Bộ giải mã Dữ liệu nhận về được giải mã qua các bước sau: Sửa lỗi và lấy ra các bit từ khung Giảm nhiễu Tạo kích thích hỗn hợp Bộ lọc thích nghi tăng cường phổ Tổng hợp bộ lọc dự đoán tuyến tính Điều chỉnh hệ số khuyếch đại Phân tán xung Nội suy các tham số Điều khiển vòng lặp tổng hợp Lọc trước đầu ra (không bắt buộc) Dữ liệu số đầu vào Tín hiệu tiếng nói đầu ra. 1. Sửa lỗi và lấy ra các bit từ khung Từ khung nhận về lấy ra các bit và từ đó khôi phục lại các tham số từ mã. Quá trình giải mã các tham số từ mã của khung hữu thanh và vô thanh là khác nhau. Đầu tiên là giải mã cao độ âm thanh, bởi vì tham số này chứa cả thông tin về hữu thanh hay vô thanh của khung. Nếu các bit mã của cao độ của âm thanh bằng 0 hết hoặc chỉ có 1 bit 1 thì khung là vô thanh. Nếu có 2 bit 1 thì khung này không xác định được, ta bỏ qua khung này (thay bằng khung trước). Ngược lại thì ta có mã của cao độ âm thanh và khung là hữu thanh. Nếu khung là vô thanh thì ta tiến hành giải các mã sửa lỗi Hamming để tìm ra bộ tham số đúng của khung. Các tham số còn lại (không truyền đi) sẽ được gán giá trị mặc định: cao độ gắn bằng 50 mẫu, mức dao động bằng 25%, tất cả cường độ âm thanh ở các băng tần gán bằng 0, các biên độ Furier bằng 1. Nếu khung là hữu thanh, Vbp1 được gán bằng 1, độ rung gán bằng 25% nếu cờ ngẫu nhiên bằng 1, ngược lại thì độ rung gán bằng 0%. Cường độ âm thanh ở các băng tần cao gán bằng 1 nếu bit tương ứng bằng 1, ngược lại thì gán bằng 0. 2. Giảm nhiễu Đối với tín hiệu đầu vào nhỏ, ta làm suy giảm cả hai hệ số khuyếch đại một lượng nhỏ theo quy tắc trừ đi một lũy thừa của chúng. Đây là phương án tối giản, không phụ thuộc tần số của phương pháp khử nhiễu bằng cách trơn theo kiểu trừ phổ. Trước khi xác định hệ số suy giảm cho hệ số khuyếch đại thứ nhất, ước lượng của nhiễu nền được cập nhật như sau: Nếu G1>Gn+Gup thì Gn=Gn+Gup. Nếu G1<Gn-Gdown thì Gn=Gn-Gdown. Ngược lại thì Gn=G1, Gup=0,0337435, Gdown=0,135418, và do vậy ước lượng mức nhiễu sẽ tăng 3dB mỗi giây hoặc giảm 12dB mỗi giây, hệ số khuyếch đại sẽ được cập nhật 88,9 lần mỗi giây. Ước lượng mức nhiễu được điều chỉnh nằm trong khoảng 10 và 80. Quá trình ước lượng mức nhiễu sẽ được bỏ qua cho các khung lặp lại để tránh việc suy giảm nhiều lần. Ước lượng nhiễu nền còn được dùng khi tính toán phổ tăng cường thích nghi. Hệ số khuyếch đại G1 sau đó được trừ đi 1 lượng Gatt tính theo dB theo công thức: (10) Trong đó Gn là ước lượng của nhiễu nền (theo thang dB), G1 là giá trị ban đầu của hệ số khuyếch đại. Lượng trừ đi được điều chỉnh để nằm không vượt quá 6dB nhằm tránh hiện tượng méo và rung động tín hiệu. Để đảm bảo là chỉ làm suy giảm tín hiệu đầu vào nhỏ, giá trị Gn ở công thức trên đươc giới hạn tối đa là 20dB. Quá trình ước lượng mức nhiễu và thay đổi hệ số khuyêch đại tiếp tục lặp lại cho G2. Các quá trình này bỏ qua khi các khung lặp lại. 3. Nội suy các tham số Tất cả các tham số tổng hợp lại được nội suy đồng bộ theo cao độ âm thanh cho mỗi chu kỳ đồng bộ của cao độ. Các tham số được nội suy bao gôm: hệ số khuyếch đại, các tần số phổ vạch (LSF), cao độ, độ dao động, các biên độ Furier, các tham số về xung và hệ số nhiễu cho bộ kích thích hỗn hợp và hệ số nghiêng cho bộ lọc thích nghi tăng cường phổ. Nếu điểm bắt đầu t0 (t0=0,1,…,179) của chu kỳ mới của cao độ nhỏ hơn 90 mẫu, hệ số khuyếch đại được tính bằng nội suy tuyến tính từ độ khuyếch đại G2p của khung trước và G1 của khung hiện tại, ngược lại thì nội suy từ G1 và G2. Thông thường, các tham số khác được nội suy tuyến tính từ giá trị ở khung trước và khung hiện tại. Tỷ lệ nội suy int cho các tham số này phụ thuộc vào điểm bắt đầu của chu kỳ mới của cao độ: int = t0/180. Có 2 ngoại lệ: Một là khi bắt đầu một cao độ có tần số cao thì không nội suy cao độ mà lấy luôn giá trị cao độ mới. Điều này xảy ra khi G1 lớn hơn G2 từ 6dB trở lên và chu kỳ của cao độ của khung hiện tại nhỏ hơn 1 nửa chu kỳ cao độ của khung trước. Ngoại lệ thứ hai là khi hệ số khuyếch đại mới. Nếu G2 khác G2p ở khung trước quá 6dB thì các tần số phổ vạch LSF, các hệ số nghiêng của phổ và cao độ được nội suy trên cơ sở đường cong nội suy hệ số khuyếch đại, bởi vì đối với mỗi khung, hệ số khuyếch đại được truyền 2 lần và nội suy trên cơ sở hệ số khuyếch đại sẽ chính xác hơn. Tỷ lệ nội suy sẽ là: (12) Trong đó Gint là hệ số khuyếch đại nội suy ra. Tỷ lệ nội suy được điều chỉnh trong giới han 0 và 1. 4. Tạo kích thích hỗn hợp Kích thích có chu kỳ và nhiễu được kết hợp lại trên miền tàn số và sau đó được biến đổi sang miền thời gian thành dãy tín hiệu dài 1 chu kỳ cao độ sử dụng phép biến đôi Furier ngược. Phổ kích thích được tạo ra dựa trên 2 tham số: tần số cắt F và vectơ các tần số Furier M(k),k=1,2,…,L. Tần số cắt thì dựa cường độ tín hiệu ở các băng tần Vpbi,i=2,3,4,5, và sau đó được nội suy cho từng chu kỳ cao độ. F được gán bằng 0 nếu Vbp1 cho thấy rằng khung hiện tại là vô thanh, ngược lại thì tần số cắt tùy thuộc vào giá trị của Vbpi,i=2,3,4,5 theo bảng: Chu kỳ cao độ T được nội suy từ giá trị của cao độ công thêm một số lần cao độ gọi là độ rung, trong đó độ rung này được nội suy từ cường độ rung lần một số ngẫu nhiên nằm giữa -1 và 1. Chu kỳ cao độ được làm tròn đến số nguyên gần nhất và cố định trong khoảng từ 20 đến 160. Tần số cơ bản của cao độ f0=2π/T. Số chiều của vectơ biên độ Fourier là L= [T/2] . Hai tần số chuyển tiếp FH và FL được xác định tùy theo tần số cắt F dựa vào thuật toán xây dựng trên thực nghiệm. Tần số chuyển tiếp FL € [0.85F , 0.98F], FH € [F , 1.05F]. Các tần số chuyển tiếp này có chỉ số tần số khi biến đổi Furier rời rạc ngược tương ứng là VL và VH. Mô hình hữu thanh được sử dụng cho tất cả các tần số dưới VL, mô hình hỗn hợp được sử dụng cho các thành phần tần số giữa VL và VH và mô hình vô thanh được sử dụng cho các thành phần tần số cao hơn VH. Để xác định chế độ hỗn hợp, tỷ lệ khuyếch đại được chọn với giá trị tùy thuộc vào tần số cắt (tần số cắt F càng cao, tỷ lệ càng nhỏ). Các thành phần tần số của bộ kích thích được xác định như sau: (13) (14) Trong đó ф0 là hằng số được chọn để tránh các biến đổi đột ngột của cao độ tại các biên của chu kỳ cao độ. Giá trị фRND là một số ngẫu nhiên nằm giữa -2π và 2π. Các mẫu tần số của bộ kích thích hỗn hợp sau đó được biến đổi ra miền thời gian sử dụng phép biến đổi Furier rời rạc ngược. 5. Bộ lọc thích nghi tăng cường phổ Tín hiệu sau bộ kích thích hỗn hợp được cho qua bộ lọc thích nghi tăng cường phổ. Bộ lọc này là là bộ lọc bậc 10 cực/không bổ sung thêm một thành phần bù nghiêng bậc 1. Các hệ số của nó được tạo ra bằng cách mở rộng dải thông của bộ lọc dự đoán tuyến tính. Bộ lọc dự đoán tuyến tính có hàm truyền đạt A(z) được nội suy từ các tần số phổ vạch LSF. Hàm truyền đạt của bộ lọc tăng cường phổ như sau: (15) (16) Hệ số nghiêng µ đầu tiên tính bằng max(0,5k1, 0), sau đó thì được nội suy và nhân với p là xác suất tín hiệu. Hệ số phản xạ bậc 1 k1 được tính từ các tần số phổ vạch LSF. Đối với phổ hữu thanh, k1 thường có giá trị âm. Xác suất tín hiệu p được ước lượng từ giá trị nội suy của hệ số khuyếch đại Gint và ước lượng nhiễu nền theo công thức: Xác suất tín hiệu được giữ trong khoảng giữa 0 và 1. 6. Tổng hợp bộ lọc dự đoán tuyến tính Bộ lọc dự đoán tuyến tính là bộ lọc dạng trực tiếp, các hệ số được tính dựa trên các giá trị nội suy của các tần số phổ vạch. 7. Điều chỉnh hệ số khuyếch đại (17) Vì tín hiệu kích thích tạo ra có mức bất kỳ nên cần điều chỉnh hệ số khuyếch đại cho âm thanh tạo ra. Hệ số tỷ lệ Sgain được tính cho mỗi chu kỳ cao độ T bằng cách chia giá trị hiệu dụng mong muốn (Gint phải chuyển qua thang dB) cho giá trị hiệu dụng của âm thanh được tạo ra: Để tránh hiện tượng gián đoạn trong âm thanh tạo ra, hệ số tỷ lệ được nội suy tuyến tính từ giá trị của chu kỳ cao độ trước và 10 mẫu đầu tiên của chu kỳ hiện tại. 8. Trải phổ xung Bộ lọc trải phổ xung là bộ lọc FIR bậc 65 kiểu bộ lọc làm phẳng phổ của xung tam giác. Các hệ số của bộ lọc được cho dưới đây: 9. Điều khiển vòng lặp tổng hợp Sau khi đã tiến hành quá trình tổng hợp cho mỗi chu kỳ cao độ, t0 được cập nhật bằng cách cộng thêm T – số lượng mẫu của chu kỳ cao độ vừa tổng hợp. Nếu t0<180, tiếp tục quá trình tổng hợp từ bước nội suy cá tham số (mục 3 phần III). Ngược lại, chuyển các mẫu thừa vào bộ đệm và kến thúc khung hiện tại, đồng thời trừ t0 đi 180 để được giá trị khởi tạo cho khung tiếp theo. 10. Lọc trước đầu ra (không bắt buộc) Mỗi khung âm thanh được tổng hợp có thể được lọc bởi một bộ lọc trước khi thành tín hiệu đầu ra. Khung được chia thành 4 khung con kích thước bằng nhau. Các tần số phổ vạch LSF được nội suy tuyến tính cho từng khung con, sau đó chuyển thành các hệ số của bộ lọc dự đoán tuyến tính ai, i=1,2,..10 và các hệ số phản xạ ri, i=1,2,..10. Hàm truyền đạt của bộ lọc trước đầu ra được cho như sau: (20) Trong đó γ=0,56, β=0,75. µ được xác định thông qua các hệ số phản xạ: nếu lớn hơn 0,3 thì µ=0,0, ngược lại thì µ=0,2. Đối với mỗi khung con, hệ số khuyếch đại được điều chỉnh như sau: (21) (22) Trong đó N=45 là kích thước khung con, s(n) là âm thanh tổng hợp được trước khi lọc, s’pf(n) là tín hiệu đầu ra sau bộ lọc, Hpf(z).gprev là tỷ lệ điều chỉnh hệ số khuyếch đại của khung con trước. Sau đó, tín hiệu được khuyếch đại theo công thức: (23) Cuối cùng, spf(n) được cho qua bộ lọc thông thấp và thông cao để tạo ra tín hiệu đầu ra. Hai bộ lọc đều là bộ lọc Butterworth bậc 2 với tần số cắt tương ứng là 3800Hz và 60Hz. IV. Ứng dụng mã Melp trong máy VHF nhảy tần 1. Quá trình xử lý thoại để truyền MIC ADC Mã hóa MELP 180 mẫu 54 bit Thêm bit chẵn lẻ Mã hóa RS DAC 180 mẫu 22,5ms BB Thêm bit đồng bộ Xét tín hiệu tiếng nói đầu vào trong một khung thời gian 22,5 ms sau khi qua bộ chuyển đổi AD, thì ta được 180 mẫu x 14 bit. Sau đó dữ liệu được cho qua bộ mã hóa Melp đầu ra bộ mã hóa còn lại là 54 bit. Ta thêm vào các bit chẵn lẻ và sau đó cho qua bộ mã hóa Reed-Solomon và sau đó thêm vào các bít đồng bộ được 180 mẫu. Cuối cùng cho dữ liệu này qua bộ chuyển đổi DAC và truyền lên băng cơ sở. 2. Quá trình xử lý thoại nhận về 22,5ms BB ADC 180 mẫu Giải mã RS Lấy ra 54 bit bit MELP 54 bit Giải mã MELP 1850 180 mẫu DAC LOA Tín hiệu từ băng cơ sở sau khi qua bộ chuyển đổi ADC thì được là 180 mẫu. Sau đó cho qua bộ giải mã Reed-Solomon thì còn lại 54 bit. Tiếp tục cho qua bộ giải mã MELP thu được 180 mẫu và sau đó cho qua bộ chuyển đổi DAC. Cuối cùng tín hiệu tiếng nói được đưa ra LOA. DANH MỤC TÀI LIỆU THAM KHẢO [1] Nato Stanag 4593 [2] MIL-STD-3005

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

  • docma_hoa_tieng_noi_melp_9409.doc