Thí Nghiệm Xử Lý Tín Hiệu Số - Tài Liệu Text - 123doc
Có thể bạn quan tâm
- Trang chủ >>
- Công Nghệ Thông Tin >>
- Kỹ thuật lập trình
Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (387.97 KB, 30 trang )
BÀI 1. MÔ PHỎNG HỆ THỐNG VÀ TÍN HIỆU RỜI RẠCBẰNG MATLABTÍN HIỆU VÀ HỆ THỐNG RỜI RẠC Ở MIỀN THỜI GIAN RỜI RẠC n1. Yêu cầu trước khi làm thí nghiệmSinh viên nắm vững kiến thức về “Tín hiệu và hệ thống rời rạc” bao gồm:• Các tín hiệu cơ bản• Hệ thống tuyến tính bất biến và Đáp ứng xung của hệ thống tuyến tính bất biến• Phương trình sai phân tuyến tính hệ số hằng2. Mục đích của phần thí nghiệmSinh viên dùng MATLAB mô phỏng các nội dung sau:• Các tín hiệu cơ bản ở miền thời gian• Tính tích chập• Đáp ứng của hệ thống được mô tả bởi phương trình sai phân tuyến tính hệ số hằng3. Tóm tắt lý thuyếtXử lý số tín hiệu, về bản chất, là tìm hiểu về các phép toán và giải thuật liên quanđến các tín hiệu rời rạc và các hệ thống rời rạc. Các tín hiệu rời rạc thường được thểhiện dưới dạng một dãy số như sau:{…, x(-3), x(-2), x(-1), x(0), x(1), x(2), x(3), …}Tuy nhiên, MATLAB chỉ có khả năng biểu diễn một dãy số với độ dài hữu hạn. Khiđó dãy số được khai báo và lưu trữ dưới dạng vector, ví dụ:>> x = [3, 2, -1, 7, -5]Với cách khai báo như vậy, dãy số không thể hiện được chỉ số của các thành phầntrong dãy. Vì vậy, để biểu diễn một dãy rời rạc có độ dài hữu hạn, ta cần khởi tạo vàlưu trữ chúng dưới dạng 2 vector. Ví dụ:>> n = [-2:2]>> x = [3, 2, -1, 7, -5]được hiểu là một dãy gồm 5 phần tử xuất phát từ -2 đến 2 có: x(-2)=3, x(-1)=2,x(0)=-1,x(1)=7 và x(2)=-5. Trong tất cả các bài thí nghiệm trên MATLAB của môn học này,chúng ta nên tuân theo một nguyên tắc như vậy.Định nghĩa một số dãy cơ bảna. Dãy xung đơn vị:Dãy xung đơn vị trễ (dịch) đi n0 mẫu:b. Dãy nhảy đơn vị:c. Dãy hàm mũ thực:d. Dãy hàm mũ phức:σ là độ suy giảm của tín hiệu, ω0 là tần số góc tính theo đơn vị radianse. Dãy lượng giác: Dãy lượng giác là dãy thể hiện tín hiệu có dạng hàm toán học làtổ hợp tuyến tính của các hàm sin và cosin. Một ví dụ về dãy lượng giác như sau:với θ là pha ban đầu của tín hiệuf. Dãy ngẫu nhiên: Là dãy mà các phần tử của dãy có giá trị ngẫu nhiên. Sự phân bốngẫu nhiên có thể được điều chỉnh là phân bố đều hay tuân theo một quy luật phân bốxác suất nào đó. Trong MATLAB có sẵn một số hàm cho phép khởi tạo ra một dãyngẫu nhiên theo phân bố đều và theo phân bố Gauss.g. Dãy tuần hoàn: Dãy tuần hoàn là một dãy có giá trị của các phần tử lặp lại tuầnhoàn sau một số mẫu nhất định.Dãy tuần hoàn thường được ký hiệu làvà được đọc là ‘x ngã’. Chúng ta có thểbiểu diễn một dãy với một số chu kỳ tuần hoàn trong MATLAB bằng cách đặt liêntiếp nhau một số hữu hạn các dãy xuất phát từ một dãy có chiều dài hữu hạn. Mỗi dãynày thể hiện một chu kỳ của dãy tuần hoàn.4. Một số lệnh và hàm của MATLAB :Phần này đưa ra danh mục các lệnh các hàm của MATLAB có thể sử dụng trong phầnthí nghiệm này. Để biết cụ thể hơn về chức năng của hàm và cú pháp của lệnh gọihàm, gõ lệnh help kèm theo tên của hàm tại cửa số lệnh của MATLAB.zeros: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 0.ones: tạo một ma trận với toàn bộ các phần tử có giá trị bằng 1.rand: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên được phân bố đềutrong khoảng từ 0 đến 1.randn: tạo một ma trận với các phần tử nhận các giá trị ngẫu nhiên theo phân bốGauss có giá trị trung bình bằng 0, phương sai bằng 1.min: trả về giá trị nhỏ nhất trong một ma trận.max: trả về giá trị lớn nhất trong một ma trận.fliplr: lộn ngược lại thứ tự các phần tử trong một ma trận theo hướng xuất phát từphải qua trái trở thành từ trái qua phải.plot và stem: vẽ đồ thị của một dãy số, plot để thể hiện dạng liên tục, stem để thể hiệndạng rời rạc, thường sử dụng hàm stem để vẽ tín hiệu ở miền n.conv: trả về tích chập của 2 vector.filter: trả về đáp ứng theo thời gian của hệ thống được mô tả bởi một phương trình saiphân tuyến tính hệ số hằng.Ngoài ra, sinh viên cần tìm hiểu một cách rất cẩn thận các phép toán trên ma trận vàvector trong phần trợ giúp (Help) của MATLAB bằng cách nhấn F1 rồi vào mụcMATLAB -> Getting Started -> Matrices and Arrays.5. Các bước thực hành1.1. Tạo các dãy xung đơn vị và dãy nhảy đơn vị theo chương trình mẫu bằng cáchgõ các dòng lệnh cho ở 2 bảng dưới đây vào cửa số soạn thảo (Editor) và ghi lại theocác tên tệp lần lượt là impseq.m và stepseq.m:Dãy xung đơn vị:function [x,n] = impseq(n0,n1,n2)%Tao ra day x(n) = delta(n-n0); n1 sym n;>> ztrans(0.5^n)ans =z/(z - 1/2)d.1.5Real1.510.5RadiansReal Part2100.5frequency in pi unitsAngle Part0.5100-0.2-0.2ImaginaryMagnitudeMagnitude Part2-0.4-0.6-0.800.5frequency in pi units100.5frequency in pi unitsImaginary Part100.5frequency in pi units1-0.4-0.6-0.81.15. Cho phổ:Viết chương trình thể hiện trên đồ thị các hàm phổ biên độ, phổ pha, phần thực vàphần ảo của X(ejω), tính tại 2001 điểm rời rạc trong khoảng [-2π,2π].w = [-1000:1:1000]*pi/500;X = exp(-j*w/2).*sin(3*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');Magnitude PartReal PartReal0.50.50-0.50-2Radians1-101frequency in pi unitsAngle Part-1-224120.5ImaginaryMagnitude10-2-4-2-101frequency in pi units2-101frequency in pi unitsImaginary Part2-101frequency in pi units20-0.5-1-21.16. Cho dãy x(n) có dạng như sau:Đây là một dãy số xác định trong một khoảng hữu hạn từ -1 đến 3.Tính và thể hiện phổ của dãy x(n) tại 501 điểm rời rạc trong khoảng [0,π] theochươngtrình mẫu bằng cách gõ các dòng lệnh theo bảng dưới đây vào cửa số soạnthảo (Editor)và ghi lại theo tên tệp Solution_1_16.n = -1:3; x = 1:5;k = 0:500; w = (pi/500)*k;X = x*(exp(-j*pi/500)).^(n'*k);magX = abs(X); angX = angle(X);realX = real(X); imagX = imag(X);%subplot(2,2,1); plot(k/500,magX); grid;title('Magnitude Part'); xlabel('frequency in pi units');ylabel('Magnitude');subplot(2,2,3); plot(k/500,angX); grid;title('Angle Part'); xlabel('frequency in pi units');ylabel('Radians');subplot(2,2,2); plot(k/500,realX); grid;title('Real Part'); xlabel('frequency in pi units');ylabel('Real');subplot(2,2,4); plot(k/500,imagX); grid;title('Imaginary Part'); xlabel('frequency in pi units');ylabel('Imaginary');Gõ lệnh Solution_1_16 tại cửa sổ lệnh của MATLAB để chạy kịch bản nói trên vàxem đồ thị.Magnitude PartReal Part151010RealMagnitude1550000.5frequency in pi unitsAngle Part-514ImaginaryRadians00.5frequency in pi unitsImaginary Part100.5frequency in pi units1520-2-4500.5frequency in pi units10-5-101.17. Cho dãy x(n)=rect7(n)Viết chương trình tính và thể hiện phổ của dãy x(n) tại 501điểm rời rạc trong khoảng[0,π] tương tự như bài 1.16.n = [0:6]; x =[1 1 1 1 1 1 1];k = 0:500; w = (pi/500)*k;X = x*(exp(-j*pi/500)).^(n'*k);magX = abs(X); angX = angle(X);realX = real(X); imagX = imag(X);%subplot(2,2,1); plot(k/500,magX); grid;title('Magnitude Part'); xlabel('frequency in pi units');ylabel('Magnitude');subplot(2,2,3); plot(k/500,angX); grid;title('Angle Part'); xlabel('frequency in pi units');ylabel('Radians');subplot(2,2,2); plot(k/500,realX); grid;title('Real Part'); xlabel('frequency in pi units');ylabel('Real');subplot(2,2,4); plot(k/500,imagX); grid;title('Imaginary Part'); xlabel('frequency in pi units');ylabel('Imaginary');Magnitude PartReal Part8105RealMagnitude6402000.5frequency in pi unitsAngle Part-51200.5frequency in pi unitsImaginary Part100.5frequency in pi units12ImaginaryRadians00-2-400.5frequency in pi units1-2-4-61.18. Một hàm ở miền Z được cho với công thức sau đây:Hàm số X(z) có thể viết dưới dạng tỷ số của hai đa thức theo z-1 như sau:a. Sử dụng lệnh residuez của MATLAB, tính các điểm cực, thặng dư tại các điểmcực theo chương trình mẫu bằng cách gõ các dòng lệnh theo bảng dưới đây vào cửasố soạn thảo (Editor) và ghi lại theo tên tệp Solution_1_18.b = [0 1]; a = [3 -4 1];[R,p,C] = residuez(b,a)%[b a] = residuez(R,p,C)Gõ lệnh Solution_1_18 tại cửa sổ lệnh của MATLAB để chạy kịch bản nói trên vàxem kết quả tính toán. Từ đó hãy viết dạng tổng các hàm phân thức đơn giản củaX(z).b. Từ kết quả câu trên, viết công thức khai triển X(z) thành tổng các phân thức đơngiản, từ đó tìm biến đổi Z ngược của X(z) trên miền sao cho x(n) là một dãy nhânquả.c. Kiểm chứng lại kết quả câu b bằng hàm iztransa.R=0.5000-0.5000p=1.00000.3333C=[]b=-0.00000.3333a=1.0000 -1.3333X ( z) =0.33330,50,50,50,5−=−−1−1−1(1 − z ) (1 − 0,3333z ) (1 − z ) (1 − 1 / 3 z −1 )b. x(n) = 0,5 u(n)-0,5*(1/3)n u(n).c. >> x=iztrans(0.5*z/(z-1))+iztrans(1.5*z/(3*z-1))x=(1/3)^n/2 + 1/21.19. Cho hàm X(z) với công thức như sau:X ( z) =1−1 2(1 − 0,9 z ) (1 − 0,9 z −1 )a. Viết chương trình tính các điểm cực, thặng dư của các điểm cực của hàm X(z)trên (gợi ý: có thể dùng hàm poly của MATLAB để khôi phục lại đa thức mẫu số từmột mảng các nghiệm của đa thức - mảng các điểm cực của X(z))b. Từ kết quả câu trên, viết công thức khai triển X(z) thành tổng các phân thức đơngiản, từ đó tìm biến đổi Z ngược của X(z) trên miền |z|>0,9.a.b = 1;a =poly([0.9 0.9 0.9]);[R,p,C] = residuez(b,a)%[b a] = residuez(R,p,C)R=0.0000 - 0.0000i-0.0000 + 0.0000i1.0000p=0.90000.9000 + 0.0000i0.9000 - 0.0000iC=[]b = 1.0000 - 0.0000i -0.0000 + 0.0000i 0.0000 - 0.0000ia = 1.0000 -2.7000 2.4300 -0.7290b.X ( z) =1(1 − 0,9 z −1 ) 3Với |z|>0,9 thì:x(n)= (9/10)^n+3/2*(9/10)^n*n+1/2*(9/10)^n*n^21.20. Cho hệ thống nhân quả biểu diễn bởi phương trình sau:y(n)-0,9y(n-1)=x(n)a. Tìm hàm truyền đạt của hệ thốngSau đó thực hiện các công việc sau:b. Dùng lệnh zplane của MATLAB biểu diễn trên đồ thị mặt phẳng Z sự phân bốcác điểm cực và điểm khôngb = [1 0]; a = [1 -0.9];% Tim phan bo diem cuc va diem khongsubplot(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 sosubplot(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');c. Dùng lệnh freqz tính và biểu diễn trên đồ thị hàm đáp ứng tần số H(e jω) của hệthống (bao gồm đáp ứng biên độ - tần số và đáp ứng pha - tần số) tại 200 điểm rờirạc trên đường tròn đơn vị theo chương trình mẫu bằng cách gõ các dòng lệnh theobảng trên vào cửa số soạn thảo (Editor) và ghi lại theo tên tệp Solution_1_20.Gõ lệnh Solution_1_20 tại cửa sổ lệnh của MATLAB để chạy kịch bản nói trên vàxem các đồ thị.a.[Y ( z ) 1 − 0,9 z−1] = X ( z)⇒ H ( z) =Y ( z)1=X ( z ) 1 − 0,9 z −1
Tài liệu liên quan
- Bài giảng xử lý tín hiệu số - Mở đầu
- 3
- 493
- 1
- Bài giải đề thi xử lý tín hiệu số by cung đình phú
- 30
- 3
- 5
- đề thi môn xử lý tín hiệu số điện tử viễn thông
- 20
- 865
- 1
- HƯỚNG DẪN THÍ NGHIỆM XỬ LÍ TÍN HIỆU SỐ
- 80
- 1
- 1
- ĐỀ THI MÔN XỬ LÝ TÍN HIỆU SỐ ĐỀ 5 pptx
- 10
- 511
- 1
- ĐỀ THI MÔN XỬ LÝ TÍN HIỆU SỐ ĐỀ 3 pptx
- 3
- 422
- 0
- Bài tập xử lý tín hiệu số có lời giải
- 7
- 977
- 19
- BÁO CÁO KHOA HỌC NGÀNH ĐIỆN TỬ VIỄN THÔNG về XÂY DỰNG CÁC BÀI THÍ NGHIỆM XỬ LÝ TÍN HIỆU SỐ TRÊN MATLAB ,Chủ nhiệm đề tài ThS. Nguyễn Văn Dƣơng
- 42
- 565
- 0
- Bài Giảng Xử Lý Ảnh Số - Hệ Thống Xử Lý Tín Hiệu Số 2 Chiều
- 15
- 290
- 0
- đề thi xử lý tín hiệu số K55 de a GK
- 4
- 235
- 1
Tài liệu bạn tìm kiếm đã sẵn sàng tải về
(222.25 KB - 30 trang) - thí nghiệm xử lý tín hiệu số Tải bản đầy đủ ngay ×Từ khóa » Tích Chập Trong Matlab
-
(PDF) THUCHANHDSP | Văn Phạm
-
Code Tính Tích Chập Trong Môn Xử Lý Tín Hiệu Số
-
Cách Tính Tích Chập Bằng Matlab
-
[PDF] Xử Lý Tín Hiệu Số,dhbkhn
-
Thi Nghiem Xlths - SlideShare
-
Convolution - Tích Chập Giải Thích Bằng Code Thực Tế - Techmaster
-
MÔ PHỎNG HỆ THỐNG VÀ TÍN HIỆU RỜI RẠC BẰNG MATLAB
-
[PDF] BÀI 1: CÁC TÍN HIỆU CƠ BẢN - TaiLieu.VN
-
Phép Tích Chập Trong Xử Lý Ảnh (Convolution) — Computer Vision
-
MATLAB | PDF - Scribd
-
Bài Tập-Matlab-moi | PDF - Scribd
-
Xử Lý Tín Hiệu Số Sử Dụng Matlab - Digital Signal Processing Using ...
-
Giáo Trình Xử Lý Tín Hiệu Nâng Cao