Anda di halaman 1dari 8

TUGAS AKHIR

PRAKTIKUM PENGOLAHAN SINYAL DIGITAL


IMPLEMENTASI FILTER
Disusun untuk memenuhi tugas
Mata Kuliah Praktikum Pengolahan Sinyal Digital
Semester 6
PEMBIMBING :

Achmad Setiawan, ST., MT

Nama

: Mohamad Arif Khoirul Rahman

NIM

: 1341160007

Kelas

: JTD-3B

Absen

: 11

Program Studi Jaringan Telekomunikasi Digital


Jurusan Teknik Elektro

POLITEKNIK NEGERI MALANG


Jalan Soekarno-Hatta No. 9, PO.BOX 04 Malang 65141 Jawa Timur - Indonesia
Telp. (0341) 404424, 404425 Fax. (0341) 404420

Tahun 2016

TUTORIAL IMPLEMENTASI FILTER


SOAL 3
Diketahui soal sebagai berikut :
y ( n )=0.25 y ( n2 )+ 0.1 y ( n1 )+ 0.1 x ( n ) +0.2 x ( n1 )
Implementasikan sistem diskrit diatas dan analisalah unjuk kerjanya :
SOLUSI
A. ANALISIS UNJUK KERJA
%-------------------------------------------------------------------%
y(n)=0.25y(n-2)+0.1y(n-1)+0.1x(n)+0.2x(n-1)
%-------------------------------------------------------------------clear;
clc;
Num =[0.1 0.2];
DeNum =[1 -0.1 -0.25];
%----------------Respon Step------------------n = 0 : 40;
x = step(n,0);
y = filter(Num, DeNum, x);
figure; stem(n , y); grid;
%--------------Letak Zero-Pole-----------------[z , p, k ] = tf2zpk(Num, DeNum);
figure; zplane(z, p);
%--------------Respon Frekuensi----------------wd = 0: 0.01 : pi;
hz = freqz(Num, DeNum, wd);
Hz = 20*log10( abs(hz) );
figure; plot( wd, Hz); grid;

Analisa Grafik dari segi:


a. Kestabilan
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0

10

15

20

25

30

35

40

Analisa:
Dari gambar respon diatas dapat diketahui bahwa respon tidak mendekati 0 sehingga
respon step tidak stabil.

b. Respon BIBO

Imaginary Part

0.5

-0.5

-1
-2

-1.5

-1

-0.5
Real Part

0.5

Analisa :
Dari letak zero-pole diatas dapat dilihat bahwa nilai zero berada pada titik 0 atau kurang
dari 1 sehingga nilai eksponensialnya menurun dan ada satu pole yang letaknya lebih dari
-1 (keluar dari cakupan lingkaran) sehingga dapat dikatakan bahwa sistem yang
digunakan tidak stabil.

c. Respon Frekuensi

-6
-8
-10
-12
-14
-16
-18
-20
0

0.5

1.5

2.5

3.5

Analisa :
Dari gambar diatas menunjukkan bahwa respon frekuensi yang dihasilkan adalah respon
frekuensi LPF. Dimana Low Pass Filter (LPF) atau Filter Lolos Bawah adalah filter yang
hanya melewatkan sinyal dengan frekuensi yang lebih rendah dari frekuensi cut-off (fc)
dan akan melemahkan sinyal dengan frekuensi yang lebih tinggi dari frekuensi cut-off
(fc).

B. IMPLEMENTASI
/*****************************************************

This program was produced by the


CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 17/07/2016
Author : NeVaDa
Company :
Comments:

Chip type
: ATmega32
Program type
: Application
AVR Core Clock frequency: 16,000000 MHz
Memory model
: Small
External RAM size
:0
Data Stack size
: 512
*****************************************************/
#include <mega32.h>
#include <delay.h>
#define ADC_VREF_TYPE 0x60
// Read the 8 most significant bits
// of the AD conversion result
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
// Declare your global variables here

void main(void)
{
unsigned char data;
float x, y, y_1=0, y_2=0, x_1=0;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out
Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0
State0=0
PORTC=0x00;
DDRC=0xFF;
// ADC initialization
// ADC Clock frequency: 1000,000 kHz
// ADC Voltage Reference: AVCC pin
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x84;
while (1)
{
// Place your code here
//y(n)=0.25y(n-2)+0.1y(n-1)+0.1x(n)+0.2x(n-1)
read_adc(0);
data= ADCH;

//Hexadecimal

x= data * 0.019; //Hex to float


x= x - 1.2;
//Kurangi dengan bias
y = 0.25*y_2 + 0.1*y_1 +0.1* x + 0.2*x_1;

y_2= y_1;
y_1= y;

x_1= x;
y= y + 1.2;
data= y*51;

//Beri bias agar tidak Negatif


//konversi float to hex

PORTC= data;

//DAC

};
}
Gambar Hasil Simulasi Proteus :

Analisa :
Dari gambar diatas dapat diketahui bahwa implementasi dari persamman diatas sesuai
dengan hasil dari respon frekuensi. Namun memiliki range yang berbeda.

Anda mungkin juga menyukai