Bài đăng

Hiển thị các bài đăng có nhãn Matlab

Thiết kế bộ lọc IIR (MATLAB CODE - design IIR filter)

Hình ảnh
Design a Butterworth lowpass filter with specification as follows     w p =0.2pi,    R p =1dB     w s =0.3pi,    A s =15dB % Butterworth Lowpass Filter Design: % % Digital Filter Specifications: 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 ep = sqrt(10^(Rp/10)-1); Ripple = sqrt(1/(1+ep*ep)); % Passband Ripple Attn = 1/(10^(As/20)); % Stopband Attenuation % Digital Butterworth Filter Design: [N wn]=buttord(wp/pi,ws/pi,Rp,As); [b,a]=butter(N,wn); %plotting figure(1); subplot(1,1,1) [db,mag,pha,grd,w] = freqz_m(b,a); subplot(2,2,1); plot(w/pi,mag); title('Magnitude Response') xlabel('frequency in pi units'); ylabel('|H|'); axis([0,1,0,1.1]) set(gca,'XTickMode','manual','XTick',[0,0.2,0.3,1]); set(gca,'YTickmode','manual','YTick',[0,Attn,Ripple,1]); grid subplot(2,2,3); plot(w/pi,db); ti

Thiết kế bộ lọc FIR phương pháp tần số lấy mẫu (MATLAB CODE - design FIR filter)

Hình ảnh
Thiết kế bộ lọc thông cao theo phương pháp tần số lấy mẫu với các thông số sau :             w s = 0.6 pi,     A s = 50 dB             w p = 0.8 pi,     R p = 1 dB  M = 33, T1 = 0.1095; T2 = 0.598. % Freq. Samp. Tech.: Highpass, Optimum method T1 % ws=0.6pi, wp=0.8pi, Rp=1dB, As=50dB % M=33, T1 = 0.1095; T2 = 0.598; M = 33; alpha = (M-1)/2; l = 0:M-1; wl = (2*pi/M)*l; T1 = 0.1095; T2 = 0.598; Hrs = [zeros(1,11),T1,T2,ones(1,8),T2,T1,zeros(1,10)]; Hdr = [0,0,1,1]; wdl = [0,0.6,0.8,1]; 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_Type1(h); subplot(1,1,1) subplot(2,2,1);plot(wl(1:17)/pi,Hrs(1:17),'o',wdl,Hdr); axis([0,1,-0.1,1.1]); title('Highpass: M=33,T1=0.1095,T2=0.598') xlabel('frequency in pi units'); ylabel('Hr(k)') set(gca,'XTickMode','manual','XTick',[

Các function phương pháp tần số lấy mẫu (MATLAB CODE)

Hình ảnh
Linear-phase FIR filter: đáp ứng xung đối xứng với M lẻ. function [Hr,w,a,L] = Hr_Type1(h); % Computes Amplitude response Hr(w) of a Type-1 LP FIR filter % ----------------------------------------------------------- % [Hr,w,a,L] = Hr_Type1(h) % Hr = Amplitude Response % w = 500 frequencies between [0 pi] over which Hr is computed % a = Type-1 LP filter coefficients % L = Order of Hr % h = Type-1 LP filter impulse response % M = length(h); L = (M-1)/2; a = [h(L+1) 2*h(L:-1:1)]; % 1x(L+1) row vector n = [0:1:L]; % (L+1)x1 column vector w = [0:1:500]'*pi/500; Hr = cos(w*n)*a';   Linear-phase FIR filter: Đáp ứng xung đối xứng với M chẵn. function [Hr,w,b,L] = Hr_Type2(h); % Computes Amplitude response of Type-2 LP FIR filter % --------------------------------------------------- % [Hr,w,b,L] = Hr_Type2(h) % Hr = Amplitude Response % w = frequencies between [0 pi] over which Hr is computed % b = Type-2 LP filter coefficients % L = Order of Hr % h

Thiết kế bộ lọc FIR thông chặn sử dụng phương pháp cửa sổ (Matlab code)

Hình ảnh
Sử dụng cửa sổ Black man, thiết kế bộ lọc thông chặn với các thông số cho dưới đây :           w 1s    = 0.2 pi,         A s  = 60 dB           w 1p    = 0.35 pi,       R p  =  1 dB           w 2p   = 0.65 pi,      R p  =  1 dB           w 2s    = 0.8 pi,         A s  = 60 dB ws1 = 0.2*pi; wp1 = 0.35*pi; wp2 = 0.65*pi; ws2 = 0.8*pi; As = 60; tr_width = min((wp1-ws1),(ws2-wp2)) M = ceil(11*pi/tr_width) + 1 %;M=68 n=[0:1:M-1]; wc1 = (ws1+wp1)/2; wc2 = (wp2+ws2)/2; hd = ideal_lp(wc2,M) - ideal_lp(wc1,M); w_bla = (blackman(M))'; h = hd .* w_bla; [db,mag,pha,grd,w] = freqz_m(h,[1]); delta_w = 2*pi/1000; Rp = -min(db(wp1/delta_w+1:1:wp2/delta_w)) % Actua; Passband Ripple As = -round(max(db(ws2/delta_w+1:1:501))) % Min Stopband Attenuation % plots subplot(1,1,1); subplot(2,2,1); stem(n,hd); title('Ideal Impulse Response') axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_bla);title('Blackman Window') a

Thiết kế bộ lọc FIR thông thấp phương pháp cửa sổ (matlab code)

Hình ảnh
Thiết kế bộ lọc số FIR sử dụng cửa sổ hamming với các thông số cho dưới đây :    w p  = 0.2 pi,    R p  = 0.25 dB     w s  = 0.3 pi,    A s  = 50 dB. 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))) % vẽ subplot(1,1,1) subplot(2,2,1); stem(n,hd); title('Đáp ứng xung lý tưởng') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('hd(n)') subplot(2,2,2); stem(n,w_ham);title('Cửa sổ Hamming') axis([0 M-1 0 1.1]); xlabel('n'); ylabel('w(n)') subplot(2,2,3); stem(n,h);title('Đáp ứng xung thực tế') axis([0 M-1 -0.1 0.3]); xlabel('n'); ylabel('h(n)') subplot(2,2,4); plot(w/pi,db);title('Đáp ứng biên độ theo dB');grid axis([0 1 -100 10]); xlabel(&

Thiết kế bộ lọc FIR code Matlab (MATLAB CODE - design FIR filter)

Hình ảnh
Dưới đây là 2 ví dụ về bộc lọc FIR (MATLAB Code) function hd = ideal_lp(wc,M); % Ideal LowPass filter computation % -------------------------------- % [hd] = ideal_lp(wc,M) % hd = ideal impulse response between 0 to M-1 % wc = cutoff frequency in radians % M = length of the ideal filter % alpha = (M-1)/2; n = [0:1:(M-1)]; m = n - alpha + eps; hd = sin(wc*m) ./ (pi*m); function [db,mag,pha,grd,w] = freqz_m(b,a); % Modified version of freqz subroutine % ------------------------------------ % [db,mag,pha,grd,w] = freqz_m(b,a); % db    = Relative magnitude in dB computed over 0 to pi radians % mag = absolute magnitude computed over 0 to pi radians % pha  = Phase response in radians over 0 to pi radians % grd   = Group delay over 0 to pi radians % w     = 501 frequency samples between 0 to pi radians % b     = numerator polynomial of H(z) (for FIR: b=h) % a     = denominator polynomial of H(z) (for FIR: a=[1]) % [H,w] = freqz(b,a,1000,'whole'); H