Danh mục

Báo cáo thí nghiệm xử lý số bài 4

Số trang: 21      Loại file: doc      Dung lượng: 2.08 MB      Lượt xem: 16      Lượt tải: 0    
Thư viện của tui

Hỗ trợ phí lưu trữ khi tải xuống: 10,500 VND Tải xuống file đầy đủ (21 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Mỗi mẫu vào điều chế gồm 16 bits. Tùy vào loại điều chế PAM, một mặt nạ (mask) thích hợp được sử dụng. Các mẫu nhập vào sẽ được AND với mặt nạ và dịch với số lần thích hợp đến hết chiều dài chuỗi. Tương ứng với mỗi ký hiệu (symbol) trên 1 mẫu nhập vào và loại điều chế ta có mức điện áp khác nhau, để dạng sóng xuất sau khi ra bộ A/D có dạng sóng vuông, mỗi mức sẽ được xuất ra 12 lần trước khi chuyển sang symbol kế tiếp. Sau đây chúng ta...
Nội dung trích xuất từ tài liệu:
Báo cáo thí nghiệm xử lý số bài 4BÀI 4: THỰC HIỆN MỘT SỐ MẠCH ĐIỀU CHẾ TRÊN KIT C6713 DSKI- Thực hiện điều chế PAM trên kit C6713 DSK  Giải thuật điều chế: Mỗi mẫu vào điều chế gồm 16 bits. Tùy vào loại điều chế PAM, một mặt nạ (mask) thích hợp được sử dụng. Các mẫu nhập vào sẽ được AND với mặt nạ và dịch với số lần thích hợp đến hết chiều dài chuỗi. Tương ứng với mỗi ký hiệu (symbol) trên 1 mẫu nhập vào và loại điều chế ta có mức điện áp khác nhau, để dạng sóng xuất sau khi ra bộ A/D có dạng sóng vuông, mỗi mức sẽ được xuất ra 12 lần trước khi chuyển sang symbol kế tiếp. Sau đây chúng ta sẽ đi vào cụ thể từng loại điều chế. 1. Điều chế PAM 4 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 FilesCCStudio_v3.1MyProjectsPAM4 - Trong cửa sổ File View, mở tập tin PAM4.c, nội dung tập tin này như sau: -// PAM#include DSK6713_aic23.hUint32 fs=DSK6713_AIC23_FREQ_8KHZ;#include //Initialization:int i_PAM;int j_PAM; 1int k;int masked_value, output;int data_4PAM[4] = {0x7FFF, 0x2AAA, -0x2AAB, -0x8000};//data table for 4-PAM MODint out_buffer[256];int i=0;interrupt void c_int11() //interrupt service routine{ int sample_data; //4-PAM Modulator: Assigns sampled data coming from an input //source to 4 predetermined voltage levels. if (i_PAM==96) //new input is taken once every 96 samples (8 shifts x 12 repeatedoutputs) 3 { sample_data = input_sample(); //inputs data 2 i_PAM=0; 4 j_PAM=0; 1 } masked_value = sample_data & 0x0003; //masks input sample as 2-bit segments output = data_4PAM[masked_value]; //gets corresponding level from table output_sample(output); //outputs corresponding voltage level 12 times out_buffer[i++] = output; if (i==256) i = 0; j_PAM++; //repeated output counter 5 if (j_PAM==12) //checks if repetition is over { j_PAM=0; sample_data = sample_data >> 2; //shifts input to mask next segment } i_PAM++; return;}void main(){ i_PAM=0; comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop}  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_data = 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ý Mức điện áp (dạng Mức điện áp (dạng thập hiệu hex) phân) 00 0x7FFF 32767 01 0x2AAA 10922 10 -0x2AAB 10923 2 11 -0x8000 327684 giá trị này được khai báo ở đầu chương trình (ô chú thích số 1). Mỗi symbol sẽ chora 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ớisymbol 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.- Việc sử dụng máy phát sóng rất khó để kiểm chứng kết quả nên ta sẽ gán cho sample_data một giá trị cụ thể 16 bit (dạng số HEX, ô chú thích số 3). 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 3• sam ...

Tài liệu được xem nhiều: