bkhndassssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssddddddddddddddddddddddddddddddddddddddddddaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THƠNG BÁO CÁO THÍ NGHIỆM MƠN: XỬ LÝ TÍN HIỆU SỐ Mã học phần Sinh viên MSSV Lớp Mã lớp TN Nhóm thí nghiệm : ET4020 : : : : 706379 : NTX14 Hà Nội, 2020 BÀI Mơ hệ thống tín hiệu rời rạc MATLAB A Tín hiệu hệ thống rời rạc miền n 1.1 Viết chương trình tạo dãy thực ngẫu nhiên xuất phát từ n1 đến n2 có giá trị biên độ theo phân bố Gauss với trung bình 0, phương sai u cầu chương trình có tham số đầu vào đầu nhập theo câu lệnh với cú pháp: [x,n] = randnseq(n1,n2); Điền câu lệnh vào phần trống đây: function [x,n] = randnseq(n1,n2) n = [n1:n2]; x = randn (size(n)); 1.2 Viết chương trình tạo hàm lượng dãy Yêu cầu chương trình có tham số đầu vào đầu nhập theo câu lệnh với cú pháp: Ex = energy(x,n); Điền câu lệnh vào phần trống đây: function Ex = energy(x,n) n = [n1,n2]; Ex = sum(abs(x).^2) 1.3 Cho () = {1, 2, 3, 4, 5, 6, 7,6, 5, 4, 3, 2, 1} − ≤ ≤ 10 Viết chương ↑ trình thể đồ thị dãy sau đây: 2 1(2(3( () = 2( − 5) − 3( + 4) 2() = ()((3 − ) − ()( − 2) Điền câu lệnh vào phần trống đây: n = [-2,10]; x = [1:7,6:-1:1]; % ve tin hieu x1[n] [x11, n11] = sigshift(x, n, 5); [x12, n12] = sigshift(x, n, -4); [x1, n1] = sigadd(2 * x11, n11, -3 * x12, n12); subplot(2,1,1); stem(n1, x1); title('Day so theo dau bai 1.3a'); xlabel('n'); ylabel('x1(n)'); % ve tin hieu x2[n] [xt, nt] = sigfold(x, n); [x21, n21] = sigshift(xt, nt, 3); [xt, nt] = sigshift(x, n, 2); [x22, n22] = sigmult(x , n, xt , nt); [x2, n2] = sigadd(x21, n21, -x22, n22); subplot(2,1,2); stem(n2, x2); title('Day so theo dau bai 1.3b'); xlabel('n'); ylabel('x2(n)'); 3 Vẽ phác hoạ đồthị vào phần trốngdưới đây: 1.4 Cho hệ thống mơ tả phương trình sai phân tuyến tính hệ số sau: ()(9( − ((− 1) + 9( − 2) = () Sử dụng hàm filter MATLAB, viết chương trình thực cơng việc sau: a Biểu diễn đồ thị hàm đáp ứng xung đơn vị hệ thống với -20 ≤n ≤100 b Biểu diễn đồ thị dãy đáp ứng hệ thống với -20 ≤n ≤100 dãy đầu vào dãy nhảy đơn vị 4 Điền câu lệnh vào phần trống đây: n = -20:100; b = 1; a = [1, -1, 0.9]; % dap ung xung x1 = impseq(0, -20, 100); h = filter(b, a, x1); subplot(2, 1, 1); stem(n , h); title('Dap ung xung'); xlabel('n'); ylabel('h(n)'); % dap ung nhay x2 = stepseq(0, -20, 100); s = filter(b, a, x2); subplot(2, 1, 2); stem(n, s); title('Dap ung nhay'); xlabel('n'); ylabel('s(n)'); 5 Vẽ phác hoạ đồthị vào phần trốngdưới đây: B Tín hiệu hệ thống rời rạc miền Z, miền tần số liên tục ω, miền tần số rời rạc k 1.5 Cho dãy () = 0,5 () a Dựa định nghĩa biến đổi Z, tìm biến đổi Z dãy b Kiểm chứng lại kết câu a hàm ztrans c Từ kết trên, tìm biến đổi Fourier x(n) Dùng MATLAB thể đồ thị phổ ( ) 501 điểm rời rạc khoảng [0,π] Điền câu lệnh vào phần trống đây: w = [0:1:500]*pi/500; X = exp(j*w) / (exp(j*w)- 0.5*ones(1,501)); magX = abs(X); angX = angle(X); realX = real(X); imagX = imag(X); % subplot(2,2,1); plot(w/pi,magX); grid; title('Magnitude Part'); xlabel('frequency in pi units'); ylabel('Magnitude'); 6 subplot(2,2,3); plot(w/pi,angX); grid; title('Angle Part'); xlabel('frequency in pi units'); ylabel('Radians'); subplot(2,2,2); plot(w/pi,realX); grid; title('Real Part'); xlabel('frequency in pi units'); ylabel('Real'); subplot(2,2,4); plot(w/pi,imagX); grid; title('Imaginary Part'); xlabel('frequency in pi units'); ylabel('Imaginary'); Vẽ phác hoạ đồthị vào phần trốngdưới đây: 1.6 Cho dãy x(n) có dạng sau: () = {… ,0, 0, 1, 2, 3,4, 5, 0, 0, … } ↑ Đây dãy số xác định khoảng hữu hạn từ -1 đến Dựa công thức định nghĩa biến đổi Fourier, viết chương trình tính thể phổ dãy x(n) 501 điểm rời rạc khoảng [0,π] Cho dãy () = 7() 7 Điền câu lệnh vào phần trống đây: n = -1:3; x = 1:5; w = [0:1:500]*pi/500; % x(n) = rect7(n); X = (1 - exp(-7j * w)) / (1 - exp(-j*w)); magX = abs(X); angX = angle(X); realX = real(X); imagX = imag(X); % subplot(2,2,1); plot(w / pi,magX); grid; title('Magnitude Part'); xlabel('frequency in pi units'); ylabel('Magnitude'); subplot(2,2,3); plot(w / pi,angX); grid; title('Angle Part'); xlabel('frequency in pi units'); ylabel('Radians'); subplot(2,2,2); plot(w / pi,realX); grid; title('Real Part'); xlabel('frequency in pi units'); ylabel('Real'); subplot(2,2,4); plot(w / pi,imagX); grid; title('Imaginary Part'); xlabel('frequency in pi units'); ylabel('Imaginary'); Vẽ phác hoạ đồthị vào phần trốngdưới đây: 8 1.7 Một hàm miền Z cho với công thức sau đây: () = 2 − 4+ Hàm số X(z) viết dạng tỷ số hai đa thức theo −1 sau −1 0+ −1 () = 32 − (3 + = − 4−1 + 44 −2 = − 4−1 + −2 a Sử dụng lệnh residuez MATLAB, tính điểm cực, thặng dư điểm cực b Từ kết câu trên, viết công thức khai triển X(z) thành tổng phân thức đơn giản, từ tìm biến đổi Z ngược X(z), cho biết x(n) dãy nhân c Kiểm chứng lại kết câu b hàm iztrans Điền câu lệnh vào phần trống đây: b = [0 1]; a = [3 -4 1]; [R,p,C] = residuez(b,a) % [b a] = residuez(R,p,C) 1.8 Cho hàm X(z) với công thức sau: () = a Viết chương trình tính điểm cực, thặng dư điểm cực hàm X(z) (gợi ý: dùng hàm poly MATLAB để khôi phục lại đa thức mẫu số từ mảng nghiệm đa thức - mảng điểm cực X(z)) b Từ kết câu trên, viết công thức khai triển X(z) thành tổng phân thức đơn giản, từ tìm biến đổi Z ngược X(z) miền | > 0,9 9 Điền câu lệnh vào phần trống đây: b = [1] a = poly([0.9 0.9 -0.9]) [R,p,C] = residuez(b,a) % [b a] = residuez(R,p,C) 1.9 Cho hệ thống nhân biểu diễn phương trình sau: ((9( ) − (0, 9( − 1) = () a Tìm hàm truyền đạt hệ thống Sau thực công việc sau: b Dùng lệnh zplane MATLAB biểu diễn đồ thị mặt phẳng Z phân bố điểm cực điểm khơng c Tính biểu diễn đồ thị hàm đáp ứng tần số ()của hệ thống (bao gồm đáp ứng biên độ- tần số đáp ứng pha - tần số) 200 điểm rời rạc đường tròn đơn vị Điền câu lệnh vào phần trống đây: b = [1 0]; a = [1 -0.9]; % Tim phan bo diem cuc va diem khong subplot(1,2,1); zplane(b,a); title('Z plane'); % Tim dap ung tan so bang cach danh gia 200 diem roi rac % cua H(z) tren duong tron don vi [H, w] = freqz(b,a,200,'whole'); magH = abs(H(1:101)); phaH= angle(H(1:101)); % Ve dap ung tan so subplot(2,2,2); plot(w(1:101)/pi,magH); grid; title('Magnitude Response'); xlabel('frequency in pi units'); ylabel('Magnitude'); subplot(2,2,4); plot(w(1:101)/pi,phaH/pi); grid; title('Phase Response'); xlabel('frequency in pi units'); ylabel('Phase in pi units'); 10 10 Xây dựng chương trình DSP mà đơn từ mã máy khơng khả thi Vì lý này, ngôn ngữ assembler (hợp ngữ) phát triển để viết chương trình cho DSP Đây ngơn ngữ lập trình mà thị dạng gợi nhớ biểu tượng thường tương ứng – với thị máy Bộ dịch (assembler) liên kết (linker) sử dụng để dịch chương trình viết hợp ngữ thành mã máy DSP Assembler dịch tệp chương trình thành tệp đích, tệp sau liên kết với (link) để tạo tệp mã máy vận hành bên DSP Hỏi: Sự lựa chọn câu lệnh viết hợp ngữ? a IF (i.NE.27) THEN(omega=2*sin(x)) b 982Eh c 1011 1110 0001 0110 d DMOV *, AR1 40 40 Ngôn ngữ C ngôn ngữ bậc cao sử dụng ngày nhiều để lập trình DSP phức tạp thực thi thuật tốn có độ phức tạp cao Lập trình C đơn giản hoá thiết kế ứng dụng DSP người lập trình khơng cịn bị giới hạn tập thị nhỏ ngôn ngữ bậc thấp (như hợp ngữ) Bộ biên dịch (compiler) C sử dụng để dịch mã nguồn C thành mã hợp ngữ DSP thích hợp 41 41 Phần cuối lập trình bao gồm việc kiểm tra lỗi chương trình làm thay đổi thực tốt chức mong muốn Quá trình cuối chuỗi trình phát triển phần mềm thường gọi gỡ rối (debugging) Chương trình giúp cho việc gỡ rối phần mềm gọi gỡ rối (debugger) Một gỡ rối cho phép người lập chương trình khả phân tích vấn đề kết hợp với chương trình DSP họ Điều thực trước gỡ rối sử dụng với DSP mà ta làm thí nghiệm.C5x Visual Development Evironment (C5x VDE) gỡ rối sử dụng với DSP mà làm thí nghiệm Những người phát triển hệ thống DSP gỡ rối DSP mà khơng sử dụng gỡ rối hay debugger Vì vậy, họ thường sử dụng EVMs, emulators simulators để trợ giúp cho việc Bộ DSP sử dụng với mạch phận module TM320C5x DSK (Digital Signal Processing Kit) Khi sử dụng EVMs, emulators 42 42 simulators, người phát triển thay đổi q trình phát triển mơ hình DSP thí nghiệm Một hoạt động được, thử nghiệm cuối chương trình cài đặt hệ thống DSP Các chương trình bao gồm sử dụng Digital Signal Processor viết hợp ngữ Hợp ngữ sử dụng đặc trưng TM320C5x EVMs, cộng thêm thị nó, gọi thị DSK Yêu cầu thiết bị Để hoàn thành tập sau đây, ta cần: •FACET baseunit •Bọ mạch DIGITAL SIGNAL PROCESSOR •Chương trình C5x VDE •Các tệp chương trình (dsk) hợp ngữ(asm) 1_1, Exl_2 •Máy sóng •Đồng hồ đo điện đa chức 43 43 ********* BÀI LÀM QUEN VỚI BỘTHÍ NGHIỆM LABVOLT DSP Mục đích Kết thúc này, sinh viên làm quen với vị trí chức linh kiện khác hệ thống DSP Thảo luận Bo mạch có hai vùng chức năng: vùng chứa phụ kiện bo mạch vùng chứa DSP ngoại vi Vùng chứa phụ kiện bo mạch bao gồm: •DOWER SUPPLY với AUXILIARY POWER INPUT •DC SOURCE •MICROPHONE PRE-AMPLIFIEF •AUDIO AMPLIFIER Chức năng: •Khối mạch POWER SUPPLY cung cấp nguồn DC chỉnh lưu lọc cho toàn bo mạch Bo mạch vận hành theo hai cách khác : điện áp vào Power Supply nhận từ Lab-BoIl FACET base Unit nhận từ kết nối ± 15V ngồi tìm thấy khối AUXILIARY POWER INPUT 44 44 •Khối DC SOURCE cung cấp điện áp DC thay đổi phụ thuộc vào vị trí chiết áp,giữa -3,5V de + 3,5Vdc Khối DC SOURCE dùng nguồn tín hiệu tham chiếu đầu vào cho chương trình chạy DSP •Khối MICROPIIONE PRE-AMPLIFIER sử dụng để điều chỉnh tín hiệu micro thành mức thích hợp với đầu vào DSP Chiết áp GAIN thay đổi mức giá trị thấp giá trị cao •Để nghe thấy tín hiệu từ ANALOG OUTPUT, định vị khối CODEC, khối AUDIO AMPLIER sử dụng Vùng chức thứ hai bo mạch DSP ngoại vi bao gồm: • DSP •CODEC •I/O INTERFACE •INTERRUPTS •AUXILIARY I/O •SERIAL PORT DSP coi trái tim hệ thống xử lý tín hiệu số •Khối DSP chứa vi mạch DSP TM320C50 chíp 132 chân dán bề mặt (surface mount) Nó đạt tới tốc độ thực 50MIPS Có nhiều lại DSP chúng thay đổi tốc độ chu trình Tuy nhiên, tốc độ giới hạn ràng buộc hệ thống bên vi mạch DSP sử dụng tạo dao động bên để thiết lập đồng hồ sử dụng tạo dao động ngồi DSP dùng bo mạch thí nghiệm đặt cấu hình để sử dụng tạo dao động ngồi 45 45 •Khối OSCILATOR đặt bo mạch cung cấp cho tín hiệu tham chiếu 40 MHz DSP chia tín hiệu để tạo tín hiệu bên 20Mhz (tần số tín hiệu chủ) mà sử dụng để tính tốn thời gian chu trình thị •Khối CODEC thường cấu thành linh kiện sau: - đầu vào GAIN lập trình - ANTI-ALISING FILTER (bộ lọc chống trùm phổ) - biến đổi tương tự - số - biến đổi số - tương tự - POST-GILER (bộ lọc sau) • Khối I/O INTERFACE phương tiện để hiển thị nạp thơng tin chương trình Chuyển mạch DIP8 có chức đưa bit vào cấu hình DSP Phụ thuộc vào chương trình sử dụng, thơng tin xử lý theo nhiều cách khác Các hiển thị LED sử dụng để đưa thơng tin chương trình cho người sử dụng DSP Như hầu hết vi xử lý, DSP có khả điều khiển ngắt Hai nút sử dụng thiết bị vào người sử dụng cho chương trình Khi nút nhấn nhấn ngắt sinh bên DSP mã chương trình kết hợp với thực • Vùng AUXILARY I/0 cộng thêm vào cho mục đích giám sát tín hiệu để làm nguyên mẫu cho tập DSP thêm vào thực bo mạch Các đầu khối AUXILARY I/O sử dụng để giao tiếp DSP với mạch ngồi Mạch ngồi cấp nguồn đầu 10 chân đặt khối AUXILARY I/O Vùng AUXLIIARY I/O có ba cổng: 46 46 - Các điểm kết nối ± 5Vdc ± 5Vdc có sẵn để sử dụng đầu phải có 10 chân, chúng sử dụng để cấp nguồn cho mạch Các cung cấp bo mạch có điểm đặt - Đầu trái chân LSB (được đánh nhãn từ D0 đến D7) bus liệu DSP ngoài, bao gồm đường địa tiền mã hoá (được đánh nhãn từ PA0# đến PA3#) - Đầu có phần vào/ra (I/O) bao gồm: chọn dữliệu(DS#), chương trình (PS#), khoảng vào/ra (IS#) đầu định thời chọn đầu (RD#) cho ghi (WE#) cho thiết bị chọn đọc/ghi (R/W#) cho truy nhập ngồi tín hiệu báo cho biết nhận ngắt (IACK#) đầu vào ngắt (INT4#) chọn hướng (DIR) chọn chíp (CS#) để điều khiển việc truyền liệu ngồi DSP bo mạch lập trình để thành vai trị server máy tính vai trị client Để DSP hoạt động, bo mạch SERIAL, PORT phải nối với cổng nối tiếp máy tính bạn Chú ý: Nếu máy tính chủ khơng có kết nối tiếp thứ hai vào thời điểm thích hợp tiến trình thực tập sinh viên tháo kết nối tiếp Base Unit dùng để nối bo mạch SERIAL PORT với máy tính C5x VDE (C5x Visual Development Environment) quản lý việc bắt tay bo mạch máy tính Nó điều khiển tất đầu vào đầu từ nhớ DSP cổng 47 47 nối tiếp Một kết nối liên lạc máy tính bạn bo DSP thiết lập, C5x VDE sử dụng để nạp chương trình vào DSP Tiến trình thí nghiệm Giới thiệu bo mạch: Trong phần này, bạn làm quen với số linh kiện khối mạch bo mạch DIGIAL SIGNAL PROCESSOR Định vị bo mạch DIGITAL SIGNAL PROCESSOR tất thiết bị đầu cuối chung Dùng điện trở kế để kiểm tra thiết bị đầu cuối nối với hay chưa Bật nguồn cung cấp cho bo mạch DIGITAL SIGNAL PROCESSOR Dùng volt kế để kiểm tra điện áp chiều cách thay đổi chiết áp DC SOURCE từ giá trị nhỏ giá trị lớn Đo điện áp DC đầu DC source Hỏi: Điện áp DC nhỏnhất (VDC min) điện áp DC lớn (VDC max) đưa từ DC source? VDC = …………………V VDC max = …………………V Thực kết nối với DIGITAL SIGNAL PROCESSOR Chú ý: Nếu chất lượng audio từ loa khơng tốt, dùng tai nghe kèm theo bo mạch Nối tai nghe vào đầu cắm tai nghe đặt khối mạch AUDIO AMPLIFIER 48 48 Nói vào micro, xem xét thay đổi âm phát thực thay đổi chiết áp MICROPHONE PRE-AMPLIFIER AUDIO AMPLIFIER Tháo tồn kết nối có bo mạch Làm quen với bo mạch dùng chương trình DSP:Trong mục này, C5x VDE dùng để nạp chạy chương trình bên DSP Chú ý: Trước sửdụng C5x VDE, chắn nguồn bo mạch bật kết nối nối tiếp có máy tính khối mạch DIGITAL SIGNAL PROCESSOR đánh nhãn SERIAL PORT Mở chương trình C5x VDE: Dùng lệnh Load Program menu File để nạp chương trình ex1_1.dsk vào DSP Hỏi: Hai cửa sổnào mởtrong C5x VDE? a C5x Registers Peripheral Registers b Dis-Assembly Periphearal Registers c C5x Registers Dis-Assembly d Peripheral Registers File Selection Kết nối bo mạch hình vẽ Điều cho phép chương trình ex1_1.dsk vận hành đắn 49 49 Chú ý: Dùng tai nghe cần thiết 10.Thực lện RUN công cụ C5x VDE 11.Quan sát đọc hiển thị bên khối mạch I/O INTERFACE Điều chỉnh chuyển mạch DIP (tất cảcác bit ởvịtrí 0)sao chohiển thị đọc 0000 12.Nhấn nút thứ INT# bo mạch INTERRUPTS để chuyển tới DSP giá trị nhập vào thơng qua chuyển mạch DIP 13.Dùng micro, cho tín hiệu (giọng nói) vào DSP Chú ý: Điều chỉnh chiết áp GAIN MICROPHONE PREAMPLIFIER AUDIO AMPLIFIER để cải thiện âm đầu 14.Lưu ý nói vào micro, chấmtrên hình khối mạch I/O INTERFACE bật sáng 15.Điều chỉnh chuyển mạch DIP cho hình I/O INTERFACE đọc 0015 16.Truyền giá trị chuyển mạch DIP vào DSP cách nhấn nút nhấn INT# 50 50 17.Quan sát kết thay đổi xử lý tín hiệu âm giọng nói 18.Lặp lại bước từ 15 đến 17 cho giá trị hiển thị I/O INTERFACE sau đây: 0031, 0063, 0127, 0255 Nhớ nhấn nút INT # sau đặt chuyển mạch DIP tới giá trịmới Hỏi: Sự lựa chọn sau mô tả đắn chương trình ex1_1.dsk nạp vào DSP? a Đây ghi tiếng nói b Đây hệ điều hành Base Unit c Đây máy phát chức d Đây máy phát tiếng vọng Hỏi: Con số hiển thị I/O INTERFACE tỉ lệ với gì? a Thời gian trễ(theo ms) tiếng vọng liên tiếp b Số tiếng vọng tạo c Thời gian cần dùng (theo ms) để sinh tiếng vọng cho âm d Số mẫu phải lấy tín hiệu giây 19 Thực lệnh Halt cơng cụ C5x VDE Đóng C5x VDE Kết luận •DIGITAL SIGNAL PROCESSOR có hai vùng: vùng phụ kiện bo mạch vùng DSP với ngoại vi •Bo mạch chia thành khối mạch riêng rẽ 51 51 •Trước chương trình DSP nạp sử dụng, nguồn cung cấp DIGITAL SIGNAL PROCESSOR phải bật lên kết nối nối tiếp khối mạch SERIAL PORT máy tính phải thực •Các khối mạch CODEC, I/O INTERFACE, INTERRUPTvà AUXILIARY I/O áp dụng người sử dụng chương trình nạp vào DSP địi hỏi việc sử dụng chúng Câu hỏi ơn tập Dưới câu hỏi cho Bài Sinh viên đọc kỹ câu hỏi, sau tích vào ô tương ứng với câu trả lời cho nhất: Câu 1: Trước bo mạch DIGITAL SIGNAL PROCESSOR sẵn sàng để sử dụng, có số bước bắt buộc cần phải theo Mệnh đề sau bước cần thiết phải thực trước sử dụng bo mạch ? a Chắc chắn chuyển mạch I/O INTERFACE vị trí b Chắc chắn kết nối nối tiếp có máy tính chủvà khối mạch DIGITAL, SIGNAL PROCESSOR đánh nhãn SERIAL PORT c Chắc chắn nguồn cung cấp bo mạch bật d Các mệnh đề b c 52 52 Câu 2: Khoảng điện áp DC mà chiết áp cho nguồn DC điều chỉnh bao nhiêu? a –3,3V đến +3,6V b –3,0V đến + 3,0V c –3,5V đến + 3,5V d Khơng có mệnh đề mệnh đề Câu 3: Chân số chân sau đặt đầu bo mạch AUXILIARY I/O ? a đường địa tiền mã hoá (được đánh nhãn từ PA0# đến PA3#) b TOUT, IACK #, INT4#, RD# c DS#, D0, D1, D2 d CS#, INT4#, DS#, PA1# Câu 4: DSP TMS320C50 bo mạch DIGITAL SIGNAL PROCESSOR sử dụng đồng hồ hệ thống có tần số (nhắc lại đồng hồ đặt tốc độ tính tốn cho DSP)? a DSP dùng tạo dao động bên 20MHZ b DSP dùng tạo dao động bên 40MHZ c Thông qua kết nối nối tiếp, DSP dùng tạo dao động bên 33.3MHz CODEC d Thông qua kết nối bo mạch SERIAL PORT, DSP dùng dao động máy tính chủ Câu 5: Linh kiện linh kiện sau thường tìm thấy CODEC a Một lọc chống trùm phổ b Một biến đổi tương tự – số 53 53 c Một biến đổi số – tương tự d Tất cảc nói 54 54