Nguyên văn bởi dhp11591
Xem bài viết
Filtering (lọc) -> Sampling (lấy mẫu) -> Quantizing (lượng tử hóa) -> Encoding (Mã hóa)
Quá trình này còn gọi là điều chế PCM (Pulse Code Modulation)
Filtering: Tín hiệu tương tự được lọc để giới hạn băng thông của tín hiệu, bảo đảm thõa điều kiện của định lý Nyquist (băng thông của tín hiệu analog được lấy mẫu phải nhỏ hơn hoặc bằng 1/2 tần số lấy mẫu)
Sampling: Ở quá trình này, tín hiệu tương tự sẽ được lấy mẫu liên tục với 1 tần số xác định (tức là số lần lấy mẫu/giây). Ví dụ trong hệ thống audio ghi trên các đĩa CD thì tần số này là 44kHz (tức là lấy mẫu 44000 lần/giây), trong hệ thống thoại (điện thoại cố định) là 8kHz.
Quantizing: vì giá trị của mỗi mẫu sẽ được biểu diễn bằng 1 con số (1 chuỗi nhị phân), nên số mức biên độ mà ta có thể biễu diễn được là hữu hạn, ví dụ nếu dùng 4bit ta biễu diễn được n=16 mức, 8bit biễu diễn được n=256 mức,... nên ta cần làm tròn giá trị biên độ của mỗi mẫu về các giá trị nguyên gần nhất. Quá trình này là lượng tử hóa.
Có 2 cách lượng tử hóa:
- Lượng tử hóa đều: tức là ta chia khoảng biên độ của tín hiệu ra thành n mức đều nhau.
- Lượng tử hóa không đều: người ta nhận thấy nếu chia đều như vậy sẽ không tốt vì nếu tín hiệu vào có biên độ nhỏ, thì sai số do quá trình lượng tử hóa sẽ lớn, vì vậy người ta chia các mức này không đều nhau, cụ thể khoảng cách giữa các mức sẽ nhỏ hơn ở vùng biên độ nhỏ, và lớn hơn ở vủng biên độ lớn. Tất nhiên việc chia không đều này phải theo 1 qui luật nhất định. Hiện nay có 2 luật dùng phổ biến cho lượng tử hóa không đều là luật A và luật u (muy).
Coding: mỗi mẫu với biên độ đã được lượng tử hóa sẽ được biễu diễn thành 1 chuỗi nhị phân có chiều dài N bit phù hợp với số mức lượng tử ở trên. Ví dụ trong hệ thống audio trên CD là 16bit, hệ thống thoại của ĐT cố định là 8bit, hệ thống điện thoại di động GSM là 13bit,...
Vậy cho câu hỏi của em: số bit của PCM độc lập với việc nó lượng tử hóa đều hay không đều. 16bit hay 8bit đều có thể lượng tử hóa đều hoặc không đều.
Để convert giữa các PCM có số bit mã hóa khác nhau, đơn giản là ta làm tròn để giảm bớt số mức lượng tử của nó (trong trường hợp convert từ số bit lớn hơn sang nhỏ hơn), còn nếu ngược lại, từ số bit nhỏ hơn sang lớn hơn, thông thường người ta dùng các thuật toán nội suy để tính lại các giá trị mẫu nhằm đạt chất lượng tín hiệu tốt hơn.
Lưu ý bộ mã G.729 mà em định làm là bộ mã âm thanh dạng voice coder, thường dùng cho VoIP, nén tín hiệu thoại dựa trên nguyên lý tiếng nói của con người, nó đòi hỏi mức độ xử lý khá cao, thầy không nghĩ các microcontroller thông thường có thể đảm đương được mà có lẽ cần 1 DSP?
Leave a comment: