I- Thực hiện điều chế PAM trên kit C6713 DSK
1. Điều chế PAM4 mức
- Cấp nguồn điện cho kit và chạy chương trình CCS trên máy tính.
- Mở Project PAM.pjt ở folder C:\Program Files\CCStudio_v3.1\MyProjects\PAM4 Giải thích code:
+Trong chương trình này hàm main() đặt giá trị biến i_PAM = 0 và khởi động kit. Sau đó sẽ thực hiện một vịng lặp vơ hạn với lệnh while(1) .
+ Khi có tín hiệu xung lấy mẫu (tần số 8Khz), ngắt 11 xảy ra và trình phục vụ ngắt
c_int11() được gọi. Trong trình phục vụ ngắt này, dữ liệu vào được đọc vào biến
sample_data (bằng lệnh sample d ta = input_sample(), ơ chú thích số 3). Mẫu dữ liệu
này biểu diễn ở dạng số nguyên 16 bits có dấu.
+Do ở đây thực hiện điều chế PAM 4 mức, mà để biểu diễn được 4 mức thì cần 2 bit. Do đó mẫu vào sẽ được chia làm 8 ký hiệu (symbol), mỗi ký hiệu 2 bit. Để thực hiện việc chia này, mẫu dữ liệu được AND với mặt nạ 0x0003 (ơ chú thích số 4 )để lấy 2 bit LSB cảu mẫu dữ liệu. 2 bit này được ánh xạ thành 1 trong 4 mức điện áp theo bảng sau:
Bảng tra 4 mức: Khối ký hiệu 00 01 10 11
4 giá trị này được khai báo ở đầu chương trình (ơ chú thích số 1). Mỗi symbol sẽ cho ra 1 mức điện áp. Mỗi mức được xuất ra 12 lần trước khi chuyển sang mức ứng với symbol kế tiếp. Biến đếm j_PAM để đếm số lần xuất ra cho đủ 12 lần. Như vậy ứng với mẫu vào 16 bit, ta có 8 symbol. Mỗi symbol xuất 12 lần nên số lần xuất ra ứng với mỗi mẫu là 8x12 = 96được thể hiện bởi biến đếm i_PAM (ơ chú thích số 2).
- Biên dịch và nạp chương trình lên kit. - Kiểm tra kết quả trên Plot của CCS.
Lưu ý: thông số lựa chọn cho việc thể hiện dạng sóng như sau:
sample_data = 0x00E4 = 0b00 00 00 00 11 10 01 00
[Type text] Page 38
sample_data = 0x001B = 0b00 00 00 00 00 01 10 11
sample_data = 0x1BE4 = 0b00 01 10 11 11 10 01 00
Nhận xét : Kết quả thu được đúng với lý thuyết, tương ứng với biên độ lớn nhất là 00, âm