Realisasi Active Noise Reduction Menggunakan Adaptive Filter Dengan Algoritma Least Mean Square (LMS) Berbasis Mikrokontroler LM3S6965.
i
REALISASI ACTIVE NOISE REDUCTION MENGGUNAKAN
ADAPTIVE FILTER DENGAN ALGORITMA LEAST MEAN
SQUARE (LMS) BERBASIS MIKROKONTROLER LM3S6965
Nama : Wito Chandra NRP : 0822081
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl.Prof.Drg.Suria Sumantri, MPH No. 65, Bandung, Indonesia.
Email : wito.c.91@gmail.com
ABSTRAK
Noise merupakan sinyal yang menggangu sinyal informasi. Pada Tugas Akhir ini, noise dihasilkan oleh loudspeaker, dan dideteksi oleh condenser microphone. Ada beberapa teknik untuk meredam noise salah satunya adalah dengan membangkitkan sinyal yang berkebalikan fasa dengan sinyal noise.
Pada Tugas Akhir ini, active noise reduction dibuat dengan menggunakan adaptive filter. Adaptive filter memiliki kemampuan untuk merubah koefisien-koefisien filter nya sendiri sesuai dengan algorima adaptif yang digunakan. Salah satu algoritma adaptif adalah Least-Mean-Square. Algorima Least-Mean-Square dipilih karena algoritma tersebut tidak terlalu kompleks untuk direalisasikan pada mikrokontroler LM3S6965. Mikrokontroler ini hanya sanggup untuk merealisasikan adaptive filter dengan orde maksimum 32 untuk frekuensi sampling 2 KSPS. Frekuensi noise yang akan dibangkitkan tidak akan melebihi 1 KHz, karena frekuensi sampling yang direalisasikan adalah 2 KSPS. Soundcard Scope digunakan untuk membangkitkan noise dan menampilkan spektrum frekuensi sinyal. Sedangkan MATLAB digunakan untuk menganalisa koefisien-koefisien filter.
Dari hasil pengamatan, maksimum redaman yang dapat dicapai oleh active noise reduction sebesar 21,14 dB. Filter dengan orde 32 dapat meredam noise lebih cepat dari pada filter dengan orde 4 dan 8.
(2)
ii
LM3S6965 MICROCONTROLLER BASED ACTIVE NOISE
REDUCTION REALIZATION USING ADAPTIVE FILTER
WITH LEAST MEAN SQUARE (LMS) ALGORITHM
Name : Wito Chandra NRP : 0822081
Department of Electrical Engineering, Faculty of Engineering, Maranatha Christian University, Jl.Prof.Drg.Suria Sumantri, MPH No. 65,
Bandung, Indonesia
Email : wito.c.91@gmail.com
ABSTRACT
Noise is a signal that interfere information signal. In this final project, noise is generated by loudspeaker and detected by condenser microphone. There are many method to reduce noise, one of them is by generating opposite phase signal with noise.
In this final project, active noise reduction is made using adaptive filter. Adaptive filter has an ability to change its own filter coefficients according to its adaptive algorithm. One of the adaptive algorithm is Square. Least-Mean-Square algorithm is chosen because that algorithm is not too complex to be realized on LM3S6965 microcontroller . In this research, adaptive-filter function is to reduce noise signals, which is called Active Noise Reduction. This microcontroller is only able to realize adaptive filter with maximum order 32 for sampling frequency 2 KSPS. Noise frequency should not be generated more than 1KHz, because sampling frequency is 2KSPS. Soundcard Scope is used to generate noise and displays signal frequency spectrum. MATLAB is used to analyze filter coefficeints.
From the observation results, the maximum reduction that can be achieved from active noise reduction is 21,14 dB. Filter with order 32 can reduce noise faster than filter with order 4 and 8.
(3)
iv
DAFTAR ISI
ABSTRAK... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... iv
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... x
BAB 1 PENDAHULUAN... 1
1.1 Latar Belakang ... 1
1.2 Perumusan Masalah ... 1
1.3 Tujuan... 2
1.4 Batasan Masalah ... 2
1.5 Metodologi Penelitian ... 2
1.6 Sistematika Penulisan Laporan ... 3
BAB 2 TEORI DASAR ... 4
2.1 Filter ... 4
2.1.1 Low-pass filter ... 6
2.1.2 High-pass filter ... 6
2.1.3 Band-pass filter ... 7
2.1.4 Band-stop filter ... 8
2.1.5 All-pass filter ... 9
2.2 Sistem waktu diskrit ... 10
2.2.1 Static – dynamic systems ... 11
2.2.2 Time-variant – time invariant systems ... 11
2.2.3 Linear – nonlinear systems ... 12
2.2.4 Stable – unstable systems ... 12
2.2.5 Causal – noncausal systems ... 12
2.3 Implementasi sistem waktu diskrit ... 12
2.3.1 Finite impulse response (FIR) ... 13
2.3.1 Infinite impulse response (IIR) ... 14
(4)
v
2.5 Algoritma Least-Mean-Square ... 17
2.6 Mikrokontroler LM3S6965 ... 20
BAB 3 PERANCANGAN DAN REALISASI ... 23
3.1 Sensor signal amplifier ... 24
3.2 Antialias filter ... 25
3.3 Analog-to-digital converter ... 28
3.4 Pemrosesan digital... 31
3.4.1 Inisialisasi mikrokontroler LM3S6965 ... 32
3.4.2 Algoritma Least-Mean-Square ... 34
3.4.2 Algoritma menampilkan informasi pada modul OLED ... 35
3.5 Digital-to-analog converter ... 36
3.6 Reconstruction filter ... 37
3.7 Audio amplifier ... 38
3.8 Penentuan orde adaptive filter ... 39
BAB 4 ANALISIS DAN DATA PENGAMATAN ... 41
4.1 Respon frekuensi antialias filter dan reconstruction filter ... 41
4.2 Analisis adaptive filter untuk satu noise sinusoidal ... 42
4.2.1 Koefisien adaptive filter untuk satu noise sinusoidal ... 42
4.2.2 Spektrum frekuensi pada error mic untuk satu noise sinusoidal ... 46
4.3 Analisis adaptive filter untuk dua noise sinusoidal ... 50
4.3.1 Koefisien adaptive filter untuk dua noise sinusoidal ... 50
4.3.2 Sepktrum frekuensi pada error mic untuk dua noise sinusoidal ... 54
4.4 Analisis adaptive filter untuk White-Gaussian-Noise ... 56
4.5 Analisis adaptive filter untuk beberapa noise dengan sinyal informasi ... 57
4.5.1 Koefisien adaptive filter dengan sinyal informasi ... 58
4.5.2 Spektrum frekuensi pada error mic dengan sinyal informasi ... 61
4.6 Kinerja active noise reduction dengan sinyal informasi suara untuk noise sinusoidal ... 63
(5)
vi
4.7 Kinerja active noise reduction untuk beberapa orde filter ... 64
BAB 5 KESIMPULAN DAN SARAN ... 65
5.1 Kesimpulan ... 65
5.2 Saran ... 65
DAFTAR PUSTAKA ... xi LAMPIRAN A FOTO HASIL PERANCANGAN
ACTIVE NOISE REDUCTION
LAMPIRAN B RANGKAIAN ACTIVE NOISE REDUCTION LAMPIRAN C LISTING PROGRAM
LAMPIRAN D DATASHEET
LAMPIRAN E PENDEKATAN TRANSFER FUNCTION RANGKAIAN ANALOG
(6)
vii
DAFTAR GAMBAR
Gambar 2.1 Definisi filter ... 4
Gambar 2.2 Contoh respon frekuensi low-pass filter... 6
Gambar 2.3 Contoh respon frekuensi high-pass filter ... 7
Gambar 2.4 Contoh respon frekuensi band-pass filter ... 8
Gambar 2.5 Contoh respon frekuensi band-stop filter ... 9
Gambar 2.6 Contoh respon fasa all-pass filter ... 10
Gambar 2.7 Realisasi direct-form sistem FIR ... 13
Gambar 2.8 Realisasi direct-form sistem IIR ... 15
Gambar 2.9 Adaptive filter ... 16
Gambar 2.10 Blok-diagram mikrokontroler LM3S6965 ... 21
Gambar 3.1 Sistem pengolahan sinyal digital ... 23
Gambar 3.2 Blok diagram sistem Active noise reduction ... 23
Gambar 3.3 Rangkaian sensor signal amplifier ... 25
Gambar 3.4 Topologi Sallen-Key low-pass filter ... 26
Gambar 3.5 Sallen-Key low-pass filter orde 2 ... 27
Gambar 3.6 Respon frekuensi low-pass filter ... 28
Gambar 3.7 Rangkaian biasing ... 28
Gambar 3.8 Blok diagram modul ADC ... 29
Gambar 3.9 Contoh penggunaan sample sequencer ... 30
Gambar 3.10 Stelaris LM3S6965 Ethernet Evaluation Board layout ... 31
Gambar 3.11 Diagram alir program utama ... 32
Gambar 3.12 Diagram alir prosedur initialize ... 33
Gambar 3.13 Diagram alir algoritma Least-Mean-Square ... 35
Gambar 3.14 Algoritma menampilkan layar pada modul OLED ... 36
Gambar 3.15 Diagram blok DAC0808 ... 36
Gambar 3.16 Rangkaian DAC ... 37
Gambar 3.17 Rangkaian reconstruction filter ... 38
Gambar 3.18 Rangkaian audio amplifier ... 38
(7)
viii
Gambar 4.1 Respon frekuensi antialias filter dan reconstruction filter ... 42
Gambar 4.2 Respon frekuensi beberapa orde filter dengan noise 200 Hz ... 44
Gambar 4.3 Respon frekuensi beberapa orde filter dengan noise 300 Hz ... 45
Gambar 4.4 Respon frekuensi beberapa orde filter dengan noise 500 Hz ... 45
Gambar 4.5 Respon frekuensi beberapa orde filter dengan noise 700 Hz ... 45
Gambar 4.6 Respon frekuensi beberapa orde filter dengan noise 800 Hz ... 46
Gambar 4.7 Spektrum frekuensi pada error mic untuk noise 200 Hz ... 47
Gambar 4.8 Spektrum frekuensi pada error mic untuk noise 300 Hz ... 47
Gambar 4.9 Spektrum frekuensi pada error mic untuk noise 500 Hz ... 48
Gambar 4.10 Spektrum frekuensi pada error mic untuk noise 700 Hz ... 48
Gambar 4.11 Spektrum frekuensi pada error mic untuk noise 800 Hz ... 49
Gambar 4.12 Sinyal pada error mic untuk noise 200 Hz ... 50
Gambar 4.13 Respon frekuensi beberapa orde filter dengan noise 200 & 300 Hz ... 52
Gambar 4.14 Respon frekuensi beberapa orde filter dengan noise 300 & 400 Hz ... 53
Gambar 4.15 Respon frekuensi beberapa orde filter dengan noise 600 & 700 Hz ... 53
Gambar 4.16 Respon frekuensi beberapa orde filter dengan noise 700 & 800 Hz ... 53
Gambar 4.17 Spektrum frekuensi pada error mic dengan noise 200 & 300 Hz ... 54
Gambar 4.18 Spektrum frekuensi pada error mic dengan noise 300 & 400 Hz ... 54
Gambar 4.19 Spektrum frekuensi pada error mic dengan noise 600 & 700 Hz ... 55
Gambar 4.20 Spektrum frekuensi pada error mic dengan noise 700 & 800 Hz ... 55
Gambar 4.21 Spektrum frekuensi pada error mic dengan White-Gaussian-Noise ... 57
Gambar 4.22 Respon frekuensi filter dengan sinyal informasi 250 Hz untuk noise sinusoidal ... 60
(8)
ix
Gambar 4.23 Respon frekuensi filter dengan sinyal informasi 250 Hz
untuk White-Gaussian-Noise ... 60
Gambar 4.24 Spektrum frekuensi pada error mic dengan sinyal informasi 250 Hz untuk noise sinusoidal 200 & 300 Hz ... 61
Gambar 4.25 Spektrum frekuensi pada error mic dengan sinyal informasi 250 Hz untuk White-Gaussian-Noise ... 62
Gambar 4.26 Sinyal pada error mic dengan sinyal informasi 250 Hz untuk sinyal noise 200 & 300 Hz ... 63
Gambar 4.27 Sinyal informasi (“HALO”) ... 63
Gambar 4.28 Hasil pem-filter-an dengan sinyal informasi suara ... 64
(9)
x
DAFTAR TABEL
Tabel 3.1 Jumlah sampel tiap sequencer ... 30
Tabel 3.2 Register-register yang dibaca dan ditulis untuk prosedur initialize .... 34
Tabel 3.3 Tabel jumlah clock cycle untuk tiap orde filter ... 39
Tabel 4.1 Koefisien filter ternormalisasi orde 4 dengan 1 noise sinusoidal ... 42
Tabel 4.2 Koefisien filter ternormalisasi orde 8 dengan 1 noise sinusoidal ... 43
Tabel 4.3 Koefisien filter ternormalisasi orde 32 dengan 1 noise sinusoidal ... 43
Tabel 4.4 Hasil redaman satu noise sinusoidal ... 49
Tabel 4.5 Koefisien filter ternormalisasi orde 4 untuk dua noise sinusoidal ... 51
Tabel 4.6 Koefisien filter ternormalisasi orde 8 untuk dua noise sinusoidal ... 51
Tabel 4.7 Koefisien filter ternormalisasi orde 32 untuk dua noise sinusoidal .... 51
Tabel 4.8 Hasil redaman (dB) dua noise sinusoidal ... 56
Tabel 4.9 Koefisien filter ternormalisasi orde 4 dengan sinyal informasi 250 Hz ... 58
Tabel 4.10 Koefisien filter ternormalisasi orde 8 dengan sinyal informasi 250 Hz ... 58
Tabel 4.11 Koefisien filter ternormalisasi orde 32 dengan sinyal informasi 250 Hz ... 58
(10)
A-1
LAMPIRAN A
FOTO HASIL PERANCANGAN ACTIVE NOISE REDUCTION
(Headphone)
(11)
B-1
LAMPIRAN B
(12)
(13)
(14)
(15)
(16)
(17)
C-1
LAMPIRAN C
LISTING PROGRAM
main.c #include "inc/lm3s6965.h" #include "inc/hw_types.h" #include "drivers/rit128x96x4.h" #include "driverlib/sysctl.h" #include "utilities.h" #include <stdio.h> #include <math.h> #include <stdlib.h> #define ORDER 32 char buffer[32]; long adcBuffer[4]; long i = 0;long pointer = 0; float leftInput[ORDER]; float leftError; float rightInput[ORDER]; float rightError; float leftWeight[ORDER]; float rightWeight[ORDER]; float leftOutput = 0; float rightOutput = 0; long j = 0;
float desire[8] = {0, .175, .25, .175, 0, -.175, -.25, -.175}; int main(){
initialize();
setStatusLed(true); for(i = 0; i < ORDER; i++){ leftInput[i] = 0; leftWeight[i] = 0; rightInput[i] = 0; rightWeight[i] = 0; }
while(getKeypad(0) == KEY_TIMEOUT){ for(i = ORDER - 1; i > 0; i --){
leftInput[i] = leftInput[i - 1]; rightInput[i] = rightInput[i - 1];
}
getAdc(adcBuffer);
leftInput[0] = (((float)adcBuffer[0]/512) - 1); leftError = desire[j] –
(18)
C-2 ((float)adcBuffer[2]/512) + 1;
rightInput[0] = ((float)adcBuffer[1]/512) - 1;
rightError = desire[j] - ((float)adcBuffer[3]/512) + 1;
for(i = 0; i < ORDER; i ++){
leftWeight[i] += (.1F*leftInput[i]*leftError); rightWeight[i] += (.1F*rightInput[i]*rightError); }
leftOutput = 0; rightOutput = 0;
for(i = 0; i < ORDER; i ++){
leftOutput += leftInput[i]*leftWeight[i]; rightOutput += rightInput[i]*rightWeight[i];
}
j++; if(j == 8){ j = 0; }
leftOutput += desire[j]; rightOutput += desire[j]; if(leftOutput > 1){ leftOutput = 1;
} else if(leftOutput < -1){ leftOutput = -1; }
if(rightOutput > 1){ rightOutput = 1;
} else if(rightOutput < -1){ rightOutput = -1; }
setDac1((rightOutput + 1) * 127); setDac2((leftOutput + 1) * 127); delayUs(30); //orde 32
//delayUs(345); //orde 8 //delayUs(400); //orde 4 }
i = 0;
while(i < ORDER){
RIT128x96x4Clear();
for(i = pointer; (i < ORDER) && (i < pointer + 9); i++){ sprintf(buffer, "W%d = %d", i,
(int)(leftWeight[i]*1000));
RIT128x96x4StringDraw(buffer, 0, 10 * (i - pointer), 8, STYLE_NORMAL);
}
while(getKeypad(0) == KEY_TIMEOUT); pointer += 9;
} }
(19)
C-3
utilities.h
#ifndef __UTILITIES_H__ #define __UTILITIES_H__
#include "inc/hw_types.h"
#define KEY_SELECT 0x00000000 #define KEY_TIMEOUT 0xFFFFFFFF void initialize(void);
//inisialisasi mikrokontroler LM3S6965 void setStatusLed(tBoolean state); //mengatur keadaan led status int getKeypad(int timeoutms);
//me-return tombol yang ditekan selama timeoutms void delayMs(int timems);
//delay selama timems milisekon void delayUs(int timeus);
//delay selama timeus mikrosekon void getAdc(long * values); //membaca nilai – nilai adc void setDac1(int data); //mengatur nilai DAC1 void setDac2(int data); //mengatur nilai DAC1 #endif
(20)
C-4 utilities.c #include "utilities.h" #include "inc/hw_pwm.h" #include "inc/hw_types.h" #include "inc/hw_memmap.h" #include "inc/lm3s6965.h" #include "driverlib/pwm.h" #include "driverlib/gpio.h" #include "driverlib/sysctl.h" #include "driverlib/systick.h" #include "drivers/rit128x96x4.h" #include "driverlib/adc.h" #include "driverlib/uart.h" #include <stdlib.h> void initialize(void){
SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_XTAL_8MHZ | SYSCTL_OSC_MAIN); SYSCTL_RCGC0_R |= 0x00010300;
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOD); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF); SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOG);
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6);
GPIOPinTypeGPIOOutput(GPIO_PORTD_BASE, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7);
GPIOPinTypeGPIOOutput(GPIO_PORTE_BASE, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3);
GPIOPinTypeGPIOOutput(GPIO_PORTF_BASE, GPIO_PIN_0); GPIOPinTypeGPIOOutput(GPIO_PORTG_BASE, GPIO_PIN_0); GPIOPinTypeGPIOInput(GPIO_PORTF_BASE, GPIO_PIN_1); GPIOPadConfigSet(GPIO_PORTF_BASE, GPIO_PIN_1, GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); RIT128x96x4Init(1000000);
ADCSequenceConfigure(ADC0_BASE, 1, ADC_TRIGGER_PROCESSOR, 0); ADCSequenceStepConfigure(ADC0_BASE, 1, 0,ADC_CTL_CH0); ADCSequenceStepConfigure(ADC0_BASE, 1, 1,ADC_CTL_CH1); ADCSequenceStepConfigure(ADC0_BASE, 1, 2,ADC_CTL_CH2); ADCSequenceStepConfigure(ADC0_BASE, 1, 3,ADC_CTL_IE | ADC_CTL_END | ADC_CTL_CH3);
(21)
C-5 ADCReferenceSet(ADC0_BASE, ADC_REF_INT);
}
void setStatusLed(tBoolean state){ if(state){
GPIO_PORTF_DATA_R |= 0x01; } else {
GPIO_PORTF_DATA_R &= 0xFE; }
}
int getKeypad(int timeoutms){ int i = 0;
if((GPIO_PORTF_DATA_R & 0x02) == 0x00){ while((GPIO_PORTF_DATA_R & 0x02) == 0x00); return KEY_SELECT;
}
for(i = 0; i < timeoutms; i++){
if((GPIO_PORTF_DATA_R & 0x02) == 0x00){ while((GPIO_PORTF_DATA_R & 0x02) == 0x00); return KEY_SELECT; } delayMs(1); } return KEY_TIMEOUT; }
void delayMs(int timems){
SysCtlDelay(timems * 50000 / 3); }
void delayUs(int timeus){
SysCtlDelay(timeus * 50 / 3); }
void getAdc(long * values){
ADCIntClear(ADC0_BASE, 1);
ADCProcessorTrigger(ADC0_BASE, 1);
while(!ADCIntStatus(ADC0_BASE, 1, false)){}; ADCSequenceDataGet(ADC0_BASE, 1, values); }
void setDac1(int data){ char dataB = 0; char dataD = 0; char dataG = 0; int i = 0;
for(i = 0; i < 4; i++){ dataD = dataD << 1;
(22)
C-6 dataD |= (data >> i) & 0x01;
}
dataD = (dataD << 4) & 0xF0;
for(i = 5; i < 8; i++){ dataB = dataB << 1;
dataB |= (data >> i) & 0x01; }
dataB = (dataB << 4) & 0x70; dataG = (data >> 4) & 0x01; GPIO_PORTB_DATA_R &= 0x0F; GPIO_PORTB_DATA_R |= dataB; GPIO_PORTD_DATA_R &= 0x0F; GPIO_PORTD_DATA_R |= dataD; GPIO_PORTG_DATA_R &= 0xFE; GPIO_PORTG_DATA_R |= dataG; }
void setDac2(int data){ char dataB = 0; char dataE = 0; int i = 0;
for(i = 0; i < 4; i++){ dataE = dataE << 1;
dataE |= (data >> i) & 0x01;
}
dataE = dataE & 0x0F;
for(i = 4; i < 8; i++){ dataB = dataB << 1;
dataB |= (data >> i) & 0x01; }
dataB = dataB & 0x0F; GPIO_PORTB_DATA_R &= 0xF0; GPIO_PORTB_DATA_R |= dataB; GPIO_PORTE_DATA_R &= 0xF0; GPIO_PORTE_DATA_R |= dataE; }
(23)
D-1
LAMPIRAN D
(24)
(25)
(26)
(27)
(28)
(29)
(30)
E-1
LAMPIRAN E
PENDEKATAN TRANSFER FUNCTION RANGKAIAN
ANALOG
Biasing + kapasitor kopling
Rangkaian Biasing + kapasitor kopling dapat dilihat pada Gambar 3.7. Dengan menyederhanakan rangkaian Biasing + kapasitor kopling dihitung, maka didapat transfer function sebagai berikut:
�1 =
�1 +�2 +�3 ||�4
�1 +�2 +�3 ||�4 + �1�3
�1 =
5,45 103 5,45 103+ 109
47 �
= 5,45 10 3
5,45 103 + 109 47 �
�1 =
� �+ 3900
Low-pass filter
Rangkaian pass filter dapat dilihat pada Gambar 3.5. Transfer function low-pass filter dapat diturunkan dengan menggunakan persamaan (3.1).
�2 =
1
(31)
E-2
Amplifier
Rangkaian amplifier dapat dilihat pada Gambar 3.3. Rangkaian amplifier ini hanya memperkuat semua amplituda pada frekuensi yang masuk, sehingga transfer function amplifier hanya merupakan penguatan saja.
�3 = �
Tahanan input rangkaian amplifier ini adalah 50 KOhm dapat dilihat pada datasheet LM386.
Kapasitor kopling
Nilai kapasitor kopling yang digunakan adalah 47 nF. Dengan mengetahui tahanan input dari amplifier, maka transfer function kapasitor kopling dapat ditulis sebagai berikut
�4 =
50 103 50 103+ 109
47 �
�4 =
� �+ 425,5
Dengan mengalikan semua transfer function maka didapat:
�= �1�2�3�4
=� �
2
(32)
E-3 Dengan menggunakan MATLAB, maka respon frekuensi dengan A = 20 dapat dilihat pada gambar berikut.
(33)
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Noise merupakan sinyal yang mengganggu sinyal informasi. Noise dapat berasal dari berbagai sumber. Salah satu contoh sumber noise yang ada dalam kehidupan sehari-hari adalah motor. Pada saat motor dinyalakan, motor menghasilkan beberapa noise yang menggangu lingkungan sekitarnya. Salah satu noise yang dihasilkan motor adalah suara.
Konsep dasar untuk menghilangkan sinyal noise adalah dengan membangkitkan sinyal yang memiliki fasa yang terbalik dengan sinyal noise. Hanya saja dalam prakteknya, membangkitkan sinyal yang memiliki fasa yang terbalik dengan sinyal noise sangatlah rumit. Untuk itu, cara yang memungkinkan untuk dipraktekkan adalah dengan memprediksi sinyal noise dan kemudian menghasilkan sinyal yang memiliki fasa yang terbalik terhadap sinyal yang diprediksi.
Seiring dengan perkembangan teknologi signal processing, berbagai macam filter telah dikembangkan dan diaplikasikan untuk berbagai macam kebutuhan. Khususnya adaptive filter, filter ini dapat merubah transfer function-nya sendiri tergantung pada algoritma yang digunakan untuk menangani error. Algoritma yang digunakan dalam Tugas Akhir ini adalah Least Mean Square (LMS).
1.2 Perumusan Masalah
Perumusan masalah dalam Tugas Akhir ini adalah:
Bagaimana cara merealisasikan Active Noise Reduction berbasis mikrokontroler LM3S6965?
(34)
2
1.3 Tujuan
Tujuan dari Tugas Akhir ini adalah:
Merealisasikan Active Noise Reduction berbasis mikrokontroler LM3S6965.
Membandingkan hasil pengurangan noise untuk tiap orde filter.
1.4 Batasan Masalah
Beberapa batasan masalah pada Tugas Akhir ini adalah:
Frekuensi noise yang akan dinetralkan berkisar dari 50 Hz hingga 1 kHz.
Realisasi dilakukan dengan menggunakan mikrokontroler LM3S6965.
Algoritma adaptif menggunakan Least Mean Square (LMS).
Realisasi dilakukan pada headphone.
Jenis noise yang dibangkitkan adalah sinusoidal dan white gaussian noise.
Pengamatan data menggunakan software Soundcard Scope dan MATLAB.
1.5 Metodologi Penelitian
Dalam melakukan penelitian ini, metode yang dilakukan peneliti adalah sebagai berikut:
Membaca literatur
Literature yang diperoleh berupa Application note untuk aplikasi yang digunakan, text book mengenai signal processing dan ARM.
Diskusi
Diskusi dilakukan dengan dosen ataupun mahasiswa-mahasiswa untuk memperoleh saran maupun informasi yang terkait dengan penelitian ini.
Realisasi
Realisasi Active noise reduction dilakukan dengan menggunakan mikrokontroler LM3S6965.
(35)
3
Pengukuran
Pengukuran noise yang berhasil dinetralkan dilakukan dengan mengukur nilai error pada adaptive filter.
Validasi
Validasi dilakukan dengan membandingkan komponen-komponen adaptive filter dari simulasi MATLAB dengan hasil realisasi.
1.6 Sistematika Penulisan Laporan
Penulisan Tugas Akhir mengikuti format sebagai berikut:
Bab 1 menyajikan pendahuluan yang membahas tentang latar belakang pemilihan
topik, perumusan masalah, tujuan yang ingin dicapai, batasan masalah, serta sistematika penulisan laporan.
Bab 2 membahas tentang teori dasar digital signal processing, adaptive filter,
LMS algorithm, dan mikrokontroler LM3S6965.
Bab 3 membahas tentang perancangan dan realisasi adaptive filter dengan
mikrokontroler LM3S6965
Bab 4 berisi analisis mengenai karakteristik adaptive filter pada alat untuk
beberapa orde dan hasil penetralan noise yang didapat.
Bab 5 berisi kesimpulan dan saran-saran untuk pengembangan lebih lanjut Tugas
(36)
65
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil perancangan dan pengamatan dapat disimpulkan bahwa:
Active noise reduction berhasil direalisasikan menggunakan mikrokontroller LM3S6965 dan dapat mengurangi noise dengan redaman maksimum sebesar 21,14 dB.
Maksimum orde filter yang dapat dicapai dalam Tugas Akhir ini adalah 32.
Dari hasil pengamatan, orde filter 32 memiliki respon yang paling cepat dalam meredam noise jika dibandingkan dengan orde filter 4 dan 8.
Filter yang dirancang belum mampu meredam White-Gaussian noise.
5.2 Saran
Untuk pengembangan lebih lanjut dari Tugas Akhir ini, penulis menyarankan hal-hal berikut:
Dalam penelitian kedepannya, lebih baik menggunakan DSP (Digital Signal Processor) supaya orde filter yang dapat dicapai lebih tinggi.
Dalam penelitian berikutnya, lebih disarankan menggunakan resolusi ADC dan DAC yang lebih besar supaya alat yang dirancang mampu mendeteksi dan meredam noise yang memiliki amplituda yang kecil.
(37)
xi
DAFTAR PUSTAKA
[1] Carter, Bruce. 2000. A Single-Supply Op-amp Circuit Collection. Texas, USA. Texas Instruments.
[2] Haykin, Simon. 1996. ADAPTIVE FILTER THEORY Third Edition. New Jersey, USA. Prentice Hall.
[3] Luminary Micro. 2008. Using the Stellaris® Microcontroller Analog-to-Digital Converter (ADC). USA.
[4] Mancini, Roy. 2002. Op Amps For Everyone. Texas, USA. Texas Instruments. [5] Proakis JG, and Manolakis DG. 1996. DIGITAL SIGNAL PROCESSING Principles, Algorithms, and Applications Third Edition. New Jersey, USA. Prentice Hall.
[6] Texas Instruments. 2011. Stellaris® LM3S6965 Microcontroller Datasheet. Texas, USA.
(1)
E-3 Dengan menggunakan MATLAB, maka respon frekuensi dengan A = 20 dapat dilihat pada gambar berikut.
(2)
1
BAB 1
PENDAHULUAN
1.1 Latar Belakang
Noise merupakan sinyal yang mengganggu sinyal informasi. Noise dapat berasal dari berbagai sumber. Salah satu contoh sumber noise yang ada dalam kehidupan sehari-hari adalah motor. Pada saat motor dinyalakan, motor menghasilkan beberapa noise yang menggangu lingkungan sekitarnya. Salah satu noise yang dihasilkan motor adalah suara.
Konsep dasar untuk menghilangkan sinyal noise adalah dengan membangkitkan sinyal yang memiliki fasa yang terbalik dengan sinyal noise. Hanya saja dalam prakteknya, membangkitkan sinyal yang memiliki fasa yang terbalik dengan sinyal noise sangatlah rumit. Untuk itu, cara yang memungkinkan untuk dipraktekkan adalah dengan memprediksi sinyal noise dan kemudian menghasilkan sinyal yang memiliki fasa yang terbalik terhadap sinyal yang diprediksi.
Seiring dengan perkembangan teknologi signal processing, berbagai macam filter telah dikembangkan dan diaplikasikan untuk berbagai macam kebutuhan. Khususnya adaptive filter, filter ini dapat merubah transfer function-nya sendiri tergantung pada algoritma yang digunakan untuk menangani error. Algoritma yang digunakan dalam Tugas Akhir ini adalah Least Mean Square (LMS).
1.2 Perumusan Masalah
Perumusan masalah dalam Tugas Akhir ini adalah:
Bagaimana cara merealisasikan Active Noise Reduction berbasis mikrokontroler LM3S6965?
(3)
2
1.3 Tujuan
Tujuan dari Tugas Akhir ini adalah:
Merealisasikan Active Noise Reduction berbasis mikrokontroler LM3S6965.
Membandingkan hasil pengurangan noise untuk tiap orde filter.
1.4 Batasan Masalah
Beberapa batasan masalah pada Tugas Akhir ini adalah:
Frekuensi noise yang akan dinetralkan berkisar dari 50 Hz hingga 1 kHz. Realisasi dilakukan dengan menggunakan mikrokontroler LM3S6965. Algoritma adaptif menggunakan Least Mean Square (LMS).
Realisasi dilakukan pada headphone.
Jenis noise yang dibangkitkan adalah sinusoidal dan white gaussian noise. Pengamatan data menggunakan software Soundcard Scope dan MATLAB.
1.5 Metodologi Penelitian
Dalam melakukan penelitian ini, metode yang dilakukan peneliti adalah sebagai berikut:
Membaca literatur
Literature yang diperoleh berupa Application note untuk aplikasi yang digunakan, text book mengenai signal processing dan ARM.
Diskusi
Diskusi dilakukan dengan dosen ataupun mahasiswa-mahasiswa untuk memperoleh saran maupun informasi yang terkait dengan penelitian ini.
Realisasi
Realisasi Active noise reduction dilakukan dengan menggunakan mikrokontroler LM3S6965.
(4)
3 Pengukuran
Pengukuran noise yang berhasil dinetralkan dilakukan dengan mengukur nilai error pada adaptive filter.
Validasi
Validasi dilakukan dengan membandingkan komponen-komponen adaptive filter dari simulasi MATLAB dengan hasil realisasi.
1.6 Sistematika Penulisan Laporan
Penulisan Tugas Akhir mengikuti format sebagai berikut:
Bab 1 menyajikan pendahuluan yang membahas tentang latar belakang pemilihan topik, perumusan masalah, tujuan yang ingin dicapai, batasan masalah, serta sistematika penulisan laporan.
Bab 2 membahas tentang teori dasar digital signal processing, adaptive filter, LMS algorithm, dan mikrokontroler LM3S6965.
Bab 3 membahas tentang perancangan dan realisasi adaptive filter dengan mikrokontroler LM3S6965
Bab 4 berisi analisis mengenai karakteristik adaptive filter pada alat untuk beberapa orde dan hasil penetralan noise yang didapat.
Bab 5 berisi kesimpulan dan saran-saran untuk pengembangan lebih lanjut Tugas Akhir ini.
(5)
65
BAB 5
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dari hasil perancangan dan pengamatan dapat disimpulkan bahwa:
Active noise reduction berhasil direalisasikan menggunakan mikrokontroller LM3S6965 dan dapat mengurangi noise dengan redaman maksimum sebesar 21,14 dB.
Maksimum orde filter yang dapat dicapai dalam Tugas Akhir ini adalah 32.
Dari hasil pengamatan, orde filter 32 memiliki respon yang paling cepat dalam meredam noise jika dibandingkan dengan orde filter 4 dan 8.
Filter yang dirancang belum mampu meredam White-Gaussian noise.
5.2 Saran
Untuk pengembangan lebih lanjut dari Tugas Akhir ini, penulis menyarankan hal-hal berikut:
Dalam penelitian kedepannya, lebih baik menggunakan DSP (Digital Signal Processor) supaya orde filter yang dapat dicapai lebih tinggi.
Dalam penelitian berikutnya, lebih disarankan menggunakan resolusi ADC dan DAC yang lebih besar supaya alat yang dirancang mampu mendeteksi dan meredam noise yang memiliki amplituda yang kecil.
(6)
xi
DAFTAR PUSTAKA
[1] Carter, Bruce. 2000. A Single-Supply Op-amp Circuit Collection. Texas, USA. Texas Instruments.
[2] Haykin, Simon. 1996. ADAPTIVE FILTER THEORY Third Edition. New Jersey, USA. Prentice Hall.
[3] Luminary Micro. 2008. Using the Stellaris® Microcontroller Analog-to-Digital Converter (ADC). USA.
[4] Mancini, Roy. 2002. Op Amps For Everyone. Texas, USA. Texas Instruments. [5] Proakis JG, and Manolakis DG. 1996. DIGITAL SIGNAL PROCESSING Principles, Algorithms, and Applications Third Edition. New Jersey, USA. Prentice Hall.
[6] Texas Instruments. 2011. Stellaris® LM3S6965 Microcontroller Datasheet. Texas, USA.