Tải bản đầy đủ (.docx) (31 trang)

Nén âm thanh tiếng nói thoại theo chuẩn ITU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (523.46 KB, 31 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────

BÁO CÁO
XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN

NHÓM 16: NÉN ÂM THANH TIẾNG NÓI THOẠI THEO CHUẨN
ITU

Giáo viên hướng dẫn

:

PGS.TS Nguyễn Thị Hoàng Lan

Sinh viên thực hiện

:

Phạm Thành Đạt – 20121503
Đỗ Xuân Cường – 20121358
1

Doãn Tuấn Vũ - 20122814
Trương Văn Lai - 20101751


MỤC LỤC

2




LỜI NÓI ĐẦU
Hiện nay, Voice over IP (hay viết tắt là VoIP) nghĩa là truyền giọng nói trên
giao thức IP là một trong những công nghệ hỗ trợ rất đắc lực cho các doanh
nghiệp trong lĩnh vực truyền thông. Sử dụng giao thức TCP/IP, nó sử dụng
các gói dữ liệu IP trên mạng LAN, WAN hay Internet để truyền tải âm thanh
dưới dạng mã hóa. VoIP đã được ITU-T xây dựng các chuẩn luôn được cập
nhật nên ngày càng hoàn chỉnh. Chính vì vậy, chúng em đã quyết định chọn đề
tài số 16 - NÉN ÂM THANH TIẾNG NÓI THOẠI THEO CHUẨN ITU
Nội dung báo cáo gồm 3 phần chính:
Phần 1: Tìm hiểu một số khái niệm sound và đặc điểm của hai loại
tín hiệu audio: tín hiệu tiếng nói thoại và audio HiFi
Phần 2: Tìm hiểu các chuẩn ITU dùng trong các ứng dụng VOIP
Phần 3: Phân tích một sơ đồ mã hóa tiếng nói thoại theo chuẩn ITU
G726
Phần 4: Xây dựng thuật toán mã hóa theo sơ đồ phân tích trên, đặt
thực nghiệm và đo lường hiệu năng giải pháp nén này
Do thời gian nghiên cứu trình độ hiện tại của nhóm có hạn nên chắc chắn
trong quá trình thực hiện đề tài không tránh khỏi những sai lầm, thiếu sót cả
về nội dung lẫn hình thức. Trong suốt quá trình thực hiện, nhóm đã liên tục
nhận được sự nhắc nhở, góp ý từ cô Nguyễn Thị Hoàng Lan - giảng viên
hướng dẫn của nhóm.
Chúng em xin chân thành cảm ơn cô!

3


A- Một số khái niệm sound và đặc điểm của hai loại tín hiệu audio
1. Tìm hiểu chung về âm thanh thoại


Âm thanh (Sound) là các dao động cơ học của các phần tử, nguyên tử hay các
hạt vật chất lan truyền trong không gian, được cảm nhận trực tiếp qua tai
người bởi sự va đập vào màng nhĩ và kích thích bộ não. Sóng âm tần được
đặc trưng bởi biên độ, tần số (bước sóng) và vận tốc lan truyền. Đối với tai
người, âm thanh cảm nhận được bởi sóng có dao động trong dải tần từ 20Hz
đến 20kHz. Tín hiệu âm thanh được chia thành 2 loại dựa trên dải tần:
- Âm thanh dải tần cơ sở (âm thanh tiếng nói thoại, gọi tắt là âm thanh
thoại): có dải tần từ 300Hz đến 4kHz.
-

Âm thanh dải rộng (tiếng nói trình diễn, hát, âm nhạc…): có dải tần số
từ 100Hz đến 20kHz

Audio là âm thanh được thu nhận, xử lý và tái tạo bởi các thiết bị điện tử, đối
tượng truyền thông đa phương tiện.
Âm thanh đầu vào của quá trình nén file mp3 là âm thanh dải rộng .
So sánh các đặc điểm:
Âm thanh tiếng nói thoại
Audio HiFi
- Giới hạn dải phổ tín hiệu 300Hz 4kHz.
- Tần số lấy mẫu fs = 8kHz tương
đương với chu kỳ Te = 125µs.
- Mỗi mẫu được mã hóa bởi 8bits.
- Tốc độ cần thiết = 8bit x 8kHz =
64Kbit/s

- Giới hạn phổ tín hiệu: 20KHz
- Tần số lấy mẫu fs = 44.1 kHz , fs
chuyên dụng: 48kHz

- Mỗi mẫu được mã hóa bởi 16bits.
2 kênh stereo
- Tốc độ dữ liệu stereo: 176 Kbyte/s

2. Các phương pháp mã hóa tiếng nói

Mã hóa tiếng nói gồm 3 phương pháp chính:
2.1 Phương pháp mã hóa sóng (waveform)
+ Mã hóa dạng sóng là kỹ thuật duy trì hình dạng ban đầu cả các sóng
tín hiệu.

4


Nguyên lý của mã hóa dạng sóng : Tại phía phát sẽ nhận tín hiệu tiếng
nói tương tụ liên tục và mã hóa thành tín hiệu số. Tại phía thu, bộ giải
mã đảm nhận nhiệm vụ ngược lại để khôi phục tiếng nói, khi không có
lỗi truyền dẫn thì dạng sóng của tiếng nói khôi phục sẽ giống vơi tiếng
nói gốc
+ Bao gồm 2 loại chính:
Mã hóa trong miền thời gian: bao gồm các chuẩn từ G.710 đến
G.719
o Mã hóa điều xung mã Pulse Code Modulation – PCM – lương tử

hóa đã được chuẩn hóa với chuẩn G.711
Điều chế mã xung (PCM) là đầu tiên và được sử dụng rộng rãi nhất
trong hầu hết các kỹ thuật mã hóa dạng sóng các. Tổ chức ITU-T
(International Telecommunication Union – Telecommunication
Standardization Sector) đưa ra khuyến nghị G.711 quy định các thuật
toán để mã hóa tiếng nói ở định dạng PCM.

- PCM – kỹ thuật mã hóa dựa trên định lý Nyquist, định lý nói rằng nếu
một tín hiệu được lấy mẫu thống nhất ít nhất là gấp đôi tần số cao
nhất, nó có thể được tái tạo mà không có bất kỳ sự biến dạng nào. Tần
số cao nhất trong tín hiệu thoại là 4kHz, vì vậy chúng ta cần phải mẫu
dạng sóng là 8.000 mẫu / giây, mỗi 1/8000th của một giây (125 micro
giây).
- ITU-T tiêu chuẩn G.711 quy định các cơ chế mã hóa của tín hiệu thoại.
Tín hiệu tiếng nói có giới hạn băng thông là 4kHz, lấy 8.000 mẫu / giây,
và mỗi mẫu được thể hiện bằng 8 bit. Do đó, bằng cách sử dụng PCM,
tín hiệu thoại có thể được mã hoá là 64kbps.
o Mã hóa dự đoán – điều xung mã sai phân Differential Pulse Code
Modulation - DPCM.
-

-

DPCM (Differential pulse code modulation) điều xung mã vi phân là
quá trình chuyển đổi 1 tín hiệu tương tự sang tín hiệu số bằng cách lấy
mẫu tín hiệu tương tự và sau đó lượng tử vi phân giữa giá trị tín hiệu
thực và giá trị dự đoán (dự đoán giá trị trên cơ sở mẫu trước đó hay
các mẫu) và mã hóa thành giá trị số. Từ mã DPCM miêu tả vi phân giữa
các mẫu không như PCM là từ mã mô tả giá trị mẫu.
5


o Mã hóa dự đoán thích nghi – điều xung mã sai phân thích nghi

Adaptive Differential Pulse Code Modulation - ADPCM với chuẩn
G.726.
- Một cách đơn giản mà có thể được sửa đổi chế độ PCM là chúng ta có

thể mã hóa sự khác biệt giữa hai mẫu kế tiếp hay hơn là mã hóa các
mẫu một cách trực tiếp. Kỹ thuật này được gọi là điều chế xung mã vi
sai.
- Một đặc tính của các tín hiệu thoại có thể được sử dụng là một giá trị
mẫu có thể được dự đoán từ các giá trị mẫu quá khứ. Ở phía truyền,
chúng ta dự đoán giá trị của mẫu và tìm thấy sự khác biệt giữa giá trị
dự báo và giá trị thực tế và sau đó gửi các giá trị khác biệt. Kỹ thuật
này được gọi là điều chế thích nghi xung mã vi sai (ADPCM). Sử dụng
ADPCM, tín hiệu thoại có thể được mã hoá tại 32kbps mà không cần
bất kỳ sự xuống cấp về chất lượng so với PCM.
- ITU-T khuyến nghị G.721 quy định các thuật toán mã hóa. Trong
ADPCM, giá trị của mẫu lời thoại không được truyền, nhưng sự khác
biệt giữa giá trị dự báo và các mẫu giá trị thực tế được thì được
truyền. Nói chung, các coder ADPCM lấy dữ liệu mã hoá tiếng nói PCM
và chuyển đổi nó thành dữ liệu ADPCM.
Mã hóa trong miền tần số:
o Mã hóa các dải tần con Subband Coding – SBC với chuẩn G.722

Đối với âm thanh, thực nghiệm cho thấy tai người có một số hiệu ứng
đối với âm thanh như hiệu ứng che tần số, che thời gian,... Do đó có thể tiết
kiệm dữ liệu bằng cách loại đi các thành phần tín hiệu bị che, chỉ mã hoá
những phần nghe thấy được. Hiệu ứng che ở tai người là khác nhau trên
từng thành phần tần số, vì thế ta cần chia tín hiệu âm thanh thành các thành
phần tần số con (dải băng con) rồi xác định các thành phần bị che và không bị
che của tín hiệu trong từng dải tần số để xử lý.
Đó là tư tưởng cơ bản của mã hoá SBC. Mã hóa SBC chia tín hiệu gốc
thành các thành phần tín hiệu thuộc các dải tần (sub-band) để xử lý và mã
hóa riêng biệt từng thành phần sau đó gửi đi. Việc nhận tín hiệu, giải mã và
khôi phục tín hiệu ban đầu được thực hiện theo trình tự ngược lại. Các dải
băng con không chồng chập lên nhau (mà thực chất là liền kề nhau), do đó tín

hiệu thu được ở các dải tần được giải tương quan, nhờ đó có thể mã hoá
riêng biệt mà vẫn khôi phục được thành tín hiệu ban đầu.
6


Mã hoá SBC được ứng dụng rộng rãi trong nén dữ liệu audio, video, đặc
biệt là trong chuẩn nén dữ liệu MPEG.
Mã hoá SBC gồm các bước sau:
Lọc phân tích: tín hiệu được đưa qua các bộ lọc nhằm chia tín hiệu
thành các thành phần tín hiệu ứng với các dải tần không chồng nhau.
Đáp ứng xung của các bộ lọc sau bằng bộ lọc trước nhân với hàm số cos
(để dịch đáp ứng đi một khoảng)
Tín hiệu của các dải tần được giảm tần số lấy mẫu đi M lần (M là số
dải tần chia tín hiệu). Việc giảm tần số lấy mẫu làm phổ rộng ra, trải hết
trục tần số. Số mẫu lúc này cũng giảm theo. Giảm tần số lấy mẫu được
thực hiện dựa theo định lý lấy mẫu Nyquist và hệ quả của định lý
Nyquist. Tỷ lệ giảm tần số lấy mẫu phụ thuộc vào tỷ lệ giữa dải thông
của bộ lọc với dải tần tín hiệu vào.
Thực hiện lượng tử hoá và mã hoá riêng trên từng dải tần số. Lựa
chọn phương pháp lượng tử hoá và mã hoá, thực hiện và phân phối bit
dựa trên tính chất của dòng tín hiệu sau bộ lọc. Đây là bước mang lại
hiệu quả nén cho toàn bộ quá trình mã hoá SBC.
Phân phối bit là việc phân chia số bit hiện có cho mã hoá từng dải, dựa
theo tín hiệu của từng dải do trong từng dải, lượng thông tin là khác nhau.
Phân phối bit ảnh hưởng lớn đến khôi phục dữ liệu sau quá trình gửi nhận dữ
liệu.Giải mã, tổng hợp SBC thực hiện theo trình tự ngược lại:
- Tín hiệu nhận được được phân kênh về các bộ xử lý với các dải tần
tương ứng
- Giải mã tín hiệu, sử dụng các hệ số của quá trình lượng tử hoá và
mã hoá ở trước.

- Tăng tần số lấy mẫu lên M lần
- Đi qua các bộ lọc để tín hiệu có xung giống như lúc sau khi đi qua bộ
lọc phần mã hoá
- Ghép các tín hiệu lại thành tín hiệu ban đầu
o Mã hóa dựa trên phép biến đổi Transform Coding.
Kết luận: Ưu điểm của mã hóa dạng sóng là có khả năng cung cấp thoại
tốt như tiếng nói gốc nhưng chỉ hiệu quả ở tốc độ bit cao
2.2 Phương pháp mã hóa nguồn:
o Nguyên lý mã hóa nguồn dựa trên bộ mô phỏng hệ thống phát âm con
người Vocoder, tạo ra âm thanh tiếng nói từ tập các tham số. Vocoder
7


làm việc với 2 kiểu nguồn kích thích là nguồn xung tạo ra âm hữu thanh
và nguồn nhiễu trắng tạo ra âm vô thanh. Từ đó, nó mô phỏng hệ thống
phát âm bằng hệ thống lọc dự đoán tuyến tính LPC được kích thích bằng
hai trạng thái nguồn.
o Ưu điểm của phương pháp này là đạt được tốc độ dòng bit thấp, phân

tích được các tham số nguồn kích thích, có thể sửa đổi nội dung tiếng
nói theo ý muốn. Tuy nhiên, nhược điểm của nó là tiếng nói nhận được
là tiếng nói tổng hợp không phải là giọng nói con người.
2.3 Phương pháp mã hóa lai:
o Mã hóa lai dùng để lấp khoảng cách ranh giới giữa mã hóa dạng sóng
và mã hóa nguồn vì mã hóa dạng sóng có khả năng cung cấp thoại tốt
nhưng bị giới hạn về sử dụng tốc độ thấp hơn còn mã hóa nguồn có thể
hoạt động ở tốc độ tấp nhưng không thể tạo ra âm thanh trung thực ở
bất kì tốc độ nào
o Mã hóa lai phổ biến là mã hóa dựa trên kết hợp phân tích bằng cách


tổng hợp Analysis-by-Synthesis AbS:
+ Phương pháp này sử dụng mô hình dự đoán tuyến tính ( giống
LPC) tạo ra âm thanh tiếng nói nhờ tập các tham số nhưng
không ứng dụng mô hình ở trạng thái đơn giản ( hữu thanh- vô
thanh).
+ Mô hình này cố gắng giảm tối đa độ sai lệch với dạng sóng của
tín hiệu vào bằng cách tìm kiếm tín hiệu kích thích ký tưởng
+ Thuật toán tìm ra sóng kích thích này quyết định độ phức tạp
của bộ mã hóa.
o Các loại mã hóa lai khác nhau theo kỹ thuật phân tích tạo ra tín hiệu

kích thích CELP, RPE-LTP, MPE…
Đánh giá chung về 3 phương pháp:
 Mã hóa dạng sóng nói chung không cho phép đạt chất lượng tiếng nói

tốt ở tốc độ bit dưới 16Kbps. Nhưng tiếng nói nhận được khá giống với
tiếng nói ban đầu
8


Mã hóa Vocoder có thể đạt được tốc độ bit rất thấp nhưng tiếng nói
nhận được là tiếng nói tổng hợp không giống với tiếng nói ban đầu.
 Mã hóa lai cải thiện được các nhược điểm của mã hóa sóng và mã hóa
nguồn, nhưng tương đối phức tạp thường được dùng theo chuẩn GSM.
B- Các chuẩn ITU dùng trong các ứng dụng VOIP
Hiệp hội viễn thông quốc tế ITU-T (International Telecommunication
Union - Telecommunication) đã đưa ra các chuẩn nén âm thanh mới nhất
như G728, G729, G723.1 … dành cho băng thông thoại thấp với tần số 300Hz
đến 3.4 kHz. Tất cả các chuẩn này đều dựa trên chuẩn mã hóa CELP (Code –
Excited Linear Prediction). Chuẩn nén âm thanh đã được tiêu chuẩn hóa

trong mã ANSI-C với 2 lý do chính:
- Độ tin cậy khi tương tác giữa các thiết bị.
- Giá thành thấp và những tiện ích thực thi dựa trên 16 bit fixpoint
DSP.


Một vài chuẩn nén âm thanh thoại ITU :
 Sử dụng trên các thiết bị đường dây số
 G.711 ( a-law và u-law hàm lượng tử hóa của PCM ở tốc độ
64kbits/s)
 G.721 (ADPCM ở tốc độ 32 kbits/s)
 G.723 (ADPCM ở tốc độ 40, 24 kbits/s)
 G.726 (ADPCM ở tốc độ 16, 24, 32, 40 kbits/s)
 Sử dụng trên các thiết bị di động
 G.728 (tốc độ 16 Kbps, độ trễ < 2ms, chất lượng giống hoặc tốt
hơn G.721)
 G.723.1 (CELP ở tốc độ 5.3 và 6.4 kbits/s)
 G.729 (CELP ở tốc độ 8 kbits/s)
 GMS 06.10 ( ở tốc độ 13 và 6.5 kbits/s)
1. Chuẩn G.711
G.711 là 1 chuẩn nén –giãn âm thanh của ITU-T thường được sử dụng
ở điện thoại .Chuẩn được đưa sử dụng vào năm 1972.Tên chính thức
của chuẩn G.711 là phương pháp điều biến mã xung cho tần số giọng
nói “Pulse Code Modulation _PCM” có 2 phiên bản là Uu-law sử dụng
cho Bắc Mỹ và Nhật Bản và a-law sử dụng cho các quốc gia còn lại.
Chuẩn G.711 được khuyên dùng bởi nhiều công nghệ khác như H.320 ,
9


H.323. G.711 là bộ codec đặc trưng cho mã hóa dạng sóng .G.711 yêu

cầu cung cấp bang thông 64kbit/s truyền tín hiệu thoại trong khoảng
từ 300-3400Hz và lấy mẫu chúng với tốc độ 8000 mẫu/s .Về sau có
phát triển thành 2 phiên bản G.711.0 và G.711.1 bổ sung về phương
pháp nén dữ liệu để giảm bang thông và tang chất lượng âm thanh.
Ứng dụng thực tế:
-

-

-

G.711 là chuẩn ITU-T dùng cho thoại cho các tổng đài , được phát hành
chính thức vào năm 1972
G.711 trình bày các mẫu điều chế xung mũ logarit cho tín hiệu ở bang
tần thoại ,tần số lấy mẫu là 8000 mẫu trong 1 s
Có 2 thuật chính thức được được định nghĩa trong chuẩn này là , giải
thuật µ-law dung cho khu vực Bắc Mỹ, Nhật và giải thuật A-law dùng
cho khu vực châu Âu và những nước còn lại
2 giải thuật được mã hóa ở dạng các mẫu PCM tuyến tính 14-bit và Alaw là 13-bit với mẫu 8-bit.Như vậy bộ mã hóa G.711 sẽ tạo được luồng
dữ liệu bit có tốc độ 64kbit/s với tần số lấy mẫu là 8kHz
G.711 thường được sử dụng trong Voice over Internet Protocol (VoIP),
còn được gọi là điện thoại Internet.
2. Chuẩn G722
G.722 là chuẩn codec âm thanh dải rộng của ITU-T hoạt động ở đa
dạng bang thông là 48 , 56 và 64kbit/s được công bố năm 1988 cải tiến
sử dụng công nghệ codec băng con ADPCM .Trong bộ mã hóa băng con
tín hiệu được chia mỗi băng tần sử dụng 1 bộ lọc và bộ mã hóa băng
con sử dụng số liệu thống kê để mã hóa tín hiệu trong mỗi băng tần sử
dụng số lượng khác nhau của các bit.
Tiêu chuẩn G.722 ITU sử dụng chủ yếu ở hội nghị qua điện thoại , ngoài

ra còn được sử dụng trong hệ thống truyền thông không dây , dịch vụ
thông tin liên lạc cá nhân
Ứng dụng thực tế:

10


-

-

Là chuẩn ITU-T dung cho mã hóa tiếng nói bang tần rộng hoạt động
với tốc độ truyền 32-64 kbit/giây .Công nghệ mã hóa dựa trên việc
phân chia bang tần ADPCM
Chuẩn G.722 và dữ liệu mẫu âm thanh 16kHz, gấp đôi tốc độ xử lý tại
các giao tiếp thoại truyền thông, kết quả chất lượng thoại tốt hơn
Chuẩn G.722 được các nhà cung cấp VOIP sử dụng.
Ngoài ra G.722 còn được sử dụng trong các hệ thống truyền thông
không dây, dịch vụ thông tin liên lạc cá nhân, ứng dụng hội nghị truyền
hình và General Packet Radio Service (GPRS).
3. Chuẩn G723
G.723 cũng giống như chuẩn G.722 là chuẩn mã hóa âm thoại băng tần
rộng , nó là chuẩn mở rộng của G.711 điều chế xung sai phân thích ứng
với tốc độ truyền là 24 và 40kbit/s ,nó vẫn chưa đáp ứng được mục tiêu
của ITU là chuẩn mã hóa âm thoại băng tần rộng hoạt động trên dải
16, 24 và 32 kbit/s. Nên nó không được sử dụng rộng rãi mà chỉ sử
dụng cho các thiết bị nhân mạch số lâu đời.
G.726 Là chuẩn mã hóa tiếng nói ITU-T ADPCM truyền âm thanh với
các 16,24,32và 40 kbps (thay thế cho G.721(32kbps) và G.723(24vs 40
kbps)). Hoạt động với tần số 16kbps.Bốn tốc độ bit thường sử dụng cho

chuẩn G.726 tương ứng với kích thước của 1 mẫu là 2-bits, 3-bits, 4bits, 5-bits. Tốc độ thường dùng 32kbps
Ứng dụng thực tế:

-

Là 1 chuẩn ITU-T mã hóa âm thoại bang tần rộng , là chuẩn mở rộng
của G.721 điều chế xung sai phân tương thích với tốc độ truyền 24 và
40 kbps cho các ứng dụng thiết bị nhân mạch số ( hiện nay chuẩn này
bị thay thế bới G.726 )
4. Chuẩn G.726

-

Chuẩn G.726 chủ yếu dung trong các ứng dụng Voice overIP( vì yêu cầu
băng thông thấp )
11


-

Là chuẩn mã hóa tiếng nói ITU-T ADPCM truyền âm thanh với các
16,24,32và 40 kbps(thay thế cho cả G.721(32kbps) G.723(24vs 40 kbps)
G.726 hoạt động với tần số 16kbps.Bốn tốc độ bit thường sử dụng cho
chuẩn G.726 tương ứng với kích thước của 1 mẫu là 2-bits, 3-bits, 4bits, 5-bits. Tốc độ thường dùng 32kbps
5. Chuẩn G.729
G.729 là : 1 giải thuật nén dữ liệu âm thanh dùng cho tín hiệu thoại,
nén tín hiệu âm thanh với khung 10 mili giây. Đa số dùng trong các ứng
dụng Voice overIP với yêu cầu bang tần thấp. Chuẩn G.729 hoạt động
với tốc độ 8kbps(6.4kbps vs 11.8kbps). Nó có 2 dạng là G.729a và
G.729b .Cả 2 dạng đều hoạt động ở băng tần thấp và ngày nay người ta

phát triển chuẩn G.729.1 hoạt động ở băng tần rộng .
Ứng dụng thực tế:
- Là 1 giải thuật nén dữ liệu âm thanh dùng cho tín hiệu thoại, nén tín
hiệu âm thanh với khung 10 mili giây
- Đa số dung trong các ứng dụng Voice overIP với yêu cầu bang tần
thấp.Chuẩn G.729 hoạt động với tốc độ 8kbps(6.4kbps vs 11.8kbps)
- G.729a, G.729b. Những năm gần đây G.729 được nghiên cứu để mở
rộng cho tín hiệu bang tần rộng (G.729.1)
6. Chuẩn GMS
GSM là hệ thống thông tin di động toàn cầu (global system for mobile
communications) là 1 công nghệ dùng cho mạng thông tin di động
.Dịch vụ GSM được sử dụng cho hơn 2 tỷ người trên 212 quốc gia và
vùng lãnh thổ( thống kê năm 2012 ).Các mạng thông tin di động GSM
cho phép giao tiếp với nhau cho nên nó được sử dụng rộng rãi ở các
vùng lãnh thổ
GSM là chuẩn phổ biến của điện thoại di động. GSM khác với các chuẩn
tiền thân của nó về cả tín hiệu , tốc độ , chất lượng cuộc gọi .Nó được
xem như hệ thống điện thoại di động thế hệ thứ 2 .GSM là chuẩn mở
12


được phát triển.Thuận lợi là khả năng triển khai thiết bị từ nhiều
người cung cấp .Một số đặc tính của GSM là:
-Nói chuyện quốc tế
-Chất lượng thoại cao
-Tính bảo mật cao
-Giá thành rẻ
-Tiện lợi
-Nhiều dịch vụ mới
-tương thích cao

Hiện nay có 5 bộ mã hóa của GSM bao gồm :
1 Full-Rate codec
2 Half-Rate codec
3 Enhanced Full-Rate codec
4 Adaptive Multi-Rate codec
5 Adaptive Multi Wideband –Rate codec
-Bộ FR codec là bộ mã hóa đầu tiên của GSM .Được sử dung lần đầu vào
năm 1989 nó sử dụng 13kbit/s cho mã hóa âm thoại và 9.8 kbit/s cho
mã hóa kênh .FR là bộ codec mặc định cho cung cấp dịch vụ thoại GSM.
-Bộ HR codec tiết kiệm dung lượng kênh . hoạt động ở 5.6kbit/s cho mã
hóa thoại và 5.8kbit/s cho mã hóa kênh chất lượng thoại vấn như
chuẩn codec FR.
-Bộ ERF codec được sử dụng đầu tiên ở Mỹ vào năm 1996 sử dụng 12.2
kbit/s mã hóa âm thoại và 10.6kbit/s mã hóa kênh
-Bộ AMR codec là sự phát triển vượt bậc của GSM đây là bộ mã hóa
mặc định cho chế độ 3G.
-Bộ AMR-WB codec là bộ mã hóa cuối cùng gần nhất đặc trưng cho
thoại 3G, băng tần rộng giúp cải tiến chất lượng âm thanh thoại
Ứng dụng thực tế:
- "libgsm" đã được phát triển 1992-1994 của Jutta Degener và
Carsten Bormann, sau đó tại Technische Universität Berlin dựa vào
chuẩn GSM 06.10.
- Các codec libgsm miễn phí có thể mã hóa và giải mã GSM Full Rate
âm thanh
- Ngoài ra còn có một plugin Winamp cho GSM 06,10 dựa trên libgsm
13


-


Các GSM 06,10 cũng được sử dụng trong phần mềm VoIP, ví dụ như
trong Ekiga, QuteCom, Linphone, Asterisk (PBX), Ventrilo và những
phần mềm khác.

Bảng đánh giá hiệu năng của các chuẩn nén ITU:
RPELTP

PCM

MICDA

Đánh giá
hiệu năng
(Standar)

G.711

G.726

ETSI
GMS
06 -10

DOD
FS1016

G729

DOD LPC
10 FS 1015


Tốc độ
sau nén
(Debit)

64
kbit/s

32
kbit/s

13kbit/
s

4.8
kbit/s

8 kbit/s

2.4 kbit/s

Chất
lượng
(MOS)

4.2

4.0

3.6


3.5

4.0

2.3

Độ trễ
(Delay)

125µs

300µs

50ms

50ms

30ms

50ms

MISP

0.1

12.0

2.5


16.0

20.0

7.0

14

CELP

CSACELP

Encoder

LPC


C- Phân tích một sơ đồ mã hóa tiếng nói thoại theo chuẩn ITU G726
 Sơ đồ mã hóa theo chuẩn ITU G.726

 Sơ đồ mã hóa G.726 sử dụng thuật toán ADPCM( điều chế xung mã vi

sai thích ứng )
Kỹ thuật ADPCM (adaptive Differential Pulse Code Modulation) : là
phương pháp mở rộng của DPCM .Người ta vẫn dùng 1 số bit nhất định để
mã hóa sự sai khác giữa tín hiệu tại 2 thời điểm kề nhau , nhưng bước
lượng tử có thể được điều chỉnh tại các thời điểm khác nhau để tối ưu hóa
việc điều chế.Với mục tiêu làm giảm tốc độ bit hơn nữa chất lượng tín hiệu
tương đương , người ta sử dụng phương pháp thích nghi động giá trị của
bước lượng tử trước những thay đổi của bien độ tín hiệu vào .Mục đích là

duy trì miền giá trị luowngjtuwr phù hợp với miền giá trị tín hiệu vào .
Thích nghi bước lượng tử có thể áp dụng cho cả kiểu lượng tử đều và
không đều.
15


ADPCM chỉ sử dụng các mẫu 2 ,3,4,5 bit để mã hóa (tạo ra bang thông
16,24,32,40kbit/s) .Khác PCM số bít không phải do trực tiếp mã hóa biên
độ xung lấy mẫu , mà là mã hóa sự sai khác giữa biên độ các xung cũng
như tốc độ thay đổi các biên độ đó.Sử dụng phương pháp dự đoán tuyến
tính trước.
Nếu sự dự đoán là chính xác thì sự khác nhau giữa các các mẫu thật và
mẫu dự đoán sẽ nhỏ hơn ít khác biệt hơn so với các mẫu thoại thực .Và sự
khác biệt này được lưởng tử hóa chính xác thì sẽ cần số bít ít hơn so với
việc phải lượng tử hóa các mẫu thoại gốc.
Tại bộ giải mã tín hiệu khác biệt mà đã được lượng tử hóa được cộng với
tín hiệu dự đoán để khôi phục lại tín hiệu thoại ban đầu
Quá trình xử lý dữ liệu trong sơ đồ mã hóa ADPCM:
Đầu vào là tín hiệu PCM được biểu diễn bởi 8 bit trong đó :
1 bit phân cực {0,1} ,
3 bit phân đoạn {000,001,…,111}
4 bit cuối Bit phân bước {0000,0001,…,1111}
Theo định lý Nyquyt mã hóa với tốc độ (8*8kbps=64kbps)
 Sau khi qua khối biến đổi PCM đồng dạng sẽ chuyển thành tín hiệu
PCM đồng dạng.Các từ mã PCM sẽ được giải mã ,các giá trị thu được ở
đầu ra của bộ giải mã sẽ được biểu diễn ở dạng 13 bit đối với luật A và
14 bit đối với luật µ .Ra tín hiệu ước lượng ký hiệu Sl(k).(2)
 Từ tín hiệu đồng dạng PCM sl(k) và tín hiệu ước lượng se(k)(thu được
do trừ đi 1 ước tính của tín hiệu đầu vào từ các tín hiệu đầu vào) qua
tổng hợp ta thu được tín hiệu vi phân d(k) ký hiệu D(n) (3)

Se(k)=∑AiSl(k) trong đó
Sl(k) tín hiệu lấy mẫu (đồng dạng PCM)
Se(k) tín hiệu dự đoan (ước lượng )
Ai là hệ số của bộ dự đoán
Độ chênh lệch giữa xung lấy mẫu đầu vào và tín hiệu ra lấy mẫu là
d(k)=Sl(k)-Se(k)
 Tín hiệu vi phân D(n) (3) đi qua bộ lương tử hóa thích nghi
31-,15-,7-,4- sử dụng 5,4,3 hoặc 2 bit nhị phân tương ứng dùng để
lương tử hóa tín hiệu vi phân D(n) với tốc độ bit 40,32,24,16kbps

16


dln(k) =log2 (dl (k)- y(k))
 Ví dụ tốc độ 40kbps thì sẽ dùng 5 bit nhị phân (4 bit biên độ và 1 bit

dấu)
 Tín hiệu vi phân D(n) (3) qua bộ lượng tử hóa thích nghi gồm 3 phần
LOG chuyển tín hiệu tuyến tính sang miền logarit DL,DS.Khối SUBTB
nhận đầu vào tín hiệu DL sau đó đầu ra –DLN. Khối Quan( nhận đầu
vào –DLN,DS đầu ra tín hiệu ADPCM ký hiệu C(n) (4).
Tốc độ 40kbps l(k) sẽ nằm trong 31 giá trị khác 0. l(k) cũng sẽ nghịch đảo
lượng tử thích ứng
Bảng giá trị tham khảo giá trị cảu l(k) ở tốc độ 40kbps (nguồn tham khảo
có kèm tài liệu tham khảo)

17


Bộ lượng tử hóa thích ứng đảo tạo ra 1 tín hiệu khác biệt lượng tử từ

5,4,3,2 chữ số nhị phân tương ứng Dq(n)
Ở đây 1 tín hiệu được sinh ra từ dq(k) giá trị được tạo ra bằng cách
chuyển các giá trị trong miền logarit theo công thức dq(k)= 2dq ^ln ((k)+Y
(k)) .
Có 2 nguyên tắc cơ bản trong khối này là
Nhanh cho tín hiệu:(thoại ) sản xuất tín hiệu khác biệt với những biến
dộng lớn
Làm chậm tín hiệu (voiceband) sản xuát tín hiệu khác biệt nhỏ
Các tính toán trong miền logarit 2 với ví dụ tốc độ 40kbps
Theo công thức yu(k)=(1-2^-5)y(k)+2^-5W[i(k)]
Với yu(k) giá trị :1.06= Ước tính tín hiệu thêm vào tín hiệu khác biệt lượng tử này để sản xuất
tín hiệu dựng lại của tín hiệu đầu vào Xp(n) (8) và cả Dq(n) (7) qua Bộ
tiên đoán tương thích để cho ra tín hiệu Xp(n-1)
 Hàm sơ cấp của bộ đoán tương thích dung để tìm tín hiệu ước lượng
se(k) từ tín hiệu sai số lượng tử dq(K) (ở đây là hàm tuyến tính do phép
nhân chập )
D- Xây dựng thuật toán mã hóa theo sơ đồ phân tích trên, đặt thực

nghiệm và đo lường hiệu năng giải pháp nén này
I. Thuật toán mã hóa ADPCM:

18


Đầu vào là tín hiệu PCM s(k) đã được lấy mẫu và lượng tử có tốc độ bít
là 64kbps, được biến đổi thành tín hiệu PCM đồng dạng (k) nhờ luật
nén giãn tín hiệu A hoặc µ.
1. Khối biến đổi PCM đồng dạng:
- Gồm 2 khối là EXPAND và SUBTA:

-

Hình ảnh: Khối biến đổi PCM đồng dạng.

EXPAND:
• Đầu vào: Tín hiệu PCM (S) hoặc tín hiệu PCM với luật A hoặc µ
(LAW).
• Đầu ra: Linear Input Signal (SL) : Tín hiệu tuyến tính đầu vào.
• Có chức năng chuyển các tín hiệu PCM luật A hoặc µ thành các
tín hiệu PCM đồng dạng.
• Các từ mã PCM sẽ được giải mã, các giá trị SS thu được ở đầu ra
của bộ giải mã, sẽ được biểu diễn ở dạng 13 bit đối với luật A và
14 bit đối với luật µ.
• Với LAW=0 (nén luật µ), SSS=SS>>13, SSQ=SS&8191
• Với LAW=1 (luật A) SSS=SS>>12, SSM=SS&4095, SSQ=SSM<<1.
• Tiếp theo, tín hiệu SL sẽ được tính toán theo công thức:
SL =
SUBTA
• Đầu vào: SL, SE (Signal estimate – Tín hiệu ước lượng).
• Đầu ra: Difference signal (D): Tín hiệu vi phân.
• Có chức năng tính toán các tín hiệu vi phân bằng cách trừ đi tín
hiệu ước lượng và tín hiệu vào.
• SLS=SL>>13
SLI =
• SES=SE>>14

SEI =
• D= (SLI + 65536 − SEI) & 65535.
2. Khối lượng tử thích nghi.
19



Tín hiệu vi phân d(k) được tính toán bằng cách trừ giá trị ước lượng
của tín hiệu vào và chính nó:
d(k)=(k)-(k)
(k): Tín hiệu PCM đồng dạng.
(k): Tín hiệu ước lượng.
- Bộ lượng tử thích nghi 31-, 15-,7- ,4- sử dụng 5, 4, 3 hoặc 2 bit nhị phân
tương ứng, dùng để lượng tử hóa tín hiệu vi phân d(k) với các tốc độ
bit 40, 32, 24 và 16kbps.
-

Hình ảnh: Khối lượng tử thích nghi.
- Gồm 3 khối: LOG, SUBTB, QUAN.
LOG:
• Đầu vào: Tín hiệu vi phân D đã được tính toán ở SUBTA của
khối biến đổi PCM đồng dạng
• Đầu ra: (Tín hiệu vi phân ) - DL, bit dấu của tín hiệu sai phân
(Sign bit of difference signal- DS).
• Có chức năng chuyển đổi các tín hiệu sai phân từ tuyến tính
sang miền logarit.
• DS = D >> 15.
DQM =
• Tính toán hệ số mũ:
EXP =
• Tính toán xấp xỉ

MANT = ((DQM << 7) >> EXP) & 127
• Kết hợp 7 bit giá trị và 4 bit phần mũ:
DL = (EXP << 7) + MANT

QUAN:
• Đầu vào: (Normalized Difference) - DLN, DS.
• Đầu ra: I: Tín hiệu ADPCM.
• Có chức năng lượng tử hóa tín hiệu vi phân trong miền
logarit.

20


Hình ảnh: Các mức lượng tử và bit đầu ra với tốc độ 16kbps

SUBTB:
• Đầu vào: DL, Hệ số lượng tử (Quantizer scale factor –Y.)
• Đầu ra: DLN.
• Có chức năng: Mở rộng tín hiệu vi phân bằng cách trừ đi hệ số

lượng tử.
• DLN = (DL + 4096 − (Y >> 2)) & 4095.
3. Khối lượng tử hóa thích ứng đảo:

Giá trị sau khi lượng tử của tín hiệu vi phân được truyền đến phía thu.
Một bộ lượng tử hóa thích ứng đảo tạo ra các tín hiệu vi phân lượng
tử từ các mẫu bit này. Tín hiệu ước lượng được cộng vào tín hiệu vi
phân lượng tử để phục hồi lại dạng của tín hiệu. Cả hai tín hiệu hồi
phục và tín hiệu vi phân lượng tử được đưa vào bộ tiên đoán tương
thích, có tác dụng ước lượng tín hiệu đầu vào và hoàn thành vòng lặp.
- Gồm 3 khối con: RECONST, ADDA, ANTILOG
-

ADDA:


Hình ảnh: Khối lượng tử hóa thích ứng đảo
21


• Đầu vào: (normalized quantized difference) – DQLN, Y.
• Đầu ra: (quantized difference signal)- DQL.
• Có chức năng thêm các hệ số tỉ lệ vào giá trị logarit của tín hiệu

vi phân đã lượng tử.
DQL = (DQLN + (Y >> 2)) & 4095
ANTILOG:
• Đầu vào: DQL, bit dấu của tín hiệu vi phân lượng tử (Sign bit of
quantized difference signal - DQS).
• Đầu ra: Tín hiệu vi phân lượng tử (Quantized difference signalDQ).
• Có chức năng chuyển các tín hiệu vi phân lượng tử trong miền
logarit sang miền tuyến tính.
• Lấy ra 4 bit số mũ :
DS = DQL >> 11
DEX = (DQL >> 7) & 15
• Lấy ra 7 bit giá trị:
DMN = DQL & 127
• Chuyển đổi các giá trị sang tuyến tính, sử dụng xấp xỉ :
DQT = (1 << 7) + DMN
DQM =
• Gắn thêm bit dấu:
DQ =
RECONST:
• Đầu vào: I.
• Đầu ra: DQLN, DQS.

• Có chức năng khôi phục lại tín hiệu vi phân lượng tử trong miền
logarit.

22


Xây dựng thử nghiệm trên matlab sử dụng bộ CODEC theo
chuẩn G.726 (sử dụng phương pháp mã hóa ADPCM) và
đánh giá hiệu năng
1. Đánh giá hiệu năng qua độ sai số
Việc mô phỏng sử dụng phần mềm Matlab để mô phỏng thuật toán mã
hóa ADPCM.
• Tín hiệu đầu vào là file âm thanh sp_encoded.wav
• alpha là hệ số dự đoán của bộ lọc thích ứng.
• deltamin và deltamax là khoảng của bước lượng tử thích ứng.
• nbits là số bit dùng để lượng tử.
II.

Sau khi chạy chương trình, ta thu được phổ của tín hiệu lượng tử và tín
hiệu lỗi với hệ số lỗi SNR=34.50 dB mã hóa cho 4 bit, với deltamin=16,
deltamax=1600, hệ số alpha=0.8.

Phương pháp mã hóa sử dụng thuật toán ADPCM truyền âm thanh với các
tốc độ bit thấp giúp gia tăng dung lượng của mạng lên nhiều lần nhưng chất
lượng âm thanh vẫn đảm bảo nên được dùng nhiều trong các mạng điện
thoại quốc tế cũng như hệ thống điện thoại không dây DECT.
Mục lục từ viết tắt
Tên
Signal


Từ viết tắt
S

Giải thích
Tín hiệu PCM

23


Linear Input Signal
Signal Estimate
Difference Signal
(Difference Signal)
Sign bit of difference
signal
(Normalized Difference)
Quantizer scale factor
(normalized quantized
difference)
(quantized difference
signal
Sign bit of quantized
difference signal .
Quantized difference
signal

LAW
SL
SE
D

DL
DS

Tín hiệu PCM với luật A hoặc µ
Tín hiệu tuyến tính đầu vào
Tín hiệu ước lượng
Tín hiệu vi phân.
Tín hiệu vi phân trong miền logarit.
Bit dấu của tín hiệu vi phân.

DLN
Y
DQLN

Hệ số lượng tử.

DQL
DQS

Bit dấu của tín hiệu vi phân lượng tử.

DQ

Tín hiệu vi phân lượng tử

2. Đánh giá hiệu năng qua tỷ số nén

Phần 1: Xây dựng thử nghiệm
ENCODE
function adpcm_y = adpcm_encoder(raw_y)

[raw_y, Fs, nbits] = wavread('\funky.wav');
IndexTable = [-1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8];
StepSizeTable = [7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37,
41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, 130, 143, 157, 173, 190, 209,
230, 253, 279, 307, 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, 876, 963,
1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024,
3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484, 7132, 7845, 8630, 9493,
10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623,
27086, 29794, 32767];
prevsample = 0;
previndex = 1;
Ns = length(raw_y);
n = 1;
raw_y = 32767 * raw_y;
% 16-bit operation
while (n <= Ns)
24


predsample = prevsample;
index = previndex;
step = StepSizeTable(index);
diff = raw_y(n) - predsample;
if (diff >= 0)
code = 0;
else
code = 8;
diff = -diff;
end
tempstep = step;

if (diff >= tempstep)
code = bitor(code, 4);
diff = diff - tempstep;
end
tempstep = bitshift(tempstep, -1);
if (diff >= tempstep)
code = bitor(code, 2);
diff = diff - tempstep;
end
tempstep = bitshift(tempstep, -1);
if (diff >= tempstep)
code = bitor(code, 1);
end
diffq = bitshift(step, -3);
if (bitand(code, 4))
diffq = diffq + step;
end
if (bitand(code, 2))
diffq = diffq + bitshift(step, -1);
end
if (bitand(code, 1))
diffq = diffq + bitshift(step, -2);
25


×