• Tidak ada hasil yang ditemukan

MODUL 2 DESAIN DAN IMPLEMENTASI ALGORITMA FILTER DIJITAL IIR

N/A
N/A
Protected

Academic year: 2022

Membagikan "MODUL 2 DESAIN DAN IMPLEMENTASI ALGORITMA FILTER DIJITAL IIR"

Copied!
10
0
0

Teks penuh

(1)

1 2 3

MODUL 2

DESAIN DAN IMPLEMENTASI ALGORITMA FILTER DIJITAL IIR

1. Tujuan

1. Dapat mendesain filter IIR dengan metode transformasi impulse invariance dan bilinear menggunakan bahasa pemrograman MATLAB.

2. Dapat mengimplementasikan filter IIR untuk pemrosesan sinyal menggunakan DSK TMS320C6713.

3. Dapat menggambarkan respon magnituda suatu sistem linier tidak berubah terhadap waktu dari suatu sistem linier tidak berubah terhadap waktu berdasarkan hasil data pengukuran.

2. Perangkat Praktikum

Perangkat – perangkat yang digunakan dalam praktikum ini adalah : 1. Satu set komputer.

2. Satu paket DSK TMS320C6713 terdiri atas : DSK TMS320C6713, kabel USB, +5 V power supply, AC Power Cord dan 1 set kabel audio.

3. Osiloskop.

4. Generator sinyal.

5. Speaker.

3. Dasar Teori

Filter IIR merupakan tipe filter dijital dengan respon impuls tak terbatas. Filter IIR sesuai dengan filter analog yang biasanya memiliki respon impuls dengan panjang tak hingga. Filter IIR memiliki fungsi sistem dalam domain z sebagai berikut.

Y ( z) b + b z −1 + b z −2 + b z−3 + ...

H ( z) = = 0 1 2 3

X ( z) 1 + a z −1 + a z −2 + a z −3 + ... (2.1) dengan a merupakan koefisien denominator sedangkan b merupakan koefisien numerator.

Desain filter IIR dapat dilakukan dengan cara mentransformasikan filter analog ke dalam filter dijital menggunakan complex-valued mapping. Untuk dapat mendesain filter frequency selective yang dikehendaki diperlukan transformasi frequency-band.

Desain filter analog lowpass

Transformasi filter s à z

Transformasi Frequency-band

z à z

Filter IIR

Gambar 2.1 Diagram blok pendekatan desain filter IIR Langkah – langkah yang dilakukan untuk mendesain filter IIR adalah :

1. Desain filter analog lowpass. Filter-filter analog yang biasanya digunakan sebagai prototipe desain adalah filter Butterworth, Chebyshev dan Elliptic.

2. Mengaplikasikan transformasi filter analog lowpass untuk mendapatkan filter dijital lowpass. Terdapat 4 metode transformasi filter yaitu :

a. Transformasi impulse invariance. Transformasi ini digunakan jika dikehendaki bentuk respon impuls yang sama antara filter analog dan filter dijital.

b. Transformasi finite difference approximation. Teknik ini digunakan untuk mengubah sebuah representasi persamaan perbedaan ke dalam representasi persamaan perbedaan yang sesuai.

(2)

c. Transformasi step invariance. Transformasi ini digunakan untuk menghasilkan respon step yang sama antara filter analog dan dijital.

d. Transformasi bilinear yaitu mengubah representasi fungsi sistem dari domain analog ke domain dijital.

3. Mengaplikasikan transformasi frequency-band untuk menghasilkan filter dijital lainnya dari filter dijital lowpass.

3.1 Transformasi Impulse Invariance

Pada transformasi ini, filter analog ha (t) disampling dengan interval sampling T untuk menghasilkan h(n) yaitu :

h(n) = ha (nT ) (2.2)

Parameter T dipilih sedemikian rupa sehingga frekuensi analog dan dijital adalah :

ha (t) dapat disampling dengan baik. Hubungan

ω = ΩT atau e jω = e jΩT (2.3)

dengan z = e jω pada unit circle dan s = jΩ pada sumbu imajiner, maka persamaan transformasi dari bidang s ke bidang z adalah :

z = e sT (2.4)

Fungsi sistem H ( z) dan H a (s) berelasi dalam formula aliasing domain frekuensi:

1  2π  H ( z) =

T

H a  s − j T k (2.5)

k =−∝  

Transformasi bidang komplek dengan pemetaan pada persamaan 2.4 ditunjukkan oleh gambar 2.2.

jΩ Im( z)

/ T π/ T

−π/ T

Transformasi banyak-ke-satu

esT = z σ

Unit circle

Re( z)

s - plane −3π/ T z - plane

Gambar 2.2 Pemetaan bidang komplek pada transformasi Impulse Invariance Dari gambar tersebut didapat :

a. Dengan mendefinisikan σ = Re(s) maka :

σ < 0 dip etakan ke z < 1 (di dalam unit circle)

σ = 0 dip etakan ke z = 1 (p ada unit circle) (2.6) σ > 0 dip etakan ke z > 1 (di luar unit circle)

b. Semua daerah semi-infinite dengan lebar merupakan pemetaan dari banyak-ke-satu.

2π / T dipetakan ke z < 1. Pemetaan ini

c. Daerah di sebelah kiri pada bidang s dipetakan ke unit circle sehingga filter analog yang kausal dan stabil dipetakan ke filter dijital yang kausal dan stabil pula.

d. Jika H a ( jΩ) = H a ( jω / T ) = 0 untuk Ω ≥ π / T maka,

(3)

a

R H ( jω) = 1 H a

T a( jω / T ), ω ≤ π (2.7)

sehingga tidak terjadi aliasing.

3.1.1 Prosedur Desain

Jika diberikan spesifikasi filter dijital lowpass ωs , ω p , Rp , dan As dan diinginkan mendapatkan H ( z) dengan terlebih dahulu mendesain filter analog ekivalen kemudian memetakan ke filter yang diinginkan maka prosedur desain yang dapat dilakukan adalah : 1. Pilih T dan definisikan frekuensi analog :

ωpp =

T dan Ωs = ωs

T (2.8)

2. Desain filter analog H a (s) dengan spesifikasi p, s , Rp , dan As . Filter analog yang dapat dipilih adalah salah satu dari filter prototipe.

3. Gunakan ekspansi fraksi parsial dengan mengubah H a (s) menjadi :

N R

H (s) =

k (2.9)

k =1 s − pk 4. Transformasikan pole analog

{

pk

}

dijital :

ke dalam pole dijital

{

e pk T

}

untuk menghasilkan filter H ( z) = N k

1 − p T −1 (2.10)

k =1

e k z

3.1.2 Contoh Desain Filter IIR Transformasi Impulse Invariance dengan MATLAB Berikut ini merupakan contoh program MATLAB yang dapat digunakan untuk mendesain filter dijital lowpass dengan menggunakan filter prototipe Butterworth. Pada simulasi ini digunakan 6 program yaitu :

1. function [b,a] = u_buttap(N,Omegac);

% Prototipe filter analog lowpass Butterworth tidak dinormalisasi

% b = koefisien polinomial numerator dari Ha(s)

% a = koefisien polinomial denominator dari Ha(s)

% Omegac = frekuensi cutoff dalam rad/s [z,p,k] = buttap(N);

p = p*Omegac;

k = k*Omegac^N;

B = real(poly(z));

b0 = k;

b = k*B;

a = real(poly(p));

2. function [b,a] = afd_butt(wp,ws,Rp,As);

% Desain filter analog lowpass Butterworth

% wp = frekuensi passband (rad/s); wp > 0

% ws = frekuensi stopband (rad/s); ws > wp > 0

% Rp = ripple passband (dB) (Rp > 0)

% As = redaman stopband (dB) (As > 0) if wp <= 0 error('Passband edge harus > 0') end

if ws <= wp error('Stopband edge harus > passband edge') end

(4)

if (Rp <= 0) | (As < 0)

error('PB ripple dan/atau redaman SB harus > 0') end

N = ceil((log10((10^(Rp/10)-1)/(10^(As/10)-1)))/(2*log10(wp/ws)));

Omegac = wp/((10^(Rp/10)-1)^(1/(2*N)));

[b,a] = u_buttap(N,Omegac);

3. function [b,a] = imp_invr(c,d,T);

% Transformasi impulse invariance ADC

% b = polinomial numerator z^(-1) filter dijital

% a = polinomial denominator z^(-1) filter dijital

% c = polinomial numerator s filter analog

% d = polinomial denominator s filter analog

% T = parameter sampling [R,p,k] = residue(c,d);

p = exp(p*T);

[b,a] = residuez(R,p,k);

b = real(b'); a = real(a');

4. function I = cplxcomp(p1,p2) I=[];

for j = 1:1:length(p2) for i = 1:1:length(p1)

if(abs(p1(i)-p2(j)) < 0.0001) I = [I,i];

end end end I=I';

5. function [C,B,A] = dir2par(b,a)

% konversi struktur Direct-form ke struktur Parallel-form

% b dan a adalah koefisien numerator dan denominator filter dijital M = length(b); N = length(a);

[r1,p1,C] = residuez(b,a);

p = cplxpair(p1,10000000*eps);

I = cplxcomp(p1,p);

r = r1(I);

K =floor(N/2); B =zeros(K,2); A = zeros(K,3);

if K*2 == N for i=1:2:N-2

Brow = r(i:1:i+1,:); Arow = p(i:1:i+1,:);

[Brow,Arow] = residuez(Brow,Arow,[]);

B(fix((i+1)/2),:) = real(Brow);

A(fix((i+1)/2),:) = real(Arow);

end

[Brow,Arow] = residuez(r(N-1),p(N-1),[]);

B(K,:) = [real(Brow) 0]; A(K,:) = [real(Arow) 0];

else

for i = 1:2:N-1

Brow = r(i:1:i+1,:);

Arow = p(i:1:i+1,:);

[Brow,Arow] = residuez(Brow,Arow,[]);

B(fix((i+1)/2),:) = real(Brow);

A(fix((i+1)/2),:) = real(Arow);

(5)

end end

6. function [b0,B,A] = dir2cas(b,a);

% konversi struktur Direct-form ke struktur Cascade-form

% b dan a adalah koefisien numerator dan denominator filter dijital b0 = b(1); b = b/b0; a0 = a(1); a = a/a0;

b0 = b0/a0;

M = length(b); N = length(a);

if N > M

b = [b zeros(1,N-M)];

elseif M > N

a = [a zeros(1,M-N)]; N = M;

else

NM = 0;

end

K = floor(N/2); B =zeros(K,3); A = zeros(K,3);

if K*2 == N b = [b 0];

a = [a 0]

end

broots = cplxpair(roots(b));

aroots = cplxpair(roots(a));

for i = 1:2:2*K

Brow = broots(i:1:i+1,:);

Brow = real(poly(Brow));

B(fix((i+1)/2),:) = Brow;

Arow = aroots(i:1:i+1,:);

Arow = real(poly(Arow));

A(fix((i+1)/2),:) = Arow;

end

Misal filter dijital lowpass yang akan didesain memiliki spesifikasi ω p = 0.2π , ωs = 0.3π , Rp = 1 dB, As = 15 dB . Skrip MATLAB yang digunakan adalah sebagai berikut.

>> wp = 0.2*pi; ws = 0.3*pi; Rp = 1; As = 15;

>> T = 1; OmegaP = wp/T; OmegaS = ws/T;

>> [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As);

>> [b,a] = imp_invr(cs,ds,T)

b = -0.0000 0.0006 0.0101 0.0161 0.0041 0.0001

a = 1.0000 -3.3635 5.0684 -4.2759 2.1066 -0.5706 0.0661

>> [C,B,A] = dir2par(b,a) % Menghitung second-order sections C = [ ]

B = 1.8557 -0.6304 -2.1428 1.1454 0.2871 -0.4466

A = 1.0000 -0.9973 0.2570 1.0000 -1.0691 0.3699 1.0000 -1.2972 0.6949

Fungsi sistem filter H ( z) dengan orde 6 yaitu :

(6)

 

1.8587 − 0.6304z−1 −2.1428 +1.1454z−1 0.2871− 0.4463z−1

H ( z) = + +

1 − 0.9973z−1 + 0.2570z−2 1−1.0691z−1 + 0.3699z−2 1−1.2972z−1 + 0.6449z −2

3.2 Transformasi Bilinear

Transformasi bilinear merupakan teknik pemetaan dengan memetakan fungsi :

dengan T merupakan parameter.

jΩ

2 1 − z−1

s = ⇒ z =

T 1 + z −1

1 + sT / 2 1 − sT / 2

Im( z)

(2.11)

Transformasi satu-ke-satu

1 + sT / 2 = z

σ 1 − sT / 2

Unit circle

Re( z)

s - plane

z - plane

Gambar 2.4 Pemetaan bidang komplek pada transformasi bilinear Dari pemetaan bidang komplek pada gambar 2.4 didapat bahwa :

a. Dengan mendefinisikan s = σ + jΩ pada persamaan 2.11 maka didapat :

1 + σ T + j =ΩT  z =  2 2 

1 − σ T − j =ΩT  (2.12)

 2 2 

 

(7)

1 + σ T + j ΩT

sehingga jika : σ < 0 ⇒ z = 2 2 1 σ T − j ΩT

2 2

< 1 , σ = 0 ⇒ z = 1 + j ΩT 2 = 1

1 − j ΩT 2 1 + σ T + j ΩT

dan σ > 0 ⇒ z = 2 2 > 1

1 σ T − j ΩT

2 2

b. Daerah di sebelah kiri pada bidang s dipetakan ke dalam unit circle. Ini merupakan transformasi yang stabil.

c. Sumbu imajiner dipetakan ke dalam unit circle secara satu-ke-satu. Hal ini menyebabkan tidak terjadinya aliasing pada domain frekuensi.

Dengan mengganti σ = 0 pada persamaan 2.12 maka didapat : 1 + j ΩT

z = 2 = e jω 1 − j ΩT

2

(2.13)

dengan magnituda sama dengan satu. Dengan mengasumsikan ω sebagai fungsi Ω maka didapat :

ω = 2 tan −1  ΩT 

atau Ω = 2

tan  ω 

(2.14)

 2 

T  2 

   

3.2.1 Prosedur Desain

Prosedur desain jika diberikan spesifikasi filter ωs , ω p , Rp , dan As dan diinginkan mendapatkan H ( z) adalah :

1. Pilih nilai T. Nilai standar T = 1.

2. Dengan menggunakan frekuensi cutoff ω p dan ωs didapat nilai Ω p dan Ωs dengan menggunakan persamaan : Ω = 2

tan  ω p

dan Ω = 2

tan  ωs

p .

T

2  s

T  2 

   

3. Desain filter analog 4. Transformasikan :

Ha (s) yang sesuai dengan spesifikasi p , Ωs , Rp , As .

 2 1 − z −1 H ( z) = H a −1

 T 1 + z  (2.15)

dan sederhanakan sehingga H ( z) merupakan fungsi rasional dalam z −1 . 3.2.2 Contoh Desain Filter IIR Transformasi Bilinear dengan MATLAB

Berikut ini merupakan contoh program MATLAB yang dapat digunakan untuk mendesain filter dijital lowpass dengan menggunakan filter prototipe Butterworth. Misal filter dijital lowpass yang akan didesain memiliki spesifikasi ω p = 0.2π ,

Skrip MATLAB yang digunakan adalah sebagai berikut.

>> wp = 0.2*pi; ws = 0.3*pi; Rp = 1; As = 15;

>> T = 1; Fs = 1/T;

>> OmegaP = (2/T)*tan(wp/2); OmegaS = (2/T)*tan(ws/2);

>> [cs,ds] = afd_butt(OmegaP,OmegaS,Rp,As);

>> [b,a] = bilinear(cs,ds,Fs);

ωs = 0.3π , Rp = 1 dB, As = 15 dB .

>> [C,B,A] = dir2cas(b,a) % Menghitung second-order sections C = 5.7969e-004

(8)

B = 1.0000 2.0183 1.0186 1.0000 1.9814 0.9817 1.0000 2.0004 1.0000 A = 1.0000 -0.9459 0.2342 1.0000 -1.0541 0.3753 1.0000 -1.3143 0.7149

(9)

4. Prosedur Praktikum

Pada praktikum ini dilakukan implementasi filter IIR secara real-time dengan menggunakan DSK TMS320C6713. File – file pendukung praktikum terdapat di dalam folder C:\CCStudio_v3.1\MyProjects. Berikut langkah – langkah praktikum yang harus Anda perhatikan.

a. Nyalakan komputer dan hubungkan kabel USB DSK ke konektor USB komputer.

b. Nyalakan generator sinyal dan hubungkan outputnya dengan kanal 1 osiloskop. Atur output generator sinyal berupa sinyal sinusoidal dengan tegangan 1 Volt peak-to-peak dan frekuensi 100 Hz kemudian amati sinyalnya pada kanal 1 osiloskop. Matikan kembali generator sinyal dan osiloskop.

c. Pasang perangkat praktikum seperti pada percobaan I praktikum modul 1 Filter FIR.

d. Nyalakan DSK dan lakukan prosedur DSK diagnostic.

e. Pada CCS, koneksikan CCS dengan DSK kemudian buka project Filter IIR dalam folder C:\CCStudio_v3.1 \MyProjects \Filter IIR.

f. Pada panel project bagian source terdapat 7 file yaitu DSK_Support.c, filtcoeff.c, IIR_ISRs.c, main.c, StartUp.c, vectors.asm dan lnk7.cmd. Pada panel project bagian include terdapat 5 file yaitu c6x.h, c6x11dsk.h, DSK_Config.h, DSK_Support.c, dan filtcoeff.h. Pada file filtcoeff.h terdapat koefisien filter IIR yang digunakan. Perhatikan koefisien filter yang ada dalam file ini.

g. Ganti koefisien filter pada file filtcoeff.h dengan cara sebagai berikut.

• Buka MATLAB. Pastikan current directory MATLAB berada pada folder C:\CCStudio_v3.1 \MyProjects \Filter IIR.

• Masukkan koefisien numerator dan denominator filter IIR yang diberikan oleh asisten masing-masing dengan variabel b dan a.

• Pada command window ketikkan : >> coeff = iircoeff(b,a,’filtcoeff’)

• Pada command window akan tampil koefisien filter IIR hasil konversi ke cascade- form.

• Pada CCS, nilai koefisien pada file filtcoeff.h akan berubah sesuai nilai koefisien yang ditampilkan pada command window MATLAB.

h. Nyalakan generator sinyal dan osiloskop.

i. Lakukan proses build project pada CCS dan load program ke DSK.

j. Jalankan program yang telah di-load ke DSK (run) sehingga output hasil pemrosesan DSK terlihat di osiloskop. Amati tegangan output DSK dan catat hasilnya.

k. Ubah frekuensi generator sinyal dengan tingkat kenaikan 100 Hz hingga mencapai frekuensi 1000 Hz. Kemudian ubah dari frekuensi 1000 Hz hingga 24000 Hz dengan kenaikan 1000 Hz. Amati tegangan output DSK setiap frekuensinya dan catat hasilnya.

l. Dengan hasil yang Anda dapat, perkirakan tipe filter IIR pada project ini dan plot respon magnituda filternya.

m. Hentikan pemrosesan pada DSK (Halt). Matikan generator sinyal dan osiloskop.

(Jangan ubah tegangan output generator sinyal (tetap 1 Voltpp) dan atur kembali frekuensi pada posisi 100 Hz).

n. Ulangi kembali dari langkah (g) untuk percobaan dengan koefisien filter yang baru.

o. Ulangi untuk 2 koefisien berbeda yang diberikan oleh asisten.

5. Tugas Pada Laporan Praktikum

1. Buatlah gambar respon magnituda dari hasil percobaan I untuk setiap koefisien filter yang diberikan!

2. Plot respon magnituda dari tiap koefisien filter yang digunakan dalam praktikum dengan menggunakan MATLAB!

3. Bandingkan dan analisis hasil yang Anda peroleh dari tugas No.1 dan No.2!. Identifikasi jenis filter apa sajakah yang digunakan pada praktikum ini! Tentukan frekuensi cut off masing-masing filternya!

(10)

4. Jelaskan keunggulan dan kekurangan filter IIR dibandingkan dengan filter FIR!

5. Jelaskan bagaimana cara mendesain filter IIR dengan menggunakan metode transformasi bilinear dan impulse invariance!

6. Jelaskan aplikasi dari filter IIR!

7. Tuliskan apa yang dapat Anda simpulkan dari praktikum ini!

6. Referensi

[1] Vinay K. Ingle, John G. Proakis. Digital Signal Processing using MATLAB. Brook Cole/Thomson Learning. 2000.

[2] Thab B. Welch, Cameron H. G. Wright, Michael G. Morrow. Real-time Digital Signal processing from MATLAB to C with TMS320C6x DSK. Taylor & Francis Group. 2006.

Referensi

Dokumen terkait

 Perusahaan penyalur yang ada sekarang menetapkan biaya distribusi yang mahal atau tidak dapat dipercaya perusahaan.  Jumlah penyalur yang berkualitas terbatas.  Perusahaan

Rapid Imaging and Mapping System (RIMS) adalah sistem instrumentasi yang digunakan untuk produksi jasa pencitraan (imaging) bumi, dan dari citra bumi tersebut dapat dihasilkan

Sebagai bagian dari perencanaan pembangunan pertanian, tujuan dan sasaran pembangunan pertanian subsektor tanaman pangan tahun 2015-2019 akan diwujudkan

Visi Prima Twin Putranti, S.ST, M.Kes selaku Kepala Program Studi D.III Kebidanan Fakultas Ilmu Kesehatan Universitas Muhammadiyah Ponorogo yang telah

Lokasi : Gedung Badan Pengembangan Sumber Daya Manusia (BPSDM) Provinsi Kalimantan Barat

Tujuan penelitian adalah mengimplementasikan suatu perangkat dengan tiga kanal masukan dan luaran untuk pengiriman sinyal arus 4-20 mA dan akuisisi data dari pemancar

Energi termal atau kalor ( Q) adalah energi yang mengalir dari benda yang satu ke Q) adalah energi yang mengalir dari benda yang satu ke benda yang lain karena

Hewan yang dapat disediakan adalah hewan lepas sapih dengan usia dan bobot tercantum.. Mohon maaf kami tidak dapat melayani pemesanan indukan, induk betina bunting, induk