1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) báo cáo THÍ NGHIỆM xử lí số tín HIỆU bài 2lấy mẫu và LƯỢNG tử hóa TRÊN KIT C6713DSK

31 18 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Báo Cáo Thí Nghiệm Xử Lí Số Tín Hiệu Bài 2:Lấy Mẫu Và Lượng Tử Hóa Trên Kit C6713DSK
Tác giả Trần Anh Khoa, Phạm Hoàng Lai, Hoàng Duy Lộc
Người hướng dẫn Giảng viên hướng dẫn
Trường học Đại học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Điện – Điện Tử
Thể loại báo cáo
Năm xuất bản 2018
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 8,25 MB

Nội dung

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - BÁO CÁO THÍ NGHIỆM XỬ LÍ SỐ TÍN HIỆU Giảng viên hướng dẫn: Sinh viên thực hiện: TP HỒ CHÍ MINH, THÁNG NĂM 2018 Bài 2:LẤY MẪU VÀ LƯỢNG TỬ HÓA TRÊN KIT C6713DSK I.Tiến hành thí nghiệm: @ Cách tiến hành thí nghiệm: _ Lấy mẫu tín hiệu: Thực chương trình hệ thơng cho DSP6713 để lấy tín hiệu ngõ tín hiệu ngõ vào B1:Mở project lọc FIR: Trong chương trình Chọn project FIR theo đường dẫn: C:\Program Files\CCStudio_v3.1\myprojects\ FIR\FIR.pjt Mở chương trình FIR.c B2:Viết lại chương trình lọc FIR theo chương trình sau: B3:Biên dịch chạy chương trình: Chọn Project => Rebuild All Chọn Debug => Connect Chọn File => Load Program, mở thư mục Debug thư mục FIR chọn tập tin FIR.out Chọn Debug => Run @Đánh giá kết thực hiện: Mở nguồn máy phát sóng Tạo tín hiệu hình sine 3KHz từ máy phát sóng quan sát dạng sóng ngõ Vẽ lại dạng sóng phổ tín hiệu ngõ Nhận xét ngắn gọn Nhận xét: Tín hiệu ngõ có dạng sin có phổ tần số 3kHz vạch phổ nhỏ tần số 1kHz @Sinh viên thực hiện: *Để giảm tần số lấy mẫu xuống cịn 4KHz ta thực chương trình dịng lệnh sau: _Cho tín hiệu hình sin có tần số 3KHz qua hệ thống Tín hiệu lấy mẫu với tần số 4KHz Tín hiệu sau qua lọc thơng thấp tần số 4KHz Tín hiệu ngõ có tần số bao nhiêu? Tín hiệu ngõ có tần số 3kHz 1kHz _Quan sát vẽ lại dạng dóng phổ tín hiệu ngõ So sánh với trường hợp ví dụ ta lấy mẫu với tần số 8KHz Nhận xét Tín hiệu ngõ lấy mẫu với tần số 4kHz bị nhiễu, có tượng chồng lấn phổ, khơng giống tín hiệu mong muốn Nhận xét: Tần số lấy mẫu lớn tín hiệu sau phục hồi giống với tín hiệu ban đầu _Cho tín hiệu xung vng có tần số 0.5KHz qua hệ thống Tín hiệu lấy mẫu với tần số 8KHz Tín hiệu sau phục hồi lý tưởng Quan sát vẽ lại dạng dóng phổ tín hiệu ngõ Nhận xét giải thích ngắn gọn Nhận xét: Tín hiệu ngõ có dạng gần với xung vng Phổ tín hiệu ngõ có vạch Giải thích: Tín hiệu xung vng có tần số 0.5 KHz lấy mẫu có vạch phổ theo quy luật (2n+1)*0.5 Do có mẫu 0.5KHz, 1.5 KHz, 2.5 KHz, 3.5KHz, 4.5 kHz …Khi qua khơi phục tín hiệu từ [-4 4] Khz nên sau Khz không cịn vạch phổ Do phổ tín hiệu ngõ có vách 0.5KHz, 1.5 KHz, 2.5 KHz, 3.5KHz _Thay đổi tần số lấy mẫu 4KHz Quan sát vẽ dạng sóng phổ tín hiệu ngõ So sánh 02 trường hợp lấy mẫu với tần số 4KHz 8KHz xung vuông tần số 0.5KHz Nhận xét giải thích ngắn gọn Nhận xét: Tín hiệu ngõ có dạng gần xung vng bị nhiễu nhiều hơn, phổ tín hiệu ngõ có vạch Giải thích: Do xãy tượng chồng lấn phổ @Lượng tử hóa tín hiệu: Mỗi mẫu tín hiệu AIC32 mã hóa đưa tới vi xử lý có dạng chuỗi bit: [b1, b2, b3, b4, b5, b6, b7, b8, 0, …0] (24 số khơng) Trong bit b1 MSB b8 LSB Chúng ta thay đổi số mức lượng tử xuống thấp cách dịch phải dịch trái chuỗi bit Ví dụ ta thay đổi từ 256 mức lượng tử (tương ứng 8bit) xuống thành 128 mức (tương ứng 7bit) cách bỏ bit cuối b8 Điều thực cách dịch phải dịch trái 25bit sau: [b1, b2, b3, b4, b5, b6, b7, b8, 0, …0] => [0, 0,…0, b1, b2, b3, b4, b5, b6, b7,] => [b1,b2, b3, b4, b5, b6, b7, 0, 0, …0] Việc thực chương trình dịng lênh sau: @Sinh viên thực hiện: _Cho tín hiệu hình sin có tần số 3KHz qua hệ thống Tín hiệu lấy mẫu với tần số 8KHz Mỗi mẫu tín hiệu mã hóa thành chuỗi 8bit Tín hiệu sau phục hồi lý tưởng Quan sát vẽ dạng sóng phổ tín hiệu ngõ _Thực việc giảm dần số bit mã hóa xuống cịn 6, 4, 2, bit Quan sát vẽ dạng sóng phổ tín hiệu ngõ Nhận xét Trường hợp mẫu mã hóa bit Trường hợp mẫu mã hóa 4bit Trường hợp mẫu mã hóa 2bit Trường hợp mẫu mã hóa 0bit Nhận xét: Khi giảm dần số bit mã hóa xuống thành 6,4,2,0 tín hiệu ngõ bị nhiễu khơng giống với tín hiệu mong muốn R Giải thích: Ta có độ phân giải Q = B , số bit B mã hóa mẫu tăng lên tỉ số tín hiệu nhiễu tăng lên, chất lượng tín hiệu sau phục hồi tăng lên, trình lượng tử hóa tín hiệu ảnh hưởng đến tín hiệu Ngược lại, số bit mã hóa tín hiệu giảm đi, chất lượng tín hiệu sau phục hồi giảm xuống nhiễu lượng tử tăng lên, tín hiệu sau phục hồi bị sai dạng so với tín hiệu ban đầu _Cho tín hiệu xung vng có tần số 3KHz qua hệ thống Tín hiệu lấy mẫu với tần số 8KHz Mỗi mẫu tín hiệu mã hóa thành chuỗi 8bit Tín hiệu sau phục hồi lý tưởng Quan sát vẽ dạng sóng phổ tín hiệu ngõ _Thực việc giảm dần số bit mã hóa xuống cịn 6, 4, 2, bit Quan sát vẽ dạng sóng phổ tín hiệu ngõ So sánh nhận xét với trường hợp sóng sin Trường hợp mẫu mã hóa bit Trường hợp mẫu mã hóa 4bit Trường hợp mẫu mã hóa 2bit Trường hợp mẫu mã hóa 0bit Nhận xét: Giống với trường hợp tín hiệu sin, tin hiệu ngõ có độ xác cao số bit mã hóa lớn Độ xác giảm, có nhiễu số bit mã hóa nhỏ @Một hệ thống có tần số lấy mẫu fs = 8KHz Xác định tần số cắt tiền lọc lý tưởng để không xảy tượng aliasing Giải thích Để khơng xảy ta tượng aliasing tần số cắt lọc tiền lý tưởng phải nằm khoảng @Một tín hiệu (t: ms) Xác định tần số lấy mẫu thấp để phục hồi lại tín hiệu Tín hiệu lấy mẫu với tần số 4KHz Sau tín hiệu phục hồi lý tưởng Xác định tín hiệu sau phục hồi lý tưởng Giải thích ngắn gọn Khoảng tần số Nyquist [-2;2] KHz Thành phần tần số x(t) là: f=3 KHz Do thành phần tần số x(t) nằm ngồi khoảng Nyquist bị chồng với tần số bên khoảng f=3 KHz => Tín hiệu khơi phục : @Cho tín hiệu có tầm tồn thang R = 10V Xác định số bit B để mã hóa tín hiệu sai số lượng tử hiệu dụng (rms) không 50microV với => R=16 @Cho tín hiệu lưỡng cực có tầm tồn thang 16V, mã hóa thành 4bit phương pháp rounding Các mẫu tín hiệu có giá trị: -7.9, - 7.1,6.8,- 5.5,-3.1, 0, 1.3, 2.6, 5.8, 6.9 a Xác định chuỗi bit cho mẫu mã hóa mã offset binary b Lặp lại câu với mã bù bậc Ta có: xQ -7.9 -7.1 -6.8 -5.5 -3.1 1.3 2.6 5.8 6.9 Đáp ứng pha: Gía trị hệ số đáp ứng xung lọc thực kit DSP: -1 -208 -9 -30 -2545 -11 789 1834 23 138 Dạng sóng đáp ứng xung lọc thực kit DSP: 57 Đáp ứng biên độ-tần số pha-tần số lọc thực kit DSP: Kiểm tra lọc với ngõ vào tín hiệu sin: F 100 1400 1500 1700 1900 2000 2100 2500 3000 4000 Kiểm tra lọc với ngõ vào tín hiệu xung vng: (Hz) (Hz) Giải thích 2.Bộ lọc IIR: 2.1.Bộ lọc IIR chắn dải: Thiết kế, thực kiểm tra lọc IIR chắn dải bậc 10, tần số trung tâm 1750Hz, sử dụng phương pháp Elliptic với thông số sau: Tần số cắt: 1700 Hz 1800 Hz Độ gợn dải thông dải chắn tương ứng dB 60 dB Tần số lấy mẫu: 8000 Hz @Thiết kế lọc dùng MATLAB: Khởi động SPTool Dưới cột Filters, nhấn nút New để mở cửa sổ Filter Designer Trong giao diện Filter Designer: a Trong text box Filter: Tên lọc tự đặt (ở filt2) Tên thay đổi sau b Nhập thông số thiết kế vào: Response Type = Bandstop Design Method = IIR Elliptic Specify Order: 10 Frequency Specifications: Fs = 8000, Fc1 = 1700, Fc2 = 1800 Apass = 1, Astop = 60 c Nhấn Design Filter Khi đáp ứng tần số lọc thiết kế hiển thị Lưu lại kết kiểm tra xem có phải lọc chắn dải mong muốn khơng? Đáp ứng biên độ: Đáp ứng pha : Từ cửa sổ SPTool, chọn File => Export… Trong Export list xuất hiện, chọn Filter: bs1750 [design] nhấn nút Export to workspace Để chuyển hệ số sang dạng tầng b;ậc hai (second-order section), MATLAB dùng lệnh sau: > [z,p,k] = tf2zp(bs1750.tf.num, bs1750.tf.den) ; > sos = zp2sos(z,p,k); > sos = round(sos*2^15) Các phần tử ma trận sos sử dụng để thực lọc IIR lên kit DSP Ghi nhận giá trị 27940 32768 32768 32768 32768 @Các bước thực lọc IIR lên kit sau: _Tương tự cách thực lọc FIR lên kit _Nội dụng tập tin coeficients.h sau: @Kiểm tra lọc Mở nguồn máy phát sóng Tạo tín hiệu vào hình sine từ máy phát sóng, thay đổi tần số tín hiệu vào từ 100Hz đến 4KHz (mỗi lần 100Hz), ghi nhận biên độ dạng sóng biên độ phổ tín hiệu ngõ từ xác định đặc tính lọc F 100 200 400 600 800 1200 1600 1750 1900 2200 2500 2800 3100 3500 4000 Bộ lọc IIR chắn dải loại bỏ tần số khoảng 1700 đến 1800 Tạo sóng vng từ máy phát sóng, thay đổi tần số tín hiệu vào ghi nhận thành phần tần số ngõ Giải thích có dạng phổ này? (Hz) (Hz) Giải thích 2.2 Thực lọc IIR thông dãi: Tương tự lọc IIR chắn dãi ,thực kiểm tra lọc IIR thông dải thuộc loại Chebyshev với thông số sau: Bậc lọc: 36 Tần số cắt dải chắn: 1600 2400 Hz Độ gợn dải chắn 100 dB Tần số lấy mẫu: kHz Đáp ứng tần số lọc thiết kế dùng MATLAB Đáp ứng biên độ: Đáp ứng pha: Gía trị hệ số đáp ứng xung tầng bậc lọc thực kit DSP: 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 32768 Kiểm tra lọc với ngõ vào tín hiệu sin: Kiểm tra lọc với ngõ vào tín hiệu xung vng: (Hz) (Hz) Giải thích BÀI 5: ĐIỀU CHẾ PAM VÀ PWM I.TIẾN TRÌNH THÍ NGHIỆM: 1.Thực mạch điều chế PAM kit C6713 DSK : @Thực theo bước: Cấp nguồn điện cho kit chạy chương trình Code Compose Studio máy tính Mở project PAM4 folder C:\CCStudio_v3.1\MyProjects\PAM4\ Trong cửa sổ File View, double click lên tập tin PAM4.c để mở Chỉnh sửa chương trình tập tin PAM.c cho phù hợp với yêu cầu đề Sau chỉnh sửa chương trình Chọn Project => Rebuild All để biên dịch chương trình Sau biên dịch thành cơng, nạp chương trình lên kit (File => Load Program) chạy thử chương trình Sửa câu lệnh sample_data = input_sample( ) thành sample_data = 0x???? (một giá trị 16 bit dạng số hex) biên dịch, nạp chạy lại chương trình.Vẽ lại dạng sóng xuất CCS Chọn View =>Graph => Time/Frequency Thay đổi tùy chọn cửa sổ Graph Property Dialog sau để vẽ miền thời gian Thử vài giá trị nhập vào vẽ dạng sóng xuất @Bài tập: Hãy chép tồn Folder PAM4 sang Folder đặt tên tùy ý Thực tập sau folder để không làm ảnh hưởng đến phần làm _Chỉnh sửa lại chương trình để thực điều chế PAM mức Gợi ý: - Mỗi symbol gồm 3bits Do mẫu vào có 16 bits, cần bỏ bits LSB (bằng cách dịch phải sample_data bit) để lại 15 bits bội số mẫu tạo symbols Mặt nạ để lấy bit LSB 00000000 00000111 (0x0007) - Sử dụng bảng tra ứng với 8-PAM để khai báo mức áp tương ứng Hãy viết lại đoạn chương trình file.c sửa vào Giải thích vẽ vài dạng sóng điều chế thu để kiểm chứng Chỉnh sửa lại chương trình để thực điều chế PAM 16 mức Hãy viết lại đoạn chương trình file.c sửa vào Giải thích vẽ vài dạng sóng điều chế thu để kiểm chứng Chỉnh sửa đoạn chương trình thực với PAM mức // PAM #include "DSK6713_aic23.h" Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; #include //Initialization: int i_PAM; int j_PAM; int k; int masked_value, output; int data_4PAM[8] = {0x7FFF, 0x5B6D, 0x36DB, 0x1249, -0x1249, -0x36DB, 0x5B6D, -0x7FFF}; int out_buffer[256]; int i=0; interrupt void c_int11() //interrupt service routine { int sample_data; if (i_PAM==60) { sample_data = 0x0007; //inputs data sample_data = sample_data >> i_PAM=0; j_PAM=0; } masked_value = sample_data & 0x0007; output = data_4PAM[masked_value]; output_sample(output); out_buffer[i++] = output; if (i==256) i = 0; j_PAM++; if (j_PAM==12) { j_PAM=0; sample_data = sample_data >> 3; } i_PAM++; return; } void main() { i_PAM=0; comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop } Với sample_data = 0x0007 Ta dạng sóng điều chế hình vẽ : @Giải thích: Với sample_data = 0x0007 Do thực điều chế PAM mức nên symbol gồm có bit.Do mẫu vào gồm có 16 bit nên cần loại bỏ bit LSB cách dịch sang phải sample _data bit với dòng lệnh sample_data = sample_data >> sample_data cịn lại 15 bit bội số mẫu tạo symbols Đầu tiên sample_data = 0000 0000 0000 0111 sample_data = sample_data >> => sample_data=0000 0000 0000 0011 Sample_data AND 0x0007 = 0000 0000 0000 0011 (= 3) data_8PAM(3) = 0x1249 mức điện áp 0x1249 xuất 12 lần Tiếp theo: sample_data dịch phải bit 0000 0000 0000 0000 Sample_data AND 0x0003 = 0000 0000 0000 0000 ( =0) data_8PAM(0) = 0x7FFF mức điện áp 0x7FFF xuất 12 lần - Quá trình tiếp tục hết 16 bit mẫu vào, tức dịch lần, lần xuất 12 lần => số lần xuất tổng cộng i_PAM = x 12 = 60 lần Sau đọc vào mẫu thực điều chế Chỉnh sửa đoạn chương trình để thực điều chế PAM 16 mức // PAM #include "DSK6713_aic23.h" Uint32 fs=DSK6713_AIC23_FREQ_8KHZ; #include //Initialization: int i_PAM; int j_PAM; int k; int masked_value, output; int data_4PAM[8] = {0x7FFF, 0x5B6D, 0x36DB, 0x1249, -0x1249, -0x36DB, 0x5B6D, -0x7FFF}; int out_buffer[256]; int i=0; interrupt void c_int11() //interrupt service routine { int sample_data; if (i_PAM==48) { sample_data = 0x0718; //inputs data i_PAM=0; j_PAM=0; } masked_value = sample_data & 0x000F; output = data_4PAM[masked_value]; output_sample(output); out_buffer[i++] = output; if (i==256) i = 0; j_PAM++; if (j_PAM==12) { j_PAM=0; sample_data = sample_data >> 4; } i_PAM++; return; } void main() { i_PAM=0; comm_intr(); //init DSK, codec, McBSP while(1); //infinite loop } Với sample_data = 0x0x0718 Ta dạng sóng điều chế hình vẽ : @Giải thích: Với sample_data = 0x0718 Do thực điều chế PAM 16 mức nên symbol gồm có bit.Do mẫu vào gồm có 16 bit nên mẫu tạo symbols Đầu tiên sample_data = 0000 0111 0001 1000 Sample_data AND 0x000F = 0000 0000 0000 1000 (= 10) data_16PAM(10) = -0x0889 mức điện áp -0x0889 xuất 12 lần Tiếp theo: sample_data dịch phải bit 0000 0000 0111 0001 Sample_data AND 0x000F = 0000 0000 0000 0001 ( =1) data_8PAM(0) = 0x6EEE mức điện áp 0x6EEE xuất 12 lần - Quá trình tiếp tục hết 16 bit mẫu vào, tức dịch lần, lần xuất 12 lần => số lần xuất tổng cộng i_PAM = x 12 = 48 lần Sau đọc vào mẫu thực điều chế .. .Bài 2:LẤY MẪU VÀ LƯỢNG TỬ HÓA TRÊN KIT C6713DSK I.Tiến hành thí nghiệm: @ Cách tiến hành thí nghiệm: _ Lấy mẫu tín hiệu: Thực chương trình hệ thơng cho DSP6713 để lấy tín hiệu ngõ tín hiệu. .. lượng tín hiệu sau phục hồi tăng lên, q trình lượng tử hóa tín hiệu ảnh hưởng đến tín hiệu Ngược lại, số bit mã hóa tín hiệu giảm đi, chất lượng tín hiệu sau phục hồi giảm xuống nhiễu lượng tử. .. lên, tín hiệu sau phục hồi bị sai dạng so với tín hiệu ban đầu _Cho tín hiệu xung vng có tần số 3KHz qua hệ thống Tín hiệu lấy mẫu với tần số 8KHz Mỗi mẫu tín hiệu mã hóa thành chuỗi 8bit Tín hiệu

Ngày đăng: 03/12/2022, 09:03

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w