Các phương trình thiết kế cho hàm cửa sổ và cửa sổ Kaiser

Một phần của tài liệu Giáo trình thực tập chuyên đề phân tích và xử lý tín hiệu số (DSP) (Trang 38 - 42)

Bài 6: THIẾT KẾ MACH LỌC FIR

6.3.1 Các phương trình thiết kế cho hàm cửa sổ và cửa sổ Kaiser

Cho những thông số kỹ thuật ban đầu của lọc là ωp, ωs, Rp và As Độ rộng vùng chuyển tiếp

Thông số β

Chương trình Matlab tạo ra một hàm đáp ứng xung thấp qua lý tưởng hd[n] như sau

function hd=ideal_lp(wc,M) % wc la tan so cat(rad) %M la do dai cua loc ly tuong

wc=input('Nhap tan so cat:'); M=input('Nhap bac loc:'); alpha=(M-1)/2;

n=[0:1:(M-1)]; m=n-alpha+eps;

hd=sin(wc*m)./(pi*m); fvtool(hd,1)

Chương trình Matlab để vẽ đáp ứng biên độ trong miền tần số của lọc theo độ lớn giá trị tuyệt đối và theo dB

function [db,mag,grd,w]= freqz_m(b,a)

% db: do lon tuong doi duoc tinh torng khoang tu 0 den pi % mag: do lon tuyet doi tinh trong khoang tu 0 den pi %pha: dap ung pha trong khoang tu 0 den pi

%w: 501 mau tan so trong khoang tu 0 den pi % b: he so cua cac da thuc tu so cua H(z) % a: he so cua cac da thuc mau so cua H(z) [H,w]=freq(b,a,1000,'whole'); H=(H(1;1:501))'; w=(w(1:1:501)); mag=abs(H); db=20*log10((mag+eps)/max(mag)); pha=angle(H); grd=grddelay(b,a,w);

Ví dụ: Thiết kế mạch lọc số thấp qua dùng hàm cửa số Kaiser với các thông số như sau

ωp=0.2π , ωs=0.3π, Rp=0.25dB, As=50dB.

Chương trình

wp = 0.2*pi; ws = 0.3*pi; As = 50; tr_width = ws - wp;

M = ceil((As-7.95)/(14.36*tr_width/(2*pi))+1) n=[0:1:M-1]; beta = 0.1102*(As-8.7); wc = (ws+wp)/2; hd = ideal_lp(wc,M); w_kai = (kaiser(M,beta))'; h = hd .* w_kai; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000;

As = -round(max(db(ws/delta_w+1:1:501))) % Min Stopband Attenuation % Plots

subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') ; subplot(2,2,2); stem(n,w_kai); title('Kaiser Window'); axis([0 M-1 0 1.1]);xlabel('n'); ylabel('w(n)')

subplot(2,2,3); stem(n,h);title('Actual Impulse Response') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)')

subplot(2,2,4);plot(w/pi,db);title('Magnitude Response in dB');grid;axis([0 1 -100 10]); xlabel('frequency in pi units'); ylabel('Decibels')

set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]); set(gca,'YTickMode','manual','YTick',[-50,0])

% set(gca,'YTickLabelMode','manual','YTickLabels',['50';' 0'])

6.4 Bài tập

1) Thiết kế mạch lọc số với các thông số ωp=0.2π , ωs=0.3π, Rp=0.25dB, As=50dB sử dụng hàm cửa sổ Hamming. So sánh kết quả với hàm cửa sổ Kaiser. Bậc của lọc là bao nhiêu?

2) Cho các thông số kỹ thuật của một lọc dải qua như sau ωs1=0.2π , As=60dB

ωs2=0.8 π, As=60dB wp1=0.35 π, Rp=1dB

wp2=0.65 π, rp=1dB

Một phần của tài liệu Giáo trình thực tập chuyên đề phân tích và xử lý tín hiệu số (DSP) (Trang 38 - 42)

Tải bản đầy đủ (DOC)

(54 trang)
w