Anda di halaman 1dari 5

TRANSFORMASI FOURIER DISKRIT DENGAN FAST

FOURIER TRANSFORM SERTA ALIASING



Pada praktikum kali ini kita akan mempelajari Transformasi Fourier Diskrit (Discret Fourier Transform)
menggunakan metode fast fourier transform.
Pada DFT (Discret Fourier Transform) berbeda dengan DTFT (discret time fourier transform), bedanya
adalah kalau DFT adalah sinyal diskrit dari domain frekuensi dari 0 sampai dengan 2*pi, sedangkan
DTFT adalah sinyal diskrit dari skuen waktu diskrit x(n) pada domain waktu. Di DFT juga mengambil nilai-
nilai sebanyak n-point saja. Sedangkan di transformasi fourier untuk sebuah sinyal waktu kontinu x(t)
secara matematis di ambil dari
fft merupakan fungsi dari matlab untuk mentransformasikan sinyal domain waktu ke dalam bentuk
frekuensi, dengan syntax :
y=fft(x) x dan n akan sama panjang
y=fft(x,n) kita dapat mengambil sebanyak n;

Perhitungan Dft Menggunakan Matlab.
Contoh program 1: terdapat frekuensi 150, disampling dengan frekuensi sampling 1000. Kita akan
menganalisis sinyal diskrit pada domain n dan pada domain frekuensi programnya adalah seperti di
bawah ini.
F=150;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1;
r=sin(2*pi*F*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(2,1,1);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinyal
diskrit');subplot(2,1,2);stem(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');

nilai nT adalah dari 0 sampai dengan 1 dengan skala 1/FS berarti 1/1000. Sedangkan kita juga
membutuhkan n pada sumbu x untuk merepresentasikan sinyal diskrit dengan domain n, n kita ambil
adalah dari 0 sampai dengan panjang dari nT-1. Setelah itu kita mendefinisikan sinyal sinusoodal dari sin
(2*pi*F*nT), ini merupakan sinyal yang akan kita analisis. Di atas terdapat variabel U adalah untuk
mentranformasikan sinyal sinus tadi kedalah bentuk domain frekuensi. Kemudian kita juga membuat
deret frekuensi pada sumbu x dengan mengunakan variabel frek dimana panjangnya adalah dari 0
sampai dengan panjang dari U di -1 dai bagi dengan panjang U di kali frekuensi sampling. Kemudian kita
gambarka sinyal dari (n,r) untuk domain n dan (frek,U) untuk domain frekuensi. Hasilnya akan seperti
gambar di bawah ini :
Gambar 1. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan frekuensi
asli 150 Hz
Dari gambar di atas kita dapat melihat bahwa gambar pertama adalah merepresentasikan sinyal diskrit
pada domain n, sedangkan yang bawah adalah sinyal diskrit pada domain frekuensi. Apa pengaruhnya
dengan frekuensi?. Itu merupakan pertanyaan yang ada di pikiran kami pada saat praktikum. Pengaruh
dari frekuensi adalah pada saat di tampilkan di domain frekuensi dia akan lebih menonjol dibandingkan
dengan frekuensi yang lain karena merupakan frekuensi asli. Terlihat pada gambar di atas, frekuensi
yang kita gunakan adalah 150 Hz, maka bagian yang menonjol setelah di transformasikan adalah pada
frekuensi 150 dan 850. Kenapa dia berulang di 850?. Karena sinyal dari diskrit yang periodik dia akan
berulang sepanjang F sampai dengan F, dalam hal ini adalah -150 sampai 150, jika skalanya 0 sampai
dengan batas atas yakni terhitung 1000 maka gampar pertama muncul di nilai 150 dan gambar ke dua
muncul di 1000-150 adalah 850.
Kemudian kita mencoba untuk mengubah frekuensi yang di sampling. Misalnya 300 Hz. Programnya
seperti berikut. Contoh program 2 :
F=300;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1; %untuk menentukan sumbu x nya
r=sin(2*pi*F*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(2,1,1);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinyal
diskrit');subplot(2,1,2);stem(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');

Analisisnya sama namun yang membedakan adalah letak munculnya frekuensi yang asli kalau di
program pertama kita menggunakan frekuensi 150 sekarang kita menggunakan frekuensi 300 Hz.
Hasilnya adalah seperti gambaw dibawah ini

Gambar 2. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan frekuensi
asli 300 Hz.
Terlihat yang membedakan adalah peletakan frekuensi asli setelah mengalami transformasi yakni pada
frekuensi 300 dan 700.
Namun ketika kita mengubah nilaii dari frekuens asli tersebut menjadi 700 maka akan terlihat sama
dengan gambar di atas kenapa demikian , karena frekuensi 700 harus di sampling dengan minimal 2 kali
dari frekuensi asli. Namun kita masih menggunakan frekuensi sampling 1000 yang terjadi adalah efek
nyquist.
Contoh program 3 :
F=700;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1; %untuk menentukan sumbu x nya
r=sin(2*pi*F*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(2,1,1);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinyal
diskrit');subplot(2,1,2);stem(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');
hasilnya adalah seperti berikut ini :

Gambar 3. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan frekuensi
asli 700 Hz.
Kenapa sama, di atas sudah saya jelaskan karena frekuensi sampling tidak memnuhi syarat untuk
menyampling frekuensi asli. Syaratnya seharusnya adalah frekuensi sampling minimal harus 2 kali
frekuensi asli atau frekuensi yang akan di sampling. Ini merupakan yang disebut dengan efek nyquist
atau aliasing, yaitu terjadi kesalahan pencuplikan.
Sinyal diskrit terbentuk melalui proses sampling (pencuplikan) dengan periode Ts atau frekuensi
sampling Fs oleh karena itu agar tidak terjadi kesalah seperti di atas. Mr. Nyquist memberikan aturan
bahwa frekuensi sampling minimal harus 2 kali lipat frekuensi maksimum yang dibawa oleh sinyal yang
bersangkutan.
Kita mencoba untuk memperbesar frekuensi sampling dengan frekuensi maksimum yang sama.
Contoh program 4 :
F=700;
Fs=2000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1; %untuk menentukan sumbu x nya
r=sin(2*pi*F*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(2,1,1);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinyal
diskrit');subplot(2,1,2);stem(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');
hasilnya seperti berikut :

Gambar 4. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan frekuensi
asli 700 Hz dan frekuensi sampling 2000.
Terlihat pada grafik nampak frekuensi 700 yang muncul karena sudah frekuensi samplingnya sudah
memnuhi syarat minimal yang harus dipenuhi. Syarat minimalny adalah 700 x 2 = 1400. Sedangkan
untuk program ke empat ini adalah 2000.
Contoh program ke 5 :
F=150; %diganti dengan 700
F2=300;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1;
r=sin(2*pi*F*nT)+cos(2*pi*F2*nT);
U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(2,1,1);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinyal
diskrit');subplot(2,1,2);stem(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');
kemudian kita coba dengan menggunakan 2 frekuensi yakni 150 dan 300, untuk memahami yang ini
terdapat 2 buah sinyal yang akan di tampilkan yaitu 150 dan 300. Kemudian kita ganti frekuensi tersebut
dengan 700 dan 300 maka hasilnya akan bertumpukan karena frekuensi samplingnya tidak memenuhi
syarat untuk yang frekuensi pertama. Seperti pada gambar berikut :
Gambar 5. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan 2 frekuensi
150 Hz dan 300 Hz dan frekuensi sampling 1000.
Gambar 6. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan 2 frekuensi
700 Hz dan 300 Hz dan frekuensi sampling 1000.
Di atas merupakan transformasi dari sinyal periodik bagaimana kalau dengan sinyal apreodik atau tidak
periodik. Pada kali ini program kita yang ke 6 adalah akan mencoba menganalisis dengan sinyal diskrit
yang random atau terdapat noise pada sinyal yang bersangkutan. Kita buat suatu sinyal yang
mengandung noise dengan fungsi randln di matlab. Dengan frekuensimaks 400 Hz dan frekuensi
sampling 1000 Hz. Kita akan membuat sinyal analog dan digital dan kemudian mentransformasikannya.
Berikut ini adalah contoh program 6 , dengan menggunakan noise apakah yang terjadi dengan sinyal
yang asli.

F=400;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1;
t=0:1/F/50:10/F; %waktu untuk menentukan sinyal analog
r=sin(2*pi*F*nT)+randn(1,length(nT));%akan digunakan untuk membuat sinyal
diskrit [n];
rt=sin(2*pi*F*t)+randn(1,length(t));%akan di buat analog x[t];

U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(3,1,1);plot(t,rt);xlabel('t
Detik');ylabel('amplitude');title('Sinyal analog
noise');subplot(3,1,2);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinya
l
diskrit');subplot(3,1,3);plot(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');

Karena kita akan membuat sinyal analog juga kita membutuhkan t (waktu) karena sinyal analah
tergantung pada domain waktu. Jadi kita membuat time dari 0 sampai dengan 10/F sama dengan 0,0025.
Yakni dengan skala 1/F/50 atau dalam program kita ini sama dengan 0,00005. Jadi nanti terdapat 50
skala dari 0 samapai dengan 0,0025. Kemudian kita membuat fungsi random dari sinyal sinusoidal
yaitur=sin(2*pi*F*nT)+randn(1,length(nT)); untuk sinyal waktu
diskrit dan rt=sin(2*pi*F*t)+randn(1,length(t));untuk sinyal waktu kontinu. Fungsi randln
sendiri adalah untuk mengasilkan noise pada sinyal yang bersangkutan sehingga tersamarkan.
Kemudian kita menampilkan dengan menggunakan plot agar terlihat randomnya. Program di atas ketika
di run hasilnya akan seperti berikut ini :
Gambar 7. Representasi sinyal analog, diskrit dan DFT sinyalnya bersifat random dan terdapat
noise.
Sudah saya jelaskan sedikit di atas bahwa fungsi randln adalah untuk membentuk sinyal random atau
noise. Jadi sebelum-sebelumnya kita menggunakan sinyal yang periodi sekarang kita menggunakan
sinyal random, dapat dikatakan terdapat noise yang dapat mengganggu untuk mentransformasikan
frekuensi yang asli.
Pengaruh dari randln jika di perbesar adalah frekuensi yang asli akan semakin tidak namapak. Mari kita
coba menganalisis dengan frekuensi sinyal yang sama di atas namun randln di perbesar. Programnya
menjadi :
F=400;
Fs=1000;%frekuensi sampling
nT=0:1/Fs:1;
n=0:length(nT)-1;
t=0:1/F/50:10/F; %waktu untuk menentukan sinyal analog
r=sin(2*pi*F*nT)+6.*randn(1,length(nT));%akan digunakan untuk membuat sinyal
diskrit [n];
rt=sin(2*pi*F*t)+6.*randn(1,length(t));%akan di buat analog x[t];

U=abs(fft(r));
frek=(0:length(U)-1)/length(U).*Fs; %untuk menentukan sumbu x nya
figure;subplot(3,1,1);plot(t,rt);xlabel('t
Detik');ylabel('amplitude');title('Sinyal analog
noise');subplot(3,1,2);stem(n,r);xlabel('n');ylabel('amplitude');title('Sinya
l
diskrit');subplot(3,1,3);plot(frek,U);xlabel('Frekuensi');ylabel('|X(F/Fs)|')
;title('Spektrum frekuansi sinyal diskrit');
Tulisan yang berwarna merah merupakan cara untuk memperbesar noise sebanyak 6 kali. Hasilnya
adalah sinyal frekuensi yang asli tidak akan muncul seperti sebelumnya. Figurnya seperti berikut

Anda mungkin juga menyukai