Tần số giới hạn giữa dải thông và dải chặn gọi là tần số cắt và thường được ký hiệu là c.2.. Ý nghĩa và mục đích- Ý nghĩa: Bộ lọc là thiết bị quan trọng trong xử lý tín hiệu số, cho phép
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA KỸ THUẬT ĐIỆN TỬ BÁO CÁO BÀI TẬP LỚN MÔN XỬ LÝ TÍN HIỆU SỐ Bài Tập : Thiết kế lọc FIR dải chặn Giảng viên: Lớp: Nhóm tập: Thành viên: Trần Tuấn Anh Xử lý tín hiệu số nhóm 03 Nhóm 05 Vũ Lê Hồng – B22DCKH046 Nguyễn Viết Tuấn Anh – B22DCCN038 Nguyễn Quyết Thắng – B22DCCN813 Lưu Minh Hiển – B22DCCN290 Hà Nội – 2023 I Cơ sở lý thuyết A Bộ lọc số lý tưởng Khái niệm Khái niệm dải thông dải chặn: Dải thông dải tần số mà hệ xử lý số cho tín hiệu số qua, dải chặn dải tần số mà hệ xử lý số khơng cho tín hiệu số qua Đối với hệ xử lý số lý tưởng: dải thông vùng tần số mà |H(ej )|= 1, dải chặn |H(ej )|= Tần số giới hạn dải thông dải chặn gọi tần số cắt thường ký hiệu c Ý nghĩa mục đích - Ý nghĩa: Bộ lọc thiết bị quan trọng xử lý tín hiệu số, cho phép loại bỏ tần số không mong muốn lọc tần số cần thiết từ tín hiệu Việc thiết kế lọc giúp xử lý, lọc phân tích tín hiệu cách hiệu - Mục đích: Loại bỏ nhiễu, làm tín hiệu Phân tích thành phần tần số tín hiệu Truyền tải thông tin dải tần số mong muốn Tách rời tín hiệu có băng tần Chuyển đổi dải băng tần tín hiệu Bộ lọc chặn dải lý tưởng - Các thông số lọc chặn dải lý tưởng B Bộ lọc FIR - Bộ lọc FIR (Finite Impulse Response) loại lọc xử lý tín hiệu có phản ứng hồi quy hữu hạn Các lọc FIR có số đặc điểm bản: Hồi quy hữu hạn: Các lọc FIR có đáp ứng xung có độ dài hữu hạn, khơng có phản ứng vơ hạn lọc IIR Điều có nghĩa phản ứng với tín hiệu đầu vào khoảng thời gian hữu hạn khơng tạo vịng lặp phản hồi Dễ thiết kế: Bộ lọc FIR thường dễ thiết kế so với lọc IIR, chúng khơng có phần tử phản hồi khơng gây vấn đề ổn định xảy lọc IIR Tính ổn định: Bộ lọc FIR thường ổn định khơng có vịng lặp phản hồi gây vấn đề ổn định lọc IIR Phản ứng đáp ứng thời gian tần số: Với lọc FIR, bạn đạt đáp ứng tần số cụ thể kiểm soát thời gian trễ Khả thực chức lọc phức tạp: Các lọc FIR thực chức lọc phức tạp, bao gồm lọc thông cao, lọc thông thấp, lọc thông bandpass, chức lọc khác cách hiệu Khả triệt tiêu rõ ràng tín hiệu nhiễu: Do tính chất chúng, lọc FIR có khả tách rõ ràng tín hiệu nhiễu - Có dạng xung: - Đáp ứng xung h(n) có trường hợp: - kiểu phương pháp hay gặp lọc FIR: Cửa sổ Lấy mẫu tần số Least equare error II Thiết kế lọc FIR chặn dải Phương pháp cửa sổ - Các bước thực B1: Khai báo biến tham số: Khai báo tần số lấy mẫu fs Khai báo thời gian t từ đến với khoảng cách 1/fs B2: Tạo tín hiệu đầu vào: Sử dụng hàm chirp để tạo tín hiệu chirp khoảng thời gian t Gán kết cho biến chirp_signal B3: Thiết kế lọc FIR: Chọn hàm đáp ứng xung hamming Độ dài lọc N+1 Tính tốn hệ số lọc gán vào biến b B4: Vẽ đáp ứng xung lọc: Sử dụng hàm freqz với tham số b, 1, 1024, fs B5: Áp dụng lọc lên tín hiệu: Dùng hàm filter với tham số b, 1, chirp_signal Gán kết cho biến filtered_signal B6: Vẽ so sánh kết quả: Vẽ subplot để so sánh tín hiệu đầu vào đầu - Mã giả (Matlab): % Thiết kế lọc FIR sử dụng cửa sổ Hamming fs = 1000; % Tần số lấy mẫu fpass = 100; % Tần số cắt chặn dải chuyển qua fstop = 200; % Tần số cắt chặn dải chặn lại N = 100; % Bậc lọc % Tạo tín hiệu đầu vào (chirp signal) t = 0:1/fs:5; % Thời gian từ đến giây f0 = 50; % Tần số ban đầu f1 = 250; % Tần số kết thúc chirp_signal = chirp(t, f0, 5, f1, 'linear'); % Thiết kế lọc FIR sử dụng hàm fir1 f_normalized = [fpass/(fs/2) fstop/(fs/2)]; b = fir1(N, f_normalized, 'stop', hamming(N + 1)); % Vẽ đáp ứng xung lọc FIR freqz(b, 1, 1024, fs); % Áp dụng lọc lên tín hiệu đầu vào filtered_signal = filter(b, 1, chirp_signal); % Vẽ tín hiệu đầu vào tín hiệu đầu figure; subplot(2,1,1); plot(t, chirp_signal); title('Tín hiệu đầu vào (Chirp)'); xlabel('Thời gian'); ylabel('Biên độ'); subplot(2,1,2); plot(t, filtered_signal); title('Tín hiệu đầu (Filtered)'); xlabel('Thời gian'); ylabel('Biên độ'); Kết quả: - Đáp ứng tần số Document continues below Discover more from:Dục Quốc Giáo Phòng HCM GDQP D22 Học viện Công nghệ… 4 documents Go to course TỪ KHÓA HP1 VÀ - Từ 34 1269 24 khóa học phần Giáo Dục Quốc Phòng… 100% (1) 03 18 kiemtra Lưu Gia Bảo Giáo Dục Quốc Phòng HCM None C From Control Structures through… Giáo Dục Quốc Phòng HCM None [GR] Answers to Questions within the… Autómatas Programables 94% (50) - So sánh tín hiệu vào / ra: Copy of Chicken Genetics SE ap us history 100% (7) Cambridge Data Form West 2022 thru 2023 AP Biology 100% (6) Lấy mẫu tần số - Các bước thực hiện: B1: Khai báo tham số: Tần số lấy mẫu fs = 1000Hz Tính tần số Nyquist fs/2 = 500Hz B2: Thiết kế thông số lọc: Tần số băng thông qua f_pass = 100Hz Tần số băng thông dừng f_stop = 300Hz B3: Chuyển đổi tần số sang dạng từ đến 1: f_pass_normalized = f_pass/Nyquist = 0.2 f_stop_normalized = f_stop/Nyquist = 0.6 B4: Thiết kế lọc FIR: Bậc lọc filter_order = 50 Sử dụng hàm fir2 thiết kế theo thông số B5: Vẽ đáp ứng tần số lọc: Sử dụng hàm freqz B6: Tạo tín hiệu đầu vào: Dùng hàm chirp tạo tín hiệu từ 0-400Hz B7: Áp dụng lọc lên tín hiệu: Dùng hàm filter B8: Vẽ so sánh kết đầu vào đầu - Mã giả: % Thiết kế lọc FIR chặn dải fs = 1000; % Tần số lấy mẫu Nyquist = fs/2; % Tần số Nyquist % Thiết kế thông số lọc f_pass = 100; % Tần số cắt băng thông chuyển qua f_stop = 300; % Tần số cắt băng thông dừng lại % Chuyển đổi tần số cắt sang dạng tần số nhỏ - nằm khoảng từ đến f_pass_normalized = f_pass / Nyquist; f_stop_normalized = f_stop / Nyquist; % Thiết kế lọc FIR filter_order = 50; % Bậc lọc filter_coefficients = fir2(filter_order, [f_pass_normalized, f_stop_normalized], 'stop' ); % Vẽ đáp ứng tần số lọc freqz(filter_coefficients, 1, 1024, fs); % Tạo tín hiệu dạng chirp đầu vào t = 0:1/fs:1-1/fs; input_signal = chirp(t, 0, 1, 400); % Tín hiệu dạng chirp từ 0Hz đến 200Hz % Áp dụng lọc FIR lên tín hiệu vào output_signal = filter(filter_coefficients, 1, input_signal); % Vẽ tín hiệu vào figure; subplot(2,1,1); plot(t, input_signal); title('Tín hiệu đầu vào (Chirp)'); xlabel('Thời gian'); ylabel('Biên độ'); subplot(2,1,2); plot(t, output_signal); title('Tín hiệu đầu sau áp dụng lọc FIR'); xlabel('Thời gian'); ylabel('Biên độ'); - Đáp ứng xung: - So sánh tín hiệu đầu vào / ra: Least equare error - Xác định thông số: fs: Tần số lấy mẫu f_pass: Tần số cắt thấp dải chặn f_stop: Tần số cắt cao dải chặn delta_f: Độ lệch tần số Tính tốn thơng số cho lọc: Chuẩn hóa tần số độ lớn tương ứng: frequencies = [0, f_pass - delta_f, f_pass, f_stop, f_stop + delta_f, fs/2]; magnitudes = [1, 1, 0, 0, 1, 1]; Xác định bậc lọc FIR: filter_order: Số lượng hệ số lọc FIR Thiết kế lọc FIR: Sử dụng hàm firls Tạo tín hiệu đầu vào: Sử dụng thông số thời gian mẫu, tần số bắt đầu kết thúc để tạo tín hiệu đầu vào, Vẽ đáp ứng tần số lọc: Vẽ đồ thị tín hiệu đầu vào đầu ra: - Mã giả: % Thiết kế lọc FIR chặn dải sử dụng phương pháp Least Equare error fs = 1000; % Tần số lấy mẫu f_pass = 100; % Tần số cắt thấp dải chặn f_stop = 150; % Tần số cắt cao dải chặn delta_f = 20; % Độ lệch tần số % Tính thơng số cho lọc frequencies = [0, f_pass - delta_f, f_pass, f_stop, f_stop + delta_f, fs/2]; % Tần số chuẩn hóa magnitudes = [1, 1, 0, 0, 1, 1]; % Độ lớn tần số tương ứng % Bậc lọc FIR filter_order = 100; % Thiết kế lọc FIR sử dụng phương pháp Least Equare error filter_coefficients = firls(filter_order, frequencies / (fs/2), magnitudes); % Tạo tín hiệu chirp đầu vào t = 0:1/fs:1-1/fs; f0 = 20; f1 = 200; input_signal = chirp(t, f0, 1, f1); % Áp dụng lọc FIR vào tín hiệu đầu vào output_signal = filter(filter_coefficients, 1, input_signal); % Vẽ đáp ứng tần số lọc freqz(filter_coefficients, 1, 1024, fs); % Hiển thị tín hiệu đầu vào đầu figure; subplot(2,1,1); plot(t, input_signal); title('Tín hiệu đầu vào (Chirp)'); xlabel('Thời gian'); ylabel('Biên độ'); subplot(2,1,2); plot(t, output_signal); title('Tín hiệu đầu sau lọc FIR'); xlabel('Thời gian'); ylabel('Biên độ'); - Đáp ứng xung: - So sánh tín hiệu đầu vào / :