Dưới sự hỗ trợ về mặt phần cứng và kiến thức của thầy GS. TS Lê Tiến Thường, nhóm đã hoàn thành dự án đúng hạn và đạt được các mục tiêu đề ra. Nhưng do thời gian có hạn, cũng như kiến thức còn nhiều hạn chế, nhóm chắc chắn không tránh khỏi những thiếu sót. Mong rằng nhóm sẽ nhận được các góp ý quý báu từ Thầy cũng như các bạn để có thể hiểu rõ hơn về công nghệ 4QAM này.Nhóm chân thành cảm ơn sự hỗ trợ và giảng dạy nghiêm khắc của Thầy trong suốt thời gian qua và cảm ơn những người bạn cùng nhóm vì đã cùng nhau hoàn thành dự án này.TP Hồ Chí Minh, ngày 21112018NhómDưới sự hỗ trợ về mặt phần cứng và kiến thức của thầy GS. TS Lê Tiến Thường, nhóm đã hoàn thành dự án đúng hạn và đạt được các mục tiêu đề ra. Nhưng do thời gian có hạn, cũng như kiến thức còn nhiều hạn chế, nhóm chắc chắn không tránh khỏi những thiếu sót. Mong rằng nhóm sẽ nhận được các góp ý quý báu từ Thầy cũng như các bạn để có thể hiểu rõ hơn về công nghệ 4QAM này.Nhóm chân thành cảm ơn sự hỗ trợ và giảng dạy nghiêm khắc của Thầy trong suốt thời gian qua và cảm ơn những người bạn cùng nhóm vì đã cùng nhau hoàn thành dự án này.TP Hồ Chí Minh, ngày 21112018NhómDưới sự hỗ trợ về mặt phần cứng và kiến thức của thầy GS. TS Lê Tiến Thường, nhóm đã hoàn thành dự án đúng hạn và đạt được các mục tiêu đề ra. Nhưng do thời gian có hạn, cũng như kiến thức còn nhiều hạn chế, nhóm chắc chắn không tránh khỏi những thiếu sót. Mong rằng nhóm sẽ nhận được các góp ý quý báu từ Thầy cũng như các bạn để có thể hiểu rõ hơn về công nghệ 4QAM này.Nhóm chân thành cảm ơn sự hỗ trợ và giảng dạy nghiêm khắc của Thầy trong suốt thời gian qua và cảm ơn những người bạn cùng nhóm vì đã cùng nhau hoàn thành dự án này.TP Hồ Chí Minh, ngày 21112018Nhóm
ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM CHƯƠNG TRÌNH KĨ SƯ CHẤT LƯỢNG CAO VIỆT PHÁP BÁO CÁO PROJECT: MÔ PHỎNG ĐIỀU CHẾ VÀ GIẢI ĐIỀU CHẾ 4-QAM DÙNG MATLAB VÀ USBSTK5515 GVHD: GS.TS LÊ TIẾN THƯỜNG ĐỀ TÀI: 12 NHÓM: THÀNH VIÊN: STT HỌ VÀ TÊN MSSV 31 Lương Hoài Thiện 1513202 29 Phạm Thái Hoàng 1511147 28 Nguyễn Hữu Khoa Minh 1511993 THÁNG 11/2018 LỜI NĨI ĐẦU Ngành Viễn thơng Việt Nam đứng trước hội để phát triển mạnh mẽ mà vào năm 2020 “Việt Nam nước triển khai Mạng di động hệ thứ (5G) giới” – trích lời trưởng Thơng tin Truyền thơng ông Nguyễn Mạnh Hùng Hội thảo “Đổi sáng tạo Việt Nam” tổ chức vào ngày 14/11/2018 Mạng 5G kì vọng tạo cách mạng tốc độ thiết bị di động mà tốc độ lý thuyết mạng 5G đạt đến 10 Gbps, qua tạo điều kiện thúc đẩy phát triển ngành công nghệ cần tốc độ truyền liệu cao xe tự hành, mạng lưới vạn vật kết nối (Internet of Things) với hàng ngàn, hàng tỉ cảm biến giao tiếp với nhau,… Là sinh viên thuộc khối ngành Điện, việc nắm bắt xu hướng giới đất nước để chuẩn bị hành trang cần có để đáp ứng nhu cầu tương lai thời gian học Đại học điều cần thiết Nhưng mà để nắm bắt công nghệ 5G, tảng công nghệ sinh viên điều quan trọng Do đó, khoảng thời gian từ tháng đến tháng 11, hướng dẫn thầy GS TS Lê Tiến Thường, nhóm thực nghiên cứu lý thuyết thực mơ q trình Điều chế trực pha mức (4 Quadrature Amplitude Modulation) MATLAB kit TMS 320C5515 eZdspTM USB Stick Dưới hỗ trợ mặt phần cứng kiến thức thầy GS TS Lê Tiến Thường, nhóm hồn thành dự án hạn đạt mục tiêu đề Nhưng thời gian có hạn, kiến thức nhiều hạn chế, nhóm chắn khơng tránh khỏi thiếu sót Mong nhóm nhận góp ý quý báu từ Thầy bạn để hiểu rõ cơng nghệ 4QAM Nhóm chân thành cảm ơn hỗ trợ giảng dạy nghiêm khắc Thầy suốt thời gian qua cảm ơn người bạn nhóm hồn thành dự án TP Hồ Chí Minh, ngày 21/11/2018 Nhóm sinh viên thực TĨM TẮT Trong dự án mơn học, nhóm chúng tơi thực nghiên cứu lý thuyết Điều chế biên độ trực pha (Quadrature Amplitude Modulation-QAM) phân loại Điều chế biên độ trực pha mức – 4QAM Sau đó, với lý thuyết tìm hiểu, chúng tơi thực mơ q trình điều chế theo phương pháp SIMULINK MATLAB kit TMS 320C5515 eZdspTM USB Stick đến từ nhà sản xuất Texas Instrument Sau đó, để đánh giá q trình, nhóm thực giải điều chế để tìm lại dạng sóng tín hiệu ban đầu Dưới bảng báo cáo chi tiết kết thực dự án suốt tháng vừa qua BẢNG PHÂN CHIA CƠNG VIỆC Lương Hồi Thiện Tìm hiểu lý thuyết, viết chương trình điều chế kit phân tích kết Multi-Instrument, làm báo cáo Nguyễn Hữu Khoa Minh Tìm hiểu lý thuyết, viết chương trình mơ điều chế phân tích kết MATLAB, làm báo cáo Phạm Thái Hồng Tìm hiểu lý thuyết, viết chương trình giải điều chế tín hiệu nhận từ kit phân tích kết MATLAB, làm báo cáo DANH MỤC HÌNH ẢNH Hình 1: Các điểm trạng thái pha giá trị bit tương ứng 4-QAM 12 Hình 2: Sơ đồ điều chế 4-QAM 13 Hình 3: Sơ đồ giải điều chế 4-QAM ( Với Hr(f) đáp ứng tần số máy thu) 14 Hình 4: Sơ đồ khối SIMULINK giải điều chế 4-QAM 15 Hình 5: Hình minh họa vector sai số điều chế, vector truyền vector mục tiêu 16 Hình 6: Hình minh họa vector sai số vector tham chiếu lý tưởng 17 Hình 7: : Hình tín hiệu thơng tín dạng sóng vng đầu vào với fdig = 150 Hz 18 Hình 8: Hình tín hiệu sóng mang fc = 6000 Hz 18 Hình 9: Hình tín hiệu điều chế 4-QAM 18 Hình 10: Hình giản đồ chòm điểm lý tưởng, điểm thực tế nhận kết MER, EVM 19 Hình 11: Hình tín hiệu thơng tin đầu vào dạng sóng vng với fdig = 150 Hz 19 Hình 12: Hình tín hiệu sóng mang fc = 6000 Hz 19 Hình 13: Hình tín hiệu điều chế 4-QAM 20 Hình 14: Hình giản đồ chòm điểm lý tưởng, điểm thực tế nhận kết MER, EVM 20 Hình 15: Tín hiệu đầu vào xung vng có mức với fdig = 150 Hz 21 Hình 16: Hính tín hiệu sóng mang với fc = 6000 Hz 21 Hình 17: Hình tín hiệu sóng điều chế 4-QAM 21 Hình 18: Hình giản đồ chòm điểm lý tưởng, điểm thực tế nhận kết MER, EVM 22 Hình 19: Hình tín hiệu đầu vào xung vng với fdig = 150 Hz 22 Hình 20: Hình tín hiệu sóng mang fc = 6000 Hz 22 Hình 21: Hình tín hiệu điều chế 4-QAM 23 Hình 22: Hình giản đồ chòm điểm lý tưởng, điểm thực tế nhận kết MER, EVM 23 Hình 23: Các khối chức C5515 26 Hình 24: Vị trí khối mã hóa/ giải mã âm kit 26 Hình 25: Cổng kết nối 3.5 mm dạng TRS 27 Hình 26: Sơ đồ khối mo tả thuật toán chạy kit 28 Hình 27: Mơ tả chuỗi xung vuông ngõ vào với giá trị bit mà chúng đại diện 31 Hình 28: Biểu đồ chòm thể giá trị dibit thành phần I, Q tương ứng 31 Hình 29: Tổng quan kết nối hệ thống 35 Hình 30: Cáp USB kèm kit sử dụng để kết nối qua cổng USB Còn kết nối Audio thực với sợi cáp Audio 3.5 mm chuẩn TRS 35 Hình 31: Một USB âm (USB Soundcard) sử dụng làm trung gian kết nối máy tính kit 36 Hình 32: Dòng chữ giới thiệu nhóm đề tài OLED 36 Hình 33: Thơng số Signal Generator MI 36 Hình 34: Cách nối dây để đo đạc sóng phát từ phần mềm 36 Hình 35: Kết phân tích phổ biên độ dạng sóng máy tính 37 Hình 36: Dạng sóng sine kHz thu MI 38 Hình 37: Kết phân tích liệu sóng mang, thơng điệp đọc tín hiệu điều chế file bin 40 Hình 38: Tín hiệu điều chế thu Multi-Instrument sóng vng có tần số 150 Hz 41 Hình 39: Tín hiệu điều chế thu Multi-Instrument sóng vng có tần số 300 Hz 42 Hình 40: Tín hiệu điều chế thu Multi-Instrument sóng vng có tần số 500 Hz 42 Hình 41: : Tín hiệu điều chế thu Multi-Instrument sóng vng có tần số 600 Hz 43 Hình 42: Sơ đồ giải thuật giải điều chế 4-QAM liệu thu từ kit MATLAB 44 Hình 43: App Filter Design & Analysis MATLAB R2014 45 Hình 44: Chỉnh thơng số cần thiết thiết kế lọc 46 Hình 45: Đáp ứng lọc thiết kế 46 Hình 46: Tạo biến object Hd Workspace 46 Hình 47: Kết giải điều chế 4-QAM tín hiệu xung vng đầu vào 150 Hz 49 Hình 48: Kết giải điều chế 4-QAM tín hiệu xung vng đầu vào 300 Hz 49 Hình 49: Kết giải điều chế 4-QAM tín hiệu xung vng đầu vào 300 Hz 49 Hình 50: Cáp chia liệu đầu tai nghe - microphone riêng biệt 52 Hình 51: Cáp 3.5mm với đầu đực dạng TRRS 52 Hình 52: Giao diện chức Signal Generator 53 Hình 53: Kết phân tích phổ tần số phần mềm Oscope 53 Hình 54: Kết dạng sóng Oscilloscope 54 Hình 55: Kết phân tích phổ biên độ Spectrum Analyzer 55 DANH MỤC BẢNG BIỂU Bảng 1: Minh họa việc biểu diễn thông tin đầu vào để chuẩn bị điều biến 4-QAM 13 Bảng 2: Các tính C5515 25 Bảng 3: J3, cổng vào Audio 27 Bảng 4: J4, cổng Audio 27 MỤC LỤC Lý thuyết Điều biên trực pha - Quadrature Amplitude Modulation (QAM):11 I 1) Định nghĩa QAM: 11 2) Phân tích miền tần số QAM: 11 3) Điều biên trực pha 4-QAM: 12 Các điểm trạng thái pha không gian tín hiệu: 12 Biểu thức tín hiệu 4-QAM: 13 Sơ đồ điều chế giải điều chế 4-QAM: 13 II Yêu cầu dự án: 15 III Mô điều chế 4-QAM MATLAB: 15 1) Sơ đồ Simulink: 15 2) Phương pháp đo MER EVM: 16 Phương pháp đo Modulation Error Ratio - MER: 16 Phương pháp đo Error Vector Magnitude – EVM: 17 3) Kết điều chế 4-QAM: 18 IV Giới thiệu kit TMS 320C5515 eZdspTM USB Stick khối mã hóa/ giải mã âm thanh: 24 1) Giới thiệu kit TMS 320C5515 eZdspTM USB Stick : 24 Tổng quan : 24 Tính TMS320C5515 eZdspTM : 24 Sơ đồ khối chức năng: 26 2) Khối mã hóa/ giải mã âm dùng chip TLV320AIC3204: 26 J3, Audio In Connector: 26 J4, Audio Out Connector: 27 Chip TLV320AIC3204: 27 Mô điều chế 4-QAM kit eZDSP: 28 V 1) Giải thích sơ đồ khối: 29 Khai báo biến: 29 Khởi tạo khối phần cứng I2C, AIC3204, OSD9616: 29 Cài đặt hiển thị chữ lên OLED: 30 Đọc liệu Analog qua ngõ vào STEREO IN kit: 30 Điều chế tín hiệu: 30 Điều chế tín hiệu: 32 Xuất tín hiệu cổng STEREO OUT kit: 33 Thu thập lưu trữ giữ liệu: 33 2) Kết thực hiện: 35 Kết nối máy tính kit: 35 Tín hiệu sóng đầu USB âm thanh: 36 Tín hiệu sóng mang phát kit: 38 Tín hiệu điều chế tính tốn kit nhận máy tính: 39 VI Kết luận: 51 VII Danh mục tài liệu tham khảo: 51 PHỤ LỤC A: Giới thiệu phần mềm giả lập máy tạo sóng dao động ký PC – MultiInstrument 3.2: 52 1) Giới thiệu chung: 52 2) Máy tạo sóng – Signal Generator: 53 3) Dao động ký - Oscilloscope: 54 4) Máy phân tích phổ - Spectrum Analyzer: 55 5) Kết luận: 55 PHỤ LỤC B: Chi tiết toàn code C kit eZDSP: 56 // Display text: OSD9616_displayText(); // Receiving and modulating the message for 10 second = 480000 samples: for ( i = ; i < 10 ; i++ ) { id = 0; for ( j = ; j < 12000 ; j++ ) { for ( sample = ; sample < samplesPerPeriod ; sample++ ) { // Read Analog Audio while((Rcv & I2S0_IR) == 0); // Wait for interrupt pending flag mes1 = I2S0_W0_MSW_R; // 16 bit left channel received 1st audio data while((Rcv & I2S0_IR) == 0); // Wait for interrupt pending flag mes2 = I2S0_W0_MSW_R; // 16 bit left channel received 2nd audio data // Convert message to I,Q component: if ((mes1 THRESHOLD)) { I = 1; Q = 1; 57 } else { I = 0; Q = 0; } // Modulate signal modulated_signal = I*cosinetable[sample] - Q*sinetable[sample]; // I*cos(2*pi*fc*t) - Q*sin(2*pi*fc*t) // Write the modulated signals to left channel: while((Xmit & I2S0_IR) == 0); // Wait for interrupt pending flag I2S0_W0_MSW_W = modulated_signal; // Write the modulated signal to 16 bit left channel I2S0_W0_LSW_W = 0; I2S0_W1_MSW_W = 0; I2S0_W1_LSW_W = 0; // Log the data: if ((sample ==0) && (j == 8000) && (i == 9)) logFlag = 1; if (logFlag == 1) { message_bin[2*id] = mes1; message_bin[2*id+1] = mes2; carrier_bin[id] = sinetable[sample]; modulated_sig_bin[id] = modulated_signal; id = id + 1; // Save the carrier, message and modulated signal; if (id == 1600) { logFlag = 0; 58 ExportFile(" \\output\\message.bin", 3200,(Int16*) pmes ); ExportFile(" \\output\\carrier.bin", 1600,(Int16*) pcar ); ExportFile(" \\output\\modulated.bin", 1600,(Int16*) pmod ); } } } } } /* Disable I2S */ I2S0_CR = 0x00; } 59 AIC3204.c #include #include #include #include "AIC3204.h" "sinetable.h" "oled.h" "utilities.h" #define THRESHOLD 200 void main( void ) { // Declare variables: Int8 j = 0; Int16 i = 0; Int16 id = 0; Int8 sample; Int16 mes1, mes2; Int8 I, Q; Int16 modulated_signal; static Int16 message_bin[3200], *pmes = message_bin; static Int16 carrier_bin[1600], *pcar = carrier_bin; static Int16 modulated_sig_bin[1600], *pmod = modulated_sig_bin; Int8 logFlag = 0; // Initialize BSL USBSTK5515_init( ); // Enable and Initialize I2C: SYS_EXBUSSEL = 0x6100; USBSTK5515_I2C_init( ); // Configure AIC3204: AIC3204_init(); // Configure OSD9616: OSD9616_init(); // Display text: 60 OSD9616_displayText(); // Receiving and modulating the message for 10 second = 480000 samples: for ( i = ; i < 10 ; i++ ) { id = 0; for ( j = ; j < 12000 ; j++ ) { for ( sample = ; sample < samplesPerPeriod ; sample++ ) { // Read Analog Audio while((Rcv & I2S0_IR) == 0); // Wait for interrupt pending flag mes1 = I2S0_W0_MSW_R; // 16 bit left channel received 1st audio data while((Rcv & I2S0_IR) == 0); // Wait for interrupt pending flag mes2 = I2S0_W0_MSW_R; // 16 bit left channel received 2nd audio data // Convert message to I,Q component: if ((mes1 THRESHOLD)) { I = 1; Q = 1; } 61 else { I = 0; Q = 0; } // Modulate signal modulated_signal = I*cosinetable[sample] - Q*sinetable[sample]; // I*cos(2*pi*fc*t) - Q*sin(2*pi*fc*t) // Write the modulated signals to left channel: while((Xmit & I2S0_IR) == 0); // Wait for interrupt pending flag I2S0_W0_MSW_W = modulated_signal; // Write the modulated signal to 16 bit left channel I2S0_W0_LSW_W = 0; I2S0_W1_MSW_W = 0; I2S0_W1_LSW_W = 0; // Log the data: if ((sample ==0) && (j == 8000) && (i == 9)) logFlag = 1; if (logFlag == 1) { message_bin[2*id] = mes1; message_bin[2*id+1] = mes2; carrier_bin[id] = sinetable[sample]; modulated_sig_bin[id] = modulated_signal; id = id + 1; // Save the carrier, message and modulated signal; if (id == 1600) { logFlag = 0; 62 ExportFile(" \\output\\message.bin", 3200,(Int16*) pmes ); ExportFile(" \\output\\carrier.bin", 1600,(Int16*) pcar ); ExportFile(" \\output\\modulated.bin", 1600,(Int16*) pmod ); } } } } } /* Disable I2S */ I2S0_CR = 0x00; 63 Oled.c #include "oled.h" //Initialize OSD9616 void OSD9616_init() { Uint8 cmd[10]; // For multibyte commands /* Initialize I2C */ USBSTK5515_I2C_init( ); /* Initialize LCD power */ USBSTK5515_GPIO_setDirection( 12, ); USBSTK5515_GPIO_setOutput( 12, ); // Output // Enable 13V /* Initialize OSD9616 display */ OSD9616_send(0x00,0x00); // Set low column address OSD9616_send(0x00,0x10); // Set high column address OSD9616_send(0x00,0x40); // Set start line address cmd[0] = 0x00 & 0x00FF; // Set contrast control register cmd[1] = 0x81; cmd[2] = 0x7f; USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); OSD9616_send(0x00,0xa1); // Set segment re-map 95 to OSD9616_send(0x00,0xa6); // Set normal display cmd[0] = 0x00 & 0x00FF; // Set multiplex ratio(1 to 16) cmd[1] = 0xa8; cmd[2] = 0x0f; USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); OSD9616_send(0x00,0xd3); OSD9616_send(0x00,0x00); OSD9616_send(0x00,0xd5); divide ratio/oscillator frequency OSD9616_send(0x00,0xf0); cmd[0] = 0x00 & 0x00FF; 64 // Set display offset // Not offset // Set display clock // Set divide ratio // Set pre-charge period cmd[1] = 0xd9; cmd[2] = 0x22; USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); cmd[0] = 0x00 & 0x00FF; // Set com pins hardware configuration cmd[1] = 0xda; cmd[2] = 0x02; USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); OSD9616_send(0x00,0xdb); // Set vcomh OSD9616_send(0x00,0x49); // 0.83*vref cmd[0] = 0x00 & 0x00FF; // set DC-DC enable cmd[1] = 0x8d; cmd[2] = 0x14; USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); OSD9616_send(0x00,0xaf); // Turn on oled panel } //Sends bytes of data to the OSD9616 Int16 OSD9616_send( Uint16 comdat, Uint16 data ) { Uint8 cmd[2]; cmd[0] = comdat & 0x00FF; // Specifies whether data is Command or Data cmd[1] = data; // Command / Data return USBSTK5515_I2C_write( OSD9616_I2C_ADDR, cmd, ); } //Sends multiple bytes of data to the OSD9616 Int16 OSD9616_multiSend( Uint8* data, Uint16 len ) { Uint16 x; Uint8 cmd[10]; for(x=0;x