Top Banner
TUGAS PEMROSESAN SINYAL DIGITAL Transformasi Fourier Diskrit dan Spektrum Sinyal Disusun oleh : Nama : Ryan Eko Saputro NIM : 12/331380/PA/14638 Nama : Adiya Riska Putra NIM : 12/331108/PA/14450 JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2015
16

Transformasi Fourier Diskrit dan Spektrum Sinyal

Mar 28, 2023

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Transformasi Fourier Diskrit dan Spektrum Sinyal

TUGAS

PEMROSESAN SINYAL DIGITAL

Transformasi Fourier Diskrit dan Spektrum Sinyal

Disusun oleh :

Nama : Ryan Eko Saputro

NIM : 12/331380/PA/14638

Nama : Adiya Riska Putra

NIM : 12/331108/PA/14450

JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS GADJAH MADA

YOGYAKARTA

2015

Page 2: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

2 Ryan Eko Saputro 12/331380/PA/14638

4.29. Membuat signal X dari penjumlahan 3 buah sinyal X1, X2, dan X3.

Diketahui signal X1, X2, dan X3 sebagai berikut:

x1 (t) = 5 cos[2П(500)t]

x2 (t) = 5 cos[2П(1200)t + 0.25 П]

x3 (t) = 5 cos[2П(1800)t + 0.5 П]

a. Membuat program matlab untuk melakukan sampling terhadap tiga buah signal di

atas dan membuat signal x(n) yang merupakan penjumlahan dari ketiga buah

gelombang. (x(n) = x1(n)+x2(n)+x3(n)).

Dari ketentuan, diketahui bahwa sampling rate yang digunakan adalah

8000Hz. Listing matlab:

Listing MatLab penjumlahan dari tiga sinyal

Kode Listing Penjabaran arti

kode listing

1 fs = 8000; inisialisasi suatu variabel fs

yang merepresentasikan

frekuensi sampling sebesar

8000Hz atau 8kHz

2 t=0:(1/fs):0.1; diinisialisasika suatu variabel t, dengan sampling dilakukan selama 0.1 detik dengan interval atau jeda periode sebesar 1/fs. Sehingga selama waktu sampling 0.1 detik, terdapat 8000 data.

3

x1=5*cos(2*pi*500*t);

x2=5*cos(2*pi*1200*t+0.25*pi);

x3=5*cos(2*pi*1800*t+0.5*pi);

inisialisasi signal x1, x2, dan x3

4 x = x1+x2+x3; inisialisasi signal “x” yang merupakan suatu penjumlahan dari ketiga sinyal (x1, x2, dan x3)

Page 3: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

3 Ryan Eko Saputro 12/331380/PA/14638

Berikut merupakan sintaks plot gelombang x1, x2, x3 dan x selama 0,1 detik:

Listing plot sinyal dari penjumlahan tiga sinyal

1 %plot x1

figure(1);

plot(t,x1)

axis([0 0.1 -6 6])

title('Signal X1')

xlabel('time (s)')

ylabel('Amplitudo')

Memplot sinyal x1 pada waktu (t) di jendela atau figure 1

%plot x2

figure(2);

plot(t,x2)

axis([0 0.1 -6 6])

title('Signal X2')

xlabel('time (s)')

ylabel('Amplitudo')

Memplot sinyal x2 pada

waktu (t) di jendela atau

figure 2

%plot x3

figure(3);

plot(t,x3)

axis([0 0.1 -6 6 ])

title('Signal X3')

xlabel('time (s)')

ylabel('Amplitudo')

Memplot sinyal x3 pada waktu (t) di jendela atau figure 3

Page 4: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

4 Ryan Eko Saputro 12/331380/PA/14638

%plot x = x1+x2+x3%

figure(4);

plot(t,x)

axis([0 0.1 -16 16])

title('Signal X')

xlabel('time (s)')

ylabel('Amplitudo')

Memplot sinyal xyang berupa perpaduan atau penjumlahan dari ketiga sinyal (x1, x2, dan x3) pada waktu (t) di jendela atau figure 4

Output dari listing :

Gambar 1 : plot gelombang x1

Gambar 2 : plot gelombang x2

Page 5: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

5 Ryan Eko Saputro 12/331380/PA/14638

Gambar 3 : plot gelombang x3

Gambar 4 : plot signal x

Dari ketentuan mengenai gelombang dan pengamatan plot gelombang

terhadap gelombang x1, x2 , dan x3 dapat diketahui bahwa frekuensi gelombang

untuk x1 adalah 500Hz, frekuensi gelombang x2 adalah 1200Hz, dan frekuensi

gelombang untuk x3 adalah 1800Hz. Sehingga dapat disimpulkan bahwa gelombang

x dimana gelombang ini terbentuk dari penjumlahn ketiga gelombang x1, x2, dan x3

memiliki tiga buah komponen frekuensi yaitu 500Hz, 1200Hz, dan 1800Hz.

b. Melakukan plot spektrum signal gelombang x(n).

Gelombang x dapat dianalisis dengan menggunakan fast fourier transform.

Definisi transformasi fourier sebagai tool/alat untuk mengubah suatu sinyal dari

kawasan waktu ke kawasan frekuensi. Sinyal gelombang x (penjumlahan dari x1,x2,

Page 6: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

6 Ryan Eko Saputro 12/331380/PA/14638

dan x3) merupakan suatu sinyal yang menunjukkan ranah waktu maka, untuk dapat

menganalisis gelombang tersebut menjadi ranah frekuensi maka fast fourier

transform menjadi kunci pada pembahasan ini.

Untuk melakukan implementasi fast fourier transform dapat dilakukan dengan

fungsi fft() matlab. Berikut adalah implementasinya:

Listing implementasi fast fourier transform

1 Ak = abs(fft(x))/length(x); Pendefinisian nilai Ak. Ak akan menampung nilai magnitude signal spektrum dari gelombang x

2 fs=8000; Pendefinisian fs sebagai nilai sampling yang akan digunakan pada gelombang

3 k=0:1:length(x)-1; Pendefinisaian nilai k ( untuk membentuk indeks frekuensi )

4 f=k*fs/length(x); Pendefinisian f ( untuk mempersiapkan data sumbu x pada proses ploting )

5 figure(5);

plot(f(1:length(x)/2),Ak(1:length(x)/2));

title('Signal Spectrum')

xlabel('freq (Hz)')

ylabel('Absolut')

melakukan plot spektrum gelombang x pada jendela atau figure 5 dengan plot yang dibatasi setengah dari panjang f dan Ak

Pada baris pertama dapat dilihat bahwa untuk mencari nilai fast fourier

transform dari suatu gelombang dapat menggunakan fungsi fft. Selain itu pada

sintaks baris pertama, dilakukan operasi absolut nilai fft. Hal ini dilakukan karena

kita ketahui bersama bahwa hasil operasi fast fourier transform merupakan suatu

bilangan kompleks dimana nilai operasi mengandung bagian real dan imajiner.

Dengan demikian hasil fast fourier transform perlu dilakukan operasi absolut untuk

menemukan nilai absolutnya. Selain itu hasil operasi absolut fft dari gelombang x

dibagi dengan panjang data gelombang x, hal ini bertujuan untuk mempersiapkan

Page 7: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

7 Ryan Eko Saputro 12/331380/PA/14638

data pada proses plotting. Baris – baris selanjutnya adalah untuk menentukan plot

dengan berdasarkan pada f (indeks frekuensi ) dan Ak (data sumbu x) dan dicetak

pada figure 5.

Gambar 5: spektrum gelombang x

Gelombang x (Gambar 5) tersusun dari 3 buah frekuensi gelombang yaitu

frekuensi 500Hz, 1200Hz, dan 1800Hz, dengan magnitude masing masing frekuensi

ditunjukan sebagai berikut:

Gambar 6: spektrum gelombang x

Page 8: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

8 Ryan Eko Saputro 12/331380/PA/14638

4.30. Implementasi fungsi jendela untuk mencuplik spektrum signal.

a. Membuat gelombang x yang merupakan penjumlahan sinusoid gelombang x1, x2,

dan x3, dengan pencuplikan 240 data, dari 1-241.

Gelombang x dicuplik 240 data, maka pada program matlab didefinisikan

variabel x_sam. Variabel x_sam merupakan variabel samping dari gelombang x

dengan 240 data. Berikut adalah implemetasi sintaks pada matlab:

Listing Pencuplikan 240 data

1 fs = 8000; inisialisasi suatu variabel fs yang merepresentasikan frekuensi sampling sebesar 8000Hz atau 8kHz

2 t=0:(1/fs):0.1; diinisialisasika suatu variabel t, dengan sampling dilakukan selama 0.1 detik dengan interval atau jeda periode sebesar 1/fs. Sehingga selama waktu sampling 0.1 detik, terdapat 8000 data.

3 x1=5*cos(2*pi*500*t);

x2=5*cos(2*pi*1200*t+0.25*pi);

x3=5*cos(2*pi*1800*t+0.5*pi);

inisialisasi signal x1, x2, dan x3

4 x = x1+x2+x3; inisialisasi signal “x” yang merupakan suatu penjumlahan dari ketiga sinyal (x1, x2, dan x3)

5 x_sam = x(1:241); Mendefinisikan x_sam dengan pencuplikan dari sinyal x sebanyal 240 data sampling.

6 figure(6);

plot(t(1:241),x_sam)

axis([0 0.1 -6 6])

title('Signal X with 240 data

sampling')

xlabel('time (s)')

ylabel('Amplitudo')

Memplot sinyal x_sam di jendela atau figure 6

Page 9: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

9 Ryan Eko Saputro 12/331380/PA/14638

Berikut adalah plot gelombang x dengan 240 data saja:

Gambar 6: gelombang x dengan 240 data

b. Melakukan plot spektrum gelombang x dengan fungsi jendela matlab

Jendela pada plot spektrum berfungsi untuk membatasi atau mencuplik

spektrum dan meminimalisir adanya kebocoran spektrum. Berikut adalah

implementasi windowing pada matlab.

Rectangular window (tanpa jendela)

Rectangular window (tanpa jendela) sama seperti plot spektrum dari suatu

gelombang pada umumnya. implementasi plot spektrum gelombang x

dengan 240 data dengan cara biasa :

Rectangular Window

1 A = abs(fft(x_sam))/length(x_sam); Pendefinisian nilai A. A akan menampung nilai magnitude signal spektrum dari gelombang x_sam

fs=8000; Pendefinisian fs sebagai nilai sampling yang akan digunakan pada gelombang

k=0:1:length(x_sam)-1; Pendefinisaian nilai k ( untuk membentuk indeks frekuensi )

Page 10: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

10 Ryan Eko Saputro 12/331380/PA/14638

f=k*fs/length(x_sam); Pendefinisian f ( untuk mempersiapkan data sumbu x pada proses ploting )

figure(7)

plot(f(1:241/2),A(1:241/2));

title('Signal Spectrum with 240 data

of signal X')

xlabel('freq (Hz)')

ylabel('Absolut')

melakukan plot spektrum gelombang x_sam dengan sinyal spectrum 240 data pada jendela atau figure 7 dengan plot yang dibatasi setengah dari panjang f dan Ak

Gambar 7: plot spektrum gelombang x_sam (240 data) dengan cara biasa

Bila diimplementasikan dengan fungsi rectangular windowing pada matlab,

maka sintaks pemrogrammanya adalah sebagai berikut:

Rectangular Window

1 L = length(x_sam); Mendefinisaikan L sebagai panjang dari sinyal x_sam

2 x_Rect = x_sam .* rectwin(L)'; Mendefinisaikan x_Rect sebagai sintaks dari penggunaan rectangle window dengan sinyal x_sam yang akan

Page 11: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

11 Ryan Eko Saputro 12/331380/PA/14638

diaplikasikan ke rectangle window

3 A = abs(fft(x_Rect))/length(x_Rect); Pendefinisian nilai A. A akan menampung nilai magnitude signal spektrum dari gelombang x_Rect

4 fs=8000; Pendefinisian fs sebagai nilai sampling yang akan digunakan pada gelombang

5 k=0:1:length(x_Rect)-1; Pendefinisaian nilai k ( untuk membentuk indeks frekuensi ) pada sinyal x_Rect

6 f=k*fs/length(x_Rect); Pendefinisian f ( untuk mempersiapkan data sumbu x pada proses ploting ) pada sinyal x_Rect

7 figure(13);

plot(f(1:length(x_Rect)/2),A(1:length(

x_Rect)/2));

title('Rectangular Windowing

(Frekuensi domain)')

xlabel('freq (Hz)')

ylabel('Absolut')

melakukan plot spektrum gelombang x_Rect pada jendela atau figure 13 dengan plot yang dibatasi setengah dari panjang f dan Ak

Berikut adalah plot spektrum frekuensi gelombang x dengan 240 data:

Gambar 8: plot spektrum gelombang x_sam (240 data) dengan fungsi

rectangular windowing

Page 12: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

12 Ryan Eko Saputro 12/331380/PA/14638

Gambar 7 dan gambar 8, dapat disimpulkan bahwa kedua metode diatas

menghasilkan hasil yang sama. Sehingga baik metode plot spektrum

frekuensi biasa dan penggunaan rectangular windowing menghasilkan hasil

yang sama.

Triangular window

implementasi triangular windowing gelombang x_sam (240 data) pada

matlab adalah sebagai berikut:

Triangular Window

1 L = length(x_sam); Mendefinisaikan L sebagai panjang dari sinyal x_sam

2 x_tri = x_sam .* triang(L)'; Mendefinisaikan x_tri sebagai sintaks dari penggunaan triangular window dengan sinyal x_sam yang akan diaplikasikan ke triangular window

3 figure(7);

plot(t(1:241),x_tri)

title('Triangular Windowing (time

domain)')

xlabel('time (s)')

ylabel('Amplitudo')

melakukan plot spektrum gelombang x_tri pada jendela atau figure 7 dengan plot yang dibatasi setengah dari panjang f dan Ak (masih pada ranah waktu)

4

A = abs(fft(x_tri))/length(x_tri);

Pendefinisian nilai A. A akan menampung nilai magnitude signal spektrum dari gelombang x_tri

5 fs=8000; Pendefinisian fs sebagai nilai sampling yang akan digunakan pada gelombang

6 k=0:1:length(x_tri)-1; Pendefinisaian nilai k ( untuk membentuk indeks frekuensi ) pada sinyal x_tri

7 f=k*fs/length(x_tri); Pendefinisian f ( untuk mempersiapkan data

Page 13: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

13 Ryan Eko Saputro 12/331380/PA/14638

sumbu x pada proses ploting ) pada sinyal x_tri

8 figure(11);

plot(f(1:length(x_tri)/2),A(1:length(x_t

ri)/2));

title('Triangular Windowing (Frekuensi

domain)')

xlabel('freq (Hz)')

melakukan plot spektrum gelombang x_tri pada jendela atau figure 11 dengan plot yang dibatasi setengah dari panjang f dan Ak (pada ranah frekuensi)

Berikut adalah plot time domain dan frekuensi domain gelombang x_sam

(240 data) dengan triangular windowing:

Gambar 9: plot gelombang x_sam (240 data) dengan fungsi triangular

windowing

Page 14: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

14 Ryan Eko Saputro 12/331380/PA/14638

Gambar 10: plot spektrum gelombang x_sam (240 data) dengan fungsi

triangular windowing

Hamming window

Implementasi Hamming windowing gelombang x_sam (240 data) pada

matlab adalah sebagai berikut:

Hamming Window

1 L = length(x_sam); Mendefinisaikan L sebagai panjang dari sinyal x_sam

2 x_Ham = x_sam .* hamming(L)'; Mendefinisaikan x_Ham sebagai sintaks dari penggunaan Hamming window dengan sinyal x_sam yang akan diaplikasikan ke Hamming window

3 figure(8);

plot(t(1:241),x_Ham)

title('Hamming Windowing (time domain)')

xlabel('time (s)')

ylabel('Amplitudo')

melakukan plot spektrum gelombang x_Ham pada jendela atau figure 8 dengan plot yang dibatasi setengah dari panjang f dan Ak (masih pada ranah waktu)

4 A = abs(fft(x_Ham))/length(x_Ham); Pendefinisian nilai A. A akan menampung nilai magnitude signal spektrum dari gelombang x_Ham

Page 15: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

15 Ryan Eko Saputro 12/331380/PA/14638

5 fs=8000; Pendefinisian fs sebagai nilai sampling yang akan digunakan pada gelombang

6 k=0:1:length(x_Ham)-1; Pendefinisaian nilai k ( untuk membentuk indeks frekuensi ) pada sinyal x_Ham

7 f=k*fs/length(x_Ham); Pendefinisian f ( untuk mempersiapkan data sumbu x pada proses ploting ) pada sinyal x_Ham

8 figure(12);

plot(f(1:length(x_Ham)/2),A(1:length(x_Ha

m)/2));

title('Hamming Windowing (Frekuensi

domain)')

xlabel('freq (Hz)')

melakukan plot spektrum gelombang x_Ham pada jendela atau figure 12 dengan plot yang dibatasi setengah dari panjang f dan Ak (pada ranah frekuensi)

Berikut adalah plot time domain dan frekuensi domain gelombang x_sam

(240 data) dengan hamming windowing:

Gambar 11: plot gelombang x_sam (240 data) dengan fungsi triangular windowing

Page 16: Transformasi Fourier Diskrit dan Spektrum Sinyal

Pemrosesan Sinyal Digital 2015

16 Ryan Eko Saputro 12/331380/PA/14638

Gambar 12: plot spektrum gelombang x_sam (240 data) dengan fungsi

hamming windowing

c. Dampak penggunaan jendela / window pada plot spektrum matlab

Spektrum gelombang tanpa adanya implementasi jendela akan kurang

sempurna. Jika ketidak sempurnan ini terlalu besar, maka akan sulit membedakan

dua buah frekuensi berbeda sebagai penyususn gelombang dalam plot spektrum

frekuensi.

Fast fourier transform akan sangat baik dan optimal jika data gelombang yang

dianalisis berada pada kelipatan 2n. Jika tidak pada kisaran 2

n, maka akan

ditambahkan suatu nilai nol (0) atau zero padding untuk mendekatkan jumlah data

gelombang yang hendak dianalisis pada kelipatan 2n. Zero padding akan

mengakibatan kebocoran spektrum, dimana frekuensi riak akan muncul. Frekuensi

riak adalah frekuensi diluar frekuensi penyusun gelombang yang mucul dan

mengganggu plot spektrum, sehingga spektrum frekuensi sulit dibedakan. Untuk

meminmalisis dampak penambahan zero padding, maka dapat digunakan teknik

jendela atau windowing. Dengan tekni jendela ini, suatu gelombang akan dicuplik

pada rentang tertentu sehingga akan menekan dampak zero padding.

Dari hasil pengujian dengan jendela rectangular, triangular, dan hamming, hasil

optimal didapatkan dengan teknik hamming. Hal ini dapat dilihat bahwa frekuensi

riak pada rentang 500Hz, 1200Hz dan 1800Hz dapat diminimalisisr dengan

sempurna.