Báo cáo thực hành xử lý tín hiệu số

We’ve updated our privacy policy so that we are compliant with changing global privacy regulations and to provide you with insight into the limited ways in which we use your data.

You can read the details below. By accepting, you agree to the updated privacy policy.

Thank you!

View updated privacy policy

We've encountered a problem, please try again.

  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Nội dung Text: Báo cáo xử lý số tín hiệu

  1. Báo cáo xử lý số tín hiệu
  2. Báo cáo xử lý số tín hiệu ĐHBKHN BÀI 1. MÔ PHỎNG HỆ THỐNG VÀ TÍN HIỆU RỜI RẠC BẰNG MATLAB A. Tín hiệu và hệ thống rời rạc ở miền n 1.1. Viết chương trình con tạo một dãy thực ngẫu nhiên xuất phát từ n1 đến n2 và có giá trị của biên độ theo phân bố Gauss với trung bình bằng 0, phương sai bằng 1. Yêu cầu chương trình con có các tham s ố đầu vào và đầu ra được nhập theo câu lệnh với cú pháp: [x,n] = randnseq[n1,n2]; function [x,n] = randnseq[n1,n2] %Generates x[n] = a^n; n1
  3. Báo cáo xử lý số tín hiệu ĐHBKHN 1.4. Cho hệ thống được mô tả bởi phương trình sai phân tuyến tính hệ số hằng như sau: y[n] – y[n-1] + 0.9y[n-2] = x[n] Sử dụng hàm filter của MATLAB, viết chương trình thực hiện các công việc sau: a. Biểu diễn bằng đồ thị hàm đáp ứng xung đơn vị của hệ thống với -20 ≤ n ≤ 100 b. Biểu diễn bằng đồ thị dãy đáp ứng của hệ thống với -20 ≤ n ≤ 100 khi dãy đầu vào là dãy nhảy đơn vị. b = [1]; a = [1, -1, 0.9]; % x= impseq[0,-20,120]; n = [-20:120]; h= filter[b,a,x]; subplot[2,1,1]; stem[n,h]; title['Impulse Response']; xlabel['n']; ylabel['h[n]']; % x = stepseq[0,-20,120]; s = filter[b,a,x]; subplot[2,1,2]; stem[n,s]; title['Step Response']; xlabel['n']; ylabel['s[n]']; Page 2
  4. Báo cáo xử lý số tín hiệu ĐHBKHN B. Tín hiệu và hệ thống rời rạc ở miền Z, miền tần số liên tục ω, và miền tần số rời rạc k 1.5. Cho dãy x[n]=0.5nu[n] a. Dựa trên định nghĩa của biến đổi Z, tìm biến đổi Z của dãy trên b. Kiểm chứng lại kết quả câu a bằng hàm ztrans c. Từ kết quả trên, tìm biến đổi Fourier của x[n] Dùng MATLAB thể hiện trên đồ thị phổ X[ejω] tại 501 điểm rời rạc trong khoảng [0,π] %Bien doi Z cua day syms n; ztrans[0.5^n] ans = 2*z/[2*z-1] %Do thi pho 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']; 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']; Page 3
  5. Báo cáo xử lý số tín hiệu ĐHBKHN 1.6. Cho dãy: x[n] = {..,0,0,1,2,3,4,5,0,0,....} Đây là một dãy số xác định trong một khoảng hữu hạn từ -1 đến 3. Dựa trên công thức định nghĩa của biến đổi Fourier, 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,π] 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']; Page 4
  6. Báo cáo xử lý số tín hiệu ĐHBKHN 1.7. 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ểm cực 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 đơn giản, từ đó tìm biến đổi Z ngược của X[z], cho biết x[n] là một dãy nhân quả c. Kiểm chứng lại kết quả câu b bằng hàm iztrans %Tinh cac diem cuc, thang du tai cac diem cuc b = [0 1]; a = [3 -4 1]; [R,p,C] = residuez[b,a] % [b a] = residuez[R,p,C] R= 0.5000 -0.5000 p= 1.0000 0.3333 C= [] b= -0.0000 0.3333 a= 1.0000 -1.3333 0.3333 Page 5
  7. Báo cáo xử lý số tín hiệu ĐHBKHN %Bien doi Z nguoc cua ham syms z iztrans[z/[3*z^2-4*z+1]] ans = 1/2-1/2*[1/3]^n 1.8. Cho hàm X[z] với công thức như sau: 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 đơn giản, từ đó tìm biến đổi Z ngược của X[z] trên miền |z| > 0,9 %Tinh cac diem cuc, thang du tai cac diem cuc b=1 a = poly[[0.9 0.9 -0.9]] [R,p,C] = residuez[b,a] b= 1 a= 1.0000 -0.9000 -0.8100 0.7290 R= 0.2500 0.5000 0.2500 p= 0.9000 0.9000 -0.9000 C= [] [b a] = residuez[R,p,C] b= 1.0000 -0.0000 0.0000 a= 1.0000 -0.9000 -0.8100 0.7290 %Bien doi Z nguoc syms z iztrans[1/[[1-0.9/z]^2]*[1+0.9/z]] ans = [9/10]^n+2*[9/10]^n*n 1.9. 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ống Sau đó 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ông c. Dùng lệnh freqz tính và biểu diễn trên đồ thị hàm đáp ứng tần số H[ejω] 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ời rạc trên đường tròn đơn vị b = [1 0]; a = [1 -0.9]; Page 6
  8. Báo cáo xử lý số tín hiệu ĐHBKHN % 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']; 1.10. Tạo các hàm thực hiện việc biến đổi Fourier rời rạc thuận [đặt tên là hàm dft] và Fourier r ời rạc ngược [đặt tên là hàm idft]. Dựa trên các hàm dft được xây dựng ở trên, tìm biến đổi Fourier rời rạc của dãy có chiều dài N=20: %Luu vao file 'dft.m' function [Xk] = dft[xn,N] % Tim bien doi Fourier roi rac thuan % --------------------------------------- % [Xk] = dft[xn,N] Page 7
  9. Báo cáo xử lý số tín hiệu ĐHBKHN % Xk = day cac he so DFT tren doan 0
  10. Báo cáo xử lý số tín hiệu ĐHBKHN BÀI 2.THIẾT KẾ BỘ LỌC SỐ BẰNG MATLAB A. Thiết kế bộ lọc có đáp ứng xung chiều dài hữ u hạn [bộ lọc số FIR] 2.1. Tạo các hàm thể hiện độ lớn của đáp ứng tần số các bộ lọc FIR loại 1 từ dãy đáp ứng xung của chúng ghi lại theo tên tệp là Hr_Type1.m: function [Hr,w,a,L] = Hr_Type1[h] % Tinh ham do lon cua dap ung tan so Hr[w] % bo loc FIR loai 1 % --------------------------------------------------- % [Hr,w,a,L] = Hr_Type1[h] % Hr = Do lon % w = Vector tan so trong khoang [0 pi] % a = Cac he so cua bo loc FIR loai 1 % L = Bac cua bo loc % h = Dap ung xung cua bo loc FIR loai 1 % M = length[h]; L = [M-1]/2; a = [h[L+1] 2*h[L:-1:1]]; n = [0:1:L]; w = [0:1:500]'*pi/500; Hr = cos[w*n]*a'; 2.2. Viết chương trình tính hàm đ ộ lớn của đáp ứng tần số bộ lọc FIR loại 2, FIR loại 3 và bộ lọc FIR loạ i 4 với các tham s ố đầu vào và đầu ra được nhập theo các câu lệnh: Page 9
  11. Báo cáo xử lý số tín hiệu ĐHBKHN 1. FIR loại 2[Hr_Type2.m] function [Hr,w,b,L] = Hr_Type2[h] % Tinh ham do lon cua dap ung tan so Hr[w] % bo loc FIR loai 2 % --------------------------------------------------- % [Hr,w,a,L] = Hr_Type2[h] % Hr = Do lon % w = Vector tan so tron khoang [0 pi] % b = Cac he so cua bo loc FIR loai 2 % L = Bac cua bo loc % h = Dap ung xung cua bo loc FIR loai 2 % M = length[h]; L = M/2; b = 2*h[L:-1:1]; n = [1:1:L]; n = n-0.5; w = [0:1:500]'*pi/500; Hr = cos[w*n]*b'; 2. FIR loại 3[Hr_Type3.m] function [Hr,w,c,L] = Hr_Type3[h] % Tinh ham do lon cua dap ung tan so Hr[w] % bo loc FIR loai 3 % --------------------------------------------------- % [Hr,w,c,L] = Hr_Type3[h] % Hr = Do lon % w = Vector tan so tron khoang [0 pi] % c = Cac he so cua bo loc FIR loai 3 % L = Bac cua bo loc % h = Dap ung xung cua bo loc FIR loai 3 % M = length[h]; L = [M-1]/2; c = 2*h[L+1:-1:1]; n = [0:1:L]; w = [0:1:500]'*pi/500; Hr = sin[w*n]*c'; 3. FIR loại 4[Hr_Type4.m] function [Hr,w,d,L] = Hr_Type4[h] % Tinh ham do lon cua dap ung tan so Hr[w] % bo loc FIR loai 4 % --------------------------------------------------- % [Hr,w,d,L] = Hr_Type4[h] % Hr = Do lon % w = Vector tan so tron khoang [0 pi] % d = Cac he so cua bo loc FIR loa i 4 % L = Bac cua bo loc % h = Dap ung xung cua bo loc FIR loai 4 % M = length[h]; L = M/2; d = 2*h[L:-1:1]; n = [1:1:L]; n = n-0.5; Page 10
  12. Báo cáo xử lý số tín hiệu ĐHBKHN w = [0:1:500]'*pi/500; Hr = sin[w*n]*d'; 2.3. Cho bộ lọc FIR với đáp ứng xung như sau: h[n] = {-4,1,-1,-2,5,6,5,-1,-2,1,-4} a. Xác định loại của bộ lọc. Tính và biểu diễn trên đồ thị: b. Dãy đáp ứng xung của bộ lọc c. Các hệ số của bộ lọc d. Hàm độ lớn của đáp ứng tần số e. Phân bố điểm cực và điểm không h = [-4,1,-1,-2,5,6,5,-1,-2,1,-4]; M = length[h]; n =0:M-1; [Hr,w,a,L] = Hr_Type1[h]; a, L amax = max[a]+1; amin = min[a]-1; % subplot[2,2,1]; stem[n,h]; axis[[-1,2*L+1,amin,amax]]; title['Impulse Response']; xlabel['n']; ylabel['h[n]']; % subplot[2,2,3]; stem[0:L,a]; axis[[-1,2*L+1,amin,amax]]; title['a[n] coefficients']; xlabel['n']; ylabel['a[n]']; % subplot[2,2,2]; plot[w/pi,Hr]; grid; title['Type-1 Amplitude Response']; xlabel['frequency in pi units']; ylabel['Hr']; % subplot[2,2,4]; zplane[h,1]; Page 11
  13. Báo cáo xử lý số tín hiệu ĐHBKHN Impulse Response Type-1 Amplitude Response 20 10 10 5 h[n] Hr 0 0 -10 -5 -20 0 5 10 0 0.5 1 n frequency in pi units a[n] coefficients 10 1 Imaginary Part 5 0.5 10 a[n] 0 0 -0.5 -5 -1 0 5 10 -1 0 1 n Real Part 2.4. Cho bộ lọc FIR với đáp ứng xung như sau: h[n] = {-4,1,-1,-2,5,6,-6,-5,1,2,-1,4} a. Xác định loại của bộ lọc. Tính và biểu diễn trên đồ thị: b. Dãy đáp ứng xung của bộ lọc c. Các hệ số của bộ lọc d. Hàm độ lớn của đáp ứng tần số e. Phân bố điểm cực và điểm không h = [-4,1,-1,-2,5,6,-6,-5,1,2,-1,4]; M = length[h]; n =0:M-1; [Hr,w,d,L] = Hr_Type4[h]; d, L dmax = max[d]+1; dmin = min[d]-1; % subplot[2,2,1]; stem[n,h]; axis[[-1,2*L+1,dmin,dmax]]; title['Impulse Response']; xlabel['n']; ylabel['h[n]']; % subplot[2,2,3]; stem[1:L,d]; axis[[-1,2*L+1,dmin,dmax]]; title['d[n] coefficients']; xlabel['n']; ylabel['d[n]']; % subplot[2,2,2]; plot[w/pi,Hr]; grid; title['Type-4 Amplitude Response']; xlabel['frequency in pi units']; ylabel['Hr']; % subplot[2,2,4]; zplane[h,1]; Page 12
  14. Báo cáo xử lý số tín hiệu ĐHBKHN Impulse Response Type-4 Amplitude Response 30 10 20 5 h[n] Hr 10 0 0 -5 -10 0 5 10 0 0.5 1 n frequency in pi units d[n] coefficients 10 1 Imaginary Part 0.5 5 11 d[n] 0 0 -0.5 -5 -1 0 5 10 -1 0 1 n Real Part 2.5. Thiết kế bộ lọc thông thấp theo phương pháp cửa số với các tham số đầu vào như sau: ωp = 0.2π, Rp = 0.25dB ωs = 0.3π, As = 50dB Tính và biểu diễn trên đồ thị: a. Dãy đáp ứng xung của bộ lọc lý tưởng b. Dãy hàm cửa sổ Hamming c. Hàm độ lớn tuyệt đối của đáp ứng tần số d. Hàm độ lớn tương đối tính theo dB của đáp ứng tần số wp = 0.2*pi; ws =0.3*pi; tr_width = ws - wp; M = ceil[6.6*pi/tr_width] + 1 n = [0:1:M-1]; wc = [ws+wp]/2; hd = ideal_lp[wc,M]; w_ham = [hamming[M]]'; h = hd .* w_ham; [db,mag,pha,grd,w] = freqz_m[h,[1]]; delta_w = 2*pi/1000; Rp = -[min[db[1:1:wp/delta_w+1]]] As = -round[max[db[ws/delta_w+1:1:501]]] %plot subplot[2,2,1]; stem[n,hd]; axis[[0,M-1,-0.1,0.3]]; title['Ideal Impulse Response']; xlabel['n']; ylabel['hd[n]']; % subplot[2,2,2]; stem[n,w_ham]; axis[[0,M-1,0,1.1]]; Page 13
  15. Báo cáo xử lý số tín hiệu ĐHBKHN title['Hamming Window']; xlabel['n']; ylabel['w[n]']; % subplot[2,2,3]; stem[n,h]; axis[[0,M-1,-0.1,0.3]]; title['Actual Impulse Response']; xlabel['n']; ylabel['h[n]']; % subplot[2,2,4]; plot[w/pi,db]; grid; axis[[0,1,-100,10]]; title['Magnitude Response in dB']; xlabel['frequency in pi units']; ylabel['Decibels']; Ideal Impulse Response Hamming Window 0.3 1 0.2 0.8 hd[n] 0.6 w[n] 0.1 0.4 0 0.2 -0.1 0 0 20 40 60 0 20 40 60 n n Actual Impulse Response Magnitude Response in dB 0.3 0 0.2 -20 Decibels -40 h[n] 0.1 -60 0 -80 -0.1 -100 0 20 40 60 0 0.2 0.4 0.6 0.8 1 n frequency in pi units 2.6. Thiết kế bộ lọc thông thấp theo phương pháp lấy mẫu tần số với các tham số đầu vào như sau: ωp = 0.2π, Rp = 0.25dB ωs = 0.3π, As = 50dB Giả sử rằng ta chọn đáp ứng xung có chiều dài 60 tương đương với lấ y 60 mẫu tần số trong khoảng [0,2π]. Dải thông có độ rộng là 0,2π tương đương với 7 mẫu nhận giá trị 1. Giả sử tiếp rằng quá trình tối ưu hoá chỉ ra nên chọn dải chuyển tiếp 2 mẫu nhậ n các giá trị T1 = 0,5925 và T2 = 0,1099. Vậy dãy mẫu các tần số được cho như sau: Tính và biểu diễn trên đồ thị: Page 14
  16. Báo cáo xử lý số tín hiệu ĐHBKHN Dãy các mẫu tần số a. b. Dãy đáp ứng xung của bộ lọc thực tế c. Hàm độ lớn tuyệt đối của đáp ứng tần số d. Hàm độ lớn tương đối tính theo dB của đáp ứng tần số M = 60; alpha = [M-1]/2; l = 0:M-1; wl = [2*pi/M]*l; Hrs = [ones[1,7],0.5925,0.1099,zeros[1,43],0.1099,0.5925,ones[1,6]]; %Ideal Amp Res sampled Hdr = [1,1,0,0]; wdl = [0,0.2,0.3,1]; %Ideal Amp Res for plotting k1 = 0:floor[[M-1]/2]; k2 = floor[[M-1]/2]+1:M-1; angH = [-alpha*[2*pi]/M*k1, alpha*[2*pi]/M*[M-k2]]; H = Hrs.*exp[j*angH]; h = real[ifft[H,M]]; [db,mag,pha,grd,w] = freqz_m[h,1]; [Hr,ww,a,L] = Hr_Type2[h]; %plot subplot[2,2,1]; plot[wl[1:31]/pi,Hrs[1:31],'o',wdl,Hdr]; axis[[0,1,-0.1,1.1]]; title['Frequency Samples: M=40, T2 = 0.5925, T1 = 0.1099']; xlabel['frequency in pi units']; ylabel['Hr[k]']; % subplot[2,2,2]; stem[l,h]; axis[[-1,M,-0.1,0.3]]; title['Impulse Response']; xlabel['n']; ylabel['h[n]']; % subplot[2,2,3]; plot[ww/pi,Hr,wl[1:31]/pi,Hrs[1:31],'o']; axis[[0,1,-0.2,1.2]]; title['Amplitude Response']; xlabel['frequency in pi units']; ylabel['Hr[w]']; % subplot[2,2,4]; plot[w/pi,db]; axis[[0,1,-100,10]]; grid title['Magnitude Response']; xlabel['frequency in pi units']; ylabel['Decibels']; Page 15
  17. Báo cáo xử lý số tín hiệu ĐHBKHN Frequency Samples: M=40, T2 = 0.5925, T1 = 0.1099 Impulse Response 0.3 1 0.2 0.8 0.6 Hr[k] h[n] 0.1 0.4 0.2 0 0 -0.1 0 0.5 1 0 20 40 60 frequency in pi units n Amplitude Response Magnitude Response 0 1 -20 Decibels Hr[w] -40 0.5 -60 -80 0 -100 0 0.5 1 0 0.5 1 frequency in pi units frequency in pi units 2.7. Thiết kế bộ lọc thông thấp theo phương pháp lặp [thuật toán của Parks và McClellan] với các tham số đầu vào như sau: ωp = 0.2π, Rp = 0.25dB ωs = 0.3π, As = 50dB Trước tiên xuất phát từ độ dài của dãy đáp ứng M theo công thức: Lặp công việc tìm bộ lọc tối ưu theo nghĩa Chebyshev [dùng lệnh firpm] và tăng M sau mỗi lần lặp để tìm ra bộ lọc thoả mãn yêu cầu thiết kế, sau đó tính và biểu diễn trên đồ thị: a. Dãy đáp ứng xung của bộ lọc thực tế b. Hàm độ lớn tuyệt đối của đáp ứng tần số c. Hàm độ lớn tương đối tính theo dB của đáp ứng tần số d. Hàm sai số E[ω] wp = 0.2*pi; ws =0.3*pi; Rp = 0.25; As = 50; delta_w = 2*pi/1000; wsi = ws/delta_w+1; delta1 = [10^[Rp/20]-1]/[10^[Rp/20]+1]; delta2 = [1+delta1]*[10^[-As/20]]; deltaH = max[delta1,delta2]; deltaL = min[delta1,delta2]; weights = [delta2/delta1 1]; deltaf = [ws-wp]/[2*pi]; M = ceil[[-20*log10[sqrt[delta1*delta2]]-13]/[14.6*deltaf]+1] f = [0 wp/pi ws/pi 1]; m = [1 1 0 0]; h = firpm[M-1,f,m,weights]; [db,mag,pha,grd,w] = freqz_m[h,[1]]; Page 16
  18. Báo cáo xử lý số tín hiệu ĐHBKHN Asd = -max[db[wsi:1:501]] % while Asd
  19. Báo cáo xử lý số tín hiệu ĐHBKHN B. Thiết kế bộ lọc có đáp ứ ng xung chiều dài vô hạn [bộ lọc số IIR] 2.8. Thiết kế bộ lọc thông thấp tương tự, định dạ ng Chebyshev-I, cửa số với các tham số đầu vào như sau: ωp = 0.2π, Rp = 1dB ωs = 0.3π, As = 16dB Viết chương trình tính và biểu diễn trên đồ thị: a. Độ lớn của đáp ứng tần số b. Hàm đáp ứng pha của bộ lọc c. Hàm độ lớn tương đối tính theo dB của đáp ứng tần số d. Hàm đáp ứng xung của bộ lọc tương tự Wp = 0.2*pi; Ws =0.3*pi; Rp = 1; As = 16; Ripple = 10^[-Rp/20]; Attn = 10^[-As/20]; % Analog filter design: [b,a] = afd_chb1[Wp,Ws,Rp,As]; % Calculation of Frequency Response: [db,mag,pha,w] = freqs_m[b,a,0.5*pi]; % Calculation of Impulse response: [ha,x,t] = impulse[b,a]; %plot subplot[2,2,1]; plot[w/pi,mag]; grid; axis[[0,0.5,-0.1,1.1]]; title['Magnitude Response']; xlabel['frequency in pi units']; ylabel['Hr[w]']; % subplot[2,2,2]; plot[w/pi,db]; grid; axis[[0,0.5,-40,5]]; title['Magnitude Response in dB']; Page 18
  20. Báo cáo xử lý số tín hiệu ĐHBKHN xlabel['frequency in pi units']; ylabel['Decibels']; % subplot[2,2,3]; plot[w/pi,pha/pi]; grid; axis[[0,0.5,-1.0,1.0]]; title['Phase Response']; xlabel['frequency in pi units']; ylabel['radians']; % subplot[2,2,4]; plot[t,ha]; grid; axis[[0,50,-0.10,0.25]]; title['Impulse Response']; xlabel['time in seconds']; ylabel['ha[t]']; Magnitude Response Magnitude Response in dB 1 0 0.8 -10 Decibels 0.6 Hr[w] -20 0.4 0.2 -30 0 -40 0 0.1 0.2 0.3 0.4 0 0.1 0.2 0.3 0.4 frequency in pi units frequency in pi units Phase Response Impulse Response 1 0.2 0.5 radians 0.1 ha[t] 0 0 -0.5 -1 -0.1 0 0.1 0.2 0.3 0.4 0 10 20 30 40 50 frequency in pi units time in seconds 2.9. Chuyển đổi bộ lọc với các tham số đã cho ở phầ n 2.16 sang bộ lọc số bằng phương pháp biến đổi song tuyến. Hàm bilinear cho phép thực hiện việc chuyển đổi này. Tính và biểu diễn trên đồ thị: a. Độ lớn của đáp ứng tần số b. Hàm đáp ứng pha của bộ lọc c. Hàm độ lớn tương đối tính theo dB của đáp ứng tần số d. Trễ nhóm theo tần số. % Digital Filter Specification: wp =0.2*pi; % digital Passband freq in Hz ws =0.3*pi; % digital Stopband freq in Hz Rp = 1; % Passband ripple in dB As = 15; % Stopband attenuation in dB % Analog prototype Specification: Inverse mapping for frequencies T = 1; Fs =1/T; % Set T=1 OmegaP = [2/T]*tan[wp/2]; % Prewarp Prototype Passband freq OmegaS = [2/T]*tan[ws/2]; % Prewarp Prototype Stopband freq % Analog Chebyshev-1 Prototype Filter Calculation: Page 19

65 tài liệu

2359 lượt tải

    Chủ Đề