1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn thông tin di động Thiết kế mạch lọc số IIR, và đưa ra các hệ số bộ lọc

47 22 1

Đ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

Định dạng
Số trang 47
Dung lượng 1,41 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN MÔN THÔNG TIN DI ĐỘNG ĐỀ TÀI Thiết kế mạch lọc số IIR, và đưa ra các hệ số bộ lọc Giảng viên hướng dẫn PGS TS Nguyễn Văn Đức.

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN MÔN THÔNG TIN DI ĐỘNG ĐỀ TÀI: Thiết kế mạch lọc số IIR, đưa hệ số lọc Giảng viên hướng dẫn: PGS.TS Nguyễn Văn Đức Mã lớp học: 129296 Nhóm sinh viên Nhóm Phạm Thị Lan 20182630 Lại Văn Đức 20172475 Trần Văn Đạt 20172453 LỜI NÓI ĐẦU Tài liệu Nhóm sinh viên soạn thảo q trình làm tập lớn cho mơn học Thông tin di động hướng dẫn PGS.TS Nguyễn Văn Đức Do tài liệu soạn thảo trình học tập tìm hiểu nên có nhiều điểm sai sót, mong quý thầy bạn đọc thơng cảm góp ý thêm để tài liệu trở nên đắn LỜI CAM ĐOAN Những người soạn thảo tài liệu xin cam đoan tài liệu không sử dụng để làm tập lớn đồ án cho môn học khác Cùng với đảm bảo tài liệu chúng tơi soạn thảo dựa vào tài liệu tham khảo khơng chép nhóm sinh viên khác MỤC LỤC DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT i DANH MỤC HÌNH VẼ ii DANH MỤC BẢNG BIỂU .iii TÓM TẮT iv CHƯƠNG TỔNG QUAN VỀ BỘ LỌC SỐ 1.1 Tín hiệu số hệ thống xử lý tín hiệu số .1 1.1.1 Khái niệm tín hiệu hệ xử lý tín hiệu .1 1.1.2 Hệ thống xử lý số 1.2 Tổng quan lọc số 1.2.1 Khái niệm lọc số lọc số 1.2.2 Ứng dụng lọc số .2 1.2.3 Phân loại lọc số 1.2.4 Đặc tuyến tần số lọc số lý tưởng 1.2.5 Đặc tuyến tần số lọc thực tế 1.2.6 Các tham số lọc thực tế .3 CHƯƠNG Phương pháp thiết kế lọc số có đáp ứng xung chiều dài vô hạn IIR từ lọc tương tự sử dụng công cụ matlab .4 2.1 Giới thiệu Matlab 2.2 Giới thiệu lọc IIR 2.3 Các lọc tương tự .5 2.3.1 Bộ lọc Buterworth 2.3.2 Bộ lọc Chebyshev 2.3.3 Bộ lọc Elliptic .11 2.3.4 Các đáp ứng pha lọc điển hình 12 2.4 Chuyển đổi lọc .13 2.4.1 Phương pháp bất biến xung (Impulse Invariance Transformation) 13 2.4.2 Phương pháp biến đổi song tuyến (Bilinear Transformation) 14 2.4.3 Phương pháp tương đương vi phân (Approximation of Derivatives Transformation) .16 2.5 Chuyển đổi băng tần số 16 2.6 Các bước tính tốn tổng hợp lọc số IIR 19 CHƯƠNG MÔ PHỎNG TRÊN MATLAB VÀ ỨNG DỤNG TRÊN FPGA DẢI TẦN (0-20kHz) 20 3.1 Yêu cầu kỹ thuật 20 3.2 Thực mô Matlab 20 3.2.1 Các hàm sử dụng 20 3.2.2 Chương trình .22 3.2.3 Kết 24 3.3 Tổng quan FPGA 26 3.3.1 Giới thiệu FPGA 26 3.3.2 Kiến trúc chung FPGA 27 3.3.3 Khối logic lập trình 27 3.4 Ngơn ngữ lập trình Verilog 28 3.5 Sơ đồ thuật toán - Low Pass filter - IIR .29 3.5.1 Khối IIR 29 3.5.2 Kết 30 KẾT LUẬN 31 Chỉ tiêu kỹ thuật: 31 Chất lượng thực tế 31 Kết luận .31 TÀI LIỆU THAM KHẢO 33 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT IIR Infinite impulse response FIR Finite impulse response FPGA Field Programmable Gate Array DANH MỤC HÌNH VẼ Hình 1.1 Sơ đồ mơ tả hệ xử lý số miền thời gian rời rạc n Hình 1.2 Sơ đồ khối lọc số miền thời gian rời rạc Hình 1.3 Đặc tính biên độ tần số lọc thông thấp thực tế Hình 2.1 Sơ đồ thiết kế lọc IIR cách .5 Hình 2.2 Sơ đồ thiết kế lọc IIR cách .5 Hình 2.3 Đáp ứng biên độ chuẩn hóa lọc Butterworth thơng thấp Hình 2.4 Chebyshev loại có bậc lẻ (trong trường hợp N = 5) Với bậc chẵn, đáp ứng bắt đầu mức thấp sau vài dao động, đạt đến mức cao trước rơi nhanh 10 Hình 2.5 Bình phương đáp ứng biên độ lọc thông thấp Chebyshev-2 11 Hình 2.6 Hai dạng đồ thị đáp ứng bình phương-biên độ (N lẻ N chẵn) 12 Hình 2.7 Chuyển đổi từ mặt phẳng s sang mặt phẳng z phườn pháp song tuyến .15 Hình 2.8 Các thơng số kỹ thuật lọc chọn tần 17 Hình 3.1 Cấu trúc tổng thể FPGA .27 Hình 3.2 Sơ đồ khối lọc IIR 29 DANH MỤC BẢNG BIỂU Bảng Bảng chuyển đổi băng tần số 18 TĨM TẮT Tín hiệu xuất tất ngành khoa học kỹ thuật, ví dụ âm học, sinh học, thơng tin liên lạc, hệ thống điều khiển, rada, vật lý học, địa chất học khí tượng học Có hai dạng tín hiệu biết đến Đó tín hiệu liên tục theo thời gian tín hiệu rời rạc theo thời gian Một tín hiệu rời rạc, tín hiệu liên tục, biểu diễn hàm tần số biết đến phổ tần tín hiệu Lọc số q trình mà phổ tần tín hiệu bị thay đổi, biến dạng tùy thuộc vào số đặc tính mong muốn Nó dẫn đến khuếch đại suy giảm dải tần số, bỏ cô lập thành phần tần số cụ thể,… Sử dụng lọc số có nhiều tác dụng, ví dụ như: Để loại thành phần tín hiệu khơng mong muốn nhiễu, loại bỏ méo xuyên kênh truyền dẫn sai lệch đo lường, để phân tách hai nhiều tín hiệu riêng biệt trộn lẫn theo chủ định nhằm cực đại hóa sử dụng kênh truyền, để phân tích tín hiệu thành phần tần số chúng, để nén tín hiệu, để truyền tín hiệu rời rạc theo thời gian sang tín hiệu liên tục theo thời gian Bộ lọc số hệ thống số sử dụng để lọc tín hiệu rời rạc theo thời gian Có nhiều phương pháp để nghiên cứu, tổng hợp thiết kế lọc số, điển hình hai phương pháp thiết kế lọc số có đáp ứng xung hữu hạn (FIR) phương pháp thiết kế lọc số có đáp ứng xung vơ hạn (IIR) Bản báo cáo tập lớn rình bày phương pháp thiết kế lọc số có đáp ứng xung vơ hạn (IIR) ứng dụng FPGA Trong trình thực lượng kiến thức hạn chế thời gian ngắn nên chúng em cịn nhiều thiếu sót mong thầy bạn sinh viên đóng góp ý kiến để đồ án của chúng em hoàn thiện Chúng em xin chân thành cảm ơn! p = p*Omegac; k = k*Omegac^N; B = real(poly(z)); b0 = k; b = k*B; a = real(poly(p)); 3.2.2 Chương trình clear all close all clc %% Nhap cac thơng so ky thuat Fs = 100000; T = 1/Fs; fpass=input('Nhap tan so lowpass: fpass = '); f_pass=fpass/Fs; fprintf('\n -> Dai : [%.1f,%.1f]Hz\n',0,fpass); wp = f_pass*2*pi; ws = (wp/pi+0.1)*pi; fprintf('\n -> wp/pi va ws/pi : [%.1f,%.1f]\n',wp/pi,ws/pi); %% lowpass %% f_stop = ws*Fs/2/pi; As = input('\n - Suy hao dai chan As(dB) = '); Rp = input('\n - Do gon song dai thong Rp(dB) = '); OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2); [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As); %% Chuyen doi bo loc %% [b,a] = bilinear(cs,ds,Fs) [db,mag,pha,grd,w]=freqz_m(b,a); [C,B,A]=dir2cas(b,a) delta_w=pi/500; Asd=floor(-max(db(ws/delta_w+1:500))); Rpd=-min(db(1:wp/delta_w+1)); %% Dap ung xung [ha,x,t] = impulse(cs,ds); [delta,n] = impseq(0,0,50); h=filter(b,a,delta); %% Input %% nth = 0:1/Fs:2; f1=15000; f2=20000; f3=26000; f4=30000; TH1 = 2*sin(2*pi*f1*nth); TH2 = 2*cos(2*pi*f2*nth); TH3 = 2*sin(2*pi*f3*nth); TH4 = 2*cos(2*pi*f4*nth); TH = TH1+TH2+TH3+TH4; %% Loc y = filter(b,a,TH); % y tín hi?u %% Phan tich tin hieu spec_in=abs(fft(TH,512)); spec_in = spec_in(1:257); % ch? l?y n?a spec_out=abs(fft(y,512)); spec_out = spec_out(1:257); f = Fs*(0:256)/512; %% figure(1); subplot(2,2,1); plot(w/pi,mag,'Linewidth',2);grid title('Magnitude Response','fontsize',12); ylabel('|H|'); xlabel('w/pi'); axis([0 -0.1 1.1]); set(gca,'XTickMode','manual','XTick',[0;wp/pi;ws/pi;1]); set(gca,'YTickMode','manual','YTick',[0;1]); subplot(2,2,2); plot(w/pi,db,'Linewidth',2);grid ; title('Magnitude in dB','fontsize',12); ylabel('Decibels'); xlabel('w/pi'); axis([0 -Asd-3 2]); set(gca,'XTickMode','manual','XTick',[0;wp/pi;ws/pi;1]); set(gca,'YTickMode','manual','YTick',[-Asd;0]); subplot(2,2,3); plot(t,ha,'Linewidth',2);grid; title('Impulse Response Analog','fontsize',12); axis([0 25*T floor(min(ha))-50 ceil(max(ha))+50]); subplot(2,2,4) stem(n,h,'Linewidth',1.2);grid title('Impulse Response Digital','fontsize',12); axis([0 50 -0.5 0.5]); figure(2) freqz(b,a); %Ve dap ung bien va dap ung pha cua so %% Tin hieu vao figure(3) Sam = 500; subplot(2,2,1) plot(nth(1:Sam),TH(1:Sam)); title('Input Signal','fontsize',10); axis([0 nth(Sam) min(TH)-0.5 max(TH)+0.5]); subplot(2,2,2) plot(nth(1:Sam),y(1:Sam)); title('Output Signal','fontsize',10); axis([0 nth(Sam) min(TH)-0.5 max(TH)+0.5]); %% Ve tin hieu subplot(2,2,3) plot(f,spec_in);%grid title('Spectrum of the Input Signal','fontsize',10); xlabel('Frequency (Hz)'); ylabel('Magnitude'); axis([0 Fs/2 -1 max(spec_in)+2]); set(gca,'XTickMode','manual','XTick',[0;f1;f2;f3;f4;Fs/2]); subplot(2,2,4) plot(f,spec_out);%grid title('Spectrum of the Output Signal','fontsize',10); xlabel('Frequency (Hz)'); ylabel('Magnitude'); axis([0 Fs/2 -1 max(spec_in)+2]); set(gca,'XTickMode','manual','XTick',[0;f1;f2;f3;f4;Fs/2]); 3.2.3 Kết Nhap tan so lowpass: fpass = 20000 -> Dai : [0.0,20000.0]Hz -> wp/pi va ws/pi : [0.4,0.5] - Suy hao dai chan As(dB) = 15 - Do gon song dai thong Rp(dB) = *** Butterworth Filter Order = b= 0.0034 0.0270 0.0945 0.1891 0.2364 0.1891 0.0945 0.0270 0.0034 0.0510 -0.0071 0.0005 a= 1.0000 -1.1788 1.6223 -1.0188 0.5911 -0.1958 C= 0.0034 B= 1.0000 2.0535 1.0543 1.0000 2.0217 1.0225 1.0000 1.9777 0.9785 1.0000 1.9472 0.9480 1.0000 -0.2362 0.0234 1.0000 -0.2551 0.1056 1.0000 -0.2996 0.2982 1.0000 -0.3879 0.6809 A= Nhận xét:   Ta tính tần số cắt lọc Quan sát phổ tín hiệu, ta thấy đầu vào tổ hợp gồm thành phần có tần số 15kHz, 20kHz, 26kHz, 30kHz Bộ lọc thơng thấp có tần số cắt nên cho tín hiệu có tần số 15kHz 20kHz qua, hai tín hiệu cịn lại bị chặn, ta dễ dàng thấy điều qua phổ tín hiệu đầu 3.3 Tổng quan FPGA 3.3.1 Giới thiệu FPGA FPGA viết tắt "Field Programmable Gate Array", vi mạch dùng cấu trúc mảng phần tử logic mà người dùng lập trình được, thực tính logic thơng qua máy tính với giá rẻ, xóa viết lại nhiều lần Xilinx công ty bán FPGA chiếm thị phần lớn Ngồi cịn có Alterna, Lattice, Actel, QuickLogic Nhiều nhà sản xuất cung cấp nhiều cấu trúc phương pháp xử lý khác Vì vậy, việc chọn cấu trúc phương pháp xử lý để đáp ứng yêu cầu chức độ ổn định, hệ thống thực tế vấn đề mang tính định Thiết bị logic lập trình được phát minh lần đầu vào cuối thập kỷ 1970 trở lên phổ biến ngành công nghiệp bán dẫn Ngồi khả lập trình đa dạng, cơng nghệ cịn có thời gian sản xuất nhỏ nên có khả cạnh tranh thương mại lớn Hơn nữa, việc thiết kế với dễ dàng có khả lập trình lại nhiều lần FPGA thiết kế đầu tiêm Ross Freeman, người sáng lập công ty Xilinx vào năm 1984, kiến trúc FPGA cho phép tính hợp số lượng tương đối lớn phần tử bán dẫn vào vi mạch so với kiến trúc trước CPLD (Complex Programmable Logic Device).Điểm tương đồng CPLD FPGA chỗ chúng bao gồm số lượng tương đối lớn phần tử logic khả trình Tuy nhiên mật độ tích hợp khác nhau, mật độ cổng logic CPLD nằm khoảng từ vài nghìn đến hàng chục nghìn, với FPGA mật độ tích hợp cỡ hàng chục nghìn vài triệu FPGA CPLD có nhiều điểm khác biệt nhiên kiến trúc điểm khác biệt CPLD FPGA CPLD có kiến trúc giới hạn mức độ đó, bao gồm nhiều dải logic “sum-of-products” khả trình cung cấp số tương đối nhỏ ghi đồng Điều làm cho CPLD trở nên không mềm dẻo lắm, bù lại trễ timing lại dễ dự đoán tốc độ kết nối logic cao FPGA Với FPGA, kiến trúc theo cách khác trội hẳn CPLD FPGA sử dụng liên kết nối Điều tạo cho mềm dẻo nhiều mà cịn làm tăng độ phức tạp thết kế 3.3.2 Kiến trúc chung FPGA Cấu trúc tổng thể FPGA bao gồm: Các khối logic lập trình Hệ thống mạch liên kết Các khối vào/ra Các phần tử thiết kế sẵn khác Hình 3.12 Cấu trúc tổng thể FPGA 3.3.3 Khối logic lập trình FPGA chứa nhiều khối logic tái cấu hình CLB (Configurable Logic Blocks) liên kết với thành liên kết khả trình (Programmable Interconnect) Các khối vào phân bố xung quanh chip tạo thành liên kết với bên ngồi Bên khối logic CLB có bảng LUT (Look-Up Table) phần tử nhớ (FlipFlop chốt) LUT (Look up table) khối logic thực hàm logic từ đầu vào, kêt hàm tùy vào mục đích mà gửi ngồi khối logic trực tiếp hay thơng qua phần tử nhớ flip-flop Trong tài liệu hướng dẫn dòng FPGA Xilinx sử dụng khái niệm SLICE, Slice tạo thành từ gồm khối logic, số lượng Slices thay đổi từ vài nghìn đến vài chục nghìn tùy theo loại FPGA Nếu nhìn cấu trúc tổng thể mảng LUT ngồi đầu vào kể hỗ trợ thêm đầu vào bổ xung từ khối logic phân bố trước sau nâng tổng số đầu vào LUT lên chân Cấu trúc nhằm tăng tốc số học logic 3.3.3.1 Hệ thống mạch liên kết Mạng liên kết FPGA cấu thành từ đường kết nối theo hai phương ngang đứng, tùy theo loại FPGA mà đường kết nối chia thành nhóm khác nhau, ví dụ XC4000 Xilinx có loại kết nối: ngắn, dài dài Các đường kết nối nối với thơng qua khối chuyển mạch lập trình (programable switch), khối chuyển mạch chứa số lượng nút chuyển lập trình đảm bảo cho dạng liên kết phức tạp khác 3.3.3.2 Các phần tử thiết kế sẵn khác Ngoài khối logic tùy theo loại FPGA khác mà có phần tử tích hợp thêm khác nhau, ví dụ để thiết kế ứng dụng SoC, dòng Virtex 4,5 Xilinx có chứa nhân xử lý PowerPC, hay Atmel FPSLIC tích hợp nhân ARV…, hay cho ứng dụng xử lý tín hiệu số DSP FPGA tích hợp DSP Slide nhân cộng tốc độ cao, thực hàm A*B+C, ví dụ dịng Virtex Xilinx chứa từ vài chục đến hàng trăm DSP slices với A, B, C 18-bit 3.4 Ngơn ngữ lập trình Verilog Verilog ngôn ngữ mô tả phần cứng (Hardware Description Language)được sử dụng việc thiết kế các hệ thống số, mạch tích hợp: nhớ RAM, vi xử lý đơn giản D-FlipFlop Thiết kế số FPGA ngôn ngữ verilog giống bạn viết chương trình cho vi điều khiển ngơn ngữ ChoặcAssembly Học Verilog khơng khó bạn đẫ có tản ngơn ngữ đó, giống tương tự C nên khơng khó khăn bắt đầu học Verilog Ngồi Verilog cịn có ngôn ngữ mô tả phần cứng phổ biến khác VHDL ( thơng dụng châu Âu giới thiệu hướng dẫn khác VHDL) Verilog VHDL ngôn ngữ mô tả phần cứng thơng dụng nay, bạn chọn ngơn ngữ để học FPGA cao ASIC Đối với chọn Verilog ngơn ngữ tiếp cận dễ đặc biệt cú pháp giống C, học Verilog bạn học VHDL dễ dàng Một điều khác Verilog C/C++ Verilog thực hiền mà thực song song Điều cs thể khó hiểu, nên nói ngắn gọn giống sơng có nhiều nhánh nhỏ có dịng nước chảy vào dịng sơng lúc nhánh sơng nhỏ có nước chảy nhánh nhỏ ảnh hưởng qua lại với vịng trịn Trong Verilog người ta xem sơng nhánh module ( khối) nhánh module 3.5 Sơ đồ thuật toán - Low Pass filter - IIR Hình 3.13 3.5.1 Khối IIR Sơ đồ khối lọc IIR 3.5.2 Kết Nhận xét: Biên độ sai số nhỏ KẾT LUẬN Chỉ tiêu kỹ thuật:   Đáp ứng thông số kỹ thuật yêu cầu Đáp ứng biên độ phẳng tối đa Tuy nhiên chúng có đáp ứng pha khơng tuyến tính dải thơng (nhìn vào đáp ứng pha vẽ được, ta thấy pha  gần tuyến tính) Nhờ áp dụng phương pháp biến đổi song tuyến tính (phương pháp biến đổi tốt nhất) nên lọc số thu được: Đáp ứng tốt tiêu kỹ thuật Khơng có aliasing (sai số lấy mẫu) miền tần số Tuy nhiên quan hệ ω theo Ω phi tuyến Chất lượng thực tế  Quan sát q trình mơ với tín hiệu vào trên, ta nhận thấy lọc thiết  kế hoạt động tương đổi tốt Nhờ đáp ứng biên độ phẳng hai dải nên khơng gây méo mó tín hiệu qua dải thơng làm suy giảm hoàn toàn (theo tiêu)  tín hiệu qua dải chắn… Tuy nhiên quan sát thấy tín hiệu bị trễ pha so với tín hiệu vào… Kết luận Bài tập lớn tóm tắt vấn đề lý thuyết thiết kế lọc số IIR Nêu đặc tính lọc số cần xác định phương pháp thiết kế lọc: Sử dụng kiểu Butterworth, Chebyshev 1-2, Ellipic Tiểu luận sâu nghiên cứu phương pháp thiết kế lọc IIR thông thấp sử dụng lọc Butterworth phép biến đổi song tuyến tính Sau tìm hiểu lý thuyết phương pháp này, tiểu luận vận dụng MATLAB để minh họa lý thuyết đồng thời nêu toán thiết kế cách giải quyết, so sánh kết đạt Tuy cố gắng chắn tiểu luận cịn nhiều thiếu sót, mong nhận góp ý Thầy để nội dung tiểu luận hoàn chỉnh TÀI LIỆU THAM KHẢO [1] P Đ N K - T T P TS Phạm Hồng Liên, Matlab ứng dụng viễn thông, 2005 [2] H J Reekie, Realtime Signal Processing, at the University of Technology at Sydney in the School of Electrical Engineering: Submitted for the Degree of Doctor of Philosophy, 1995 [3] R W S E R C Gonzalez, Digital Signal Processing Using MATLAB, 2004 ... nghiên cứu bốn lọc số tiêu biểu như:     Bộ lọc số thông thấp Bộ lọc số thông cao Bộ lọc số thông dải Bộ lọc số chắn dải Lọc ta hiểu lọc tần số chính, mà tất đặc trưng lọc tần số cho theo đáp... Thông Các tham số : Tần số cắt lọc thấp Bộ lọc thông : Tần số cắt lọc cao Bộ lọc thông dải : Tần số cắt thấp lọc : Tần số cắt cao lọc Bộ lọc Chắn dải : Tần số cắt thấp lọc : Tần số cắt cao lọc. .. sau:   Bộ lọc số thông thấp Bộ lọc số thông cao   Bộ lọc số thông dải Bộ lọc số chắn dải 1.2.4 Đặc tuyến tần số lọc số lý tưởng Việc thiết kế lọc số thực tế từ lý thuyết lọc số lý tưởng Ta tiến

Ngày đăng: 08/12/2022, 21:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w