TRANSFORMASI FOURIER DISKRIT DENGAN FAST FOURIER TRANSFORM SERTA ALIASING | Error Code | be a true student

Pages

Subscribe:
No.ProdukBeli
1. Beli... klik di sini

Rabu, 02 Januari 2013

TRANSFORMASI FOURIER DISKRIT DENGAN FAST FOURIER TRANSFORM SERTA ALIASING


Bismillah, Asslamualaikum
Pada praktikum kali ini kita akan mempelajari Transformasi Fourier Diskrit (Discret Fourier Transform) menggunakan metode fast fourier transform.
Cos dan sinus dapat di jabarkan sebagai berikut :
Gambar sisip 2
diatas merupakan sinyal analog.
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 Gambar sisip 12
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 dapamengambil 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 sisip 3
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 sisip 4
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 sisip 5
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 sisip 7
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 sisip 8
Gambar 5. Representasi sinyal diskrit domain x(n) dengan domain frekuensi, dengan 2 frekuensi 150 Hz dan 300 Hz dan frekuensi sampling 1000.
Gambar sisip 9
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('Sinyal 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 sisip 10
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('Sinyal 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
Gambar sisip 11
Gambar 8. Representasi sinyal analog, diskrit dan DFT sinyalnya bersifat random dan terdapat noise yang di perbesar sebanyak 6 kali.

Jadi kesimpulannya semakin besar noise yang ada semakin hilang frekuensi aslinya dan tidak dapat di perlihatkan.

Tidak ada komentar:

Posting Komentar