You are currently browsing the monthly archive for Mei 2011.

Di bawah ini adalah gambar rangkaian penghitung sindrom untuk siklis Hamming (15,11) dengan polinom generator  g(x)=1+X+X^4 .

Dari Rangkaian sindrom di bawah ini, kita lihat error pattern dengan masukan 1 di pertama kali dan dishift sebanyak 15 kali sehingga kita bisa lihat error pattern pada saat shif terakhir di register sindrom yaitu 1 0 0 1.

Rangkaian Penghitung Sindrom

Rangkaian Penghitung Sindrom

Berikut tabel hasil menghitung sindrom

Tabel Menghitung Sindrom

Nilai terakhir pada sindrom terakhir ini yaitu 1 0 0 1 diimplementasikan dengan rangkaian logika AND untuk mengkoreksi kode di terima agar menjadi benar.

Rangkaian Logika

Rangkaian Logika

Rangkaian pengkoreksi kesalahan untuk kode siklis Hamming (15,11) dengan polinom generator g(x)=1+X+X^4. Maka Rangkaian Pengkoreksi Kesalahan secara lengkap adalah sebagai berikut:

Rangakaian Pengkoreksi Kesalahan

Berikut ini adakan ditunjukkan cara kerja rangkaian dengan contoh vektor kode sebagai contoh adalah

v(X)=1+X^3+X^6+X^9+X^{12}
V= [1 0 0 1 0 0 1 0 0 1 0 0 1 0 0]

kemudian ada error pada pada sisi penerima pada X^{10}

v(X)=1+X^3+X^6+X^9+X^{10}+X^{12}
r= [1 0 0 1 0 0 1 0 0 1 1 0 1 0 0]

Tahap pertama adalah switch ketiga terbuka, dan sistem mengisi buffer sampai penuh dan juga mengubah nilai pada register sindrom. Maka ketika buffer sudah penuh dengan bit ke-15, maka sindrom yang tersisa pada sindrom register adalah 1110

Posisi Sindrom Register Ketika Buffering

Selanjutnya Switch 1 terputus. Register Sindrom terus bergeser dan keluarnya setelah melewati rangkain AND akan mengkoreksi keluaran dari buffer yang siklis.

Maka step berikutnya adalah

Pengkoreksian Kesalahan

Dengan ini pada putaran ke-5 menuju ke-6 error pada posisi X^10 telah dikoreksi. Dan seterusnya shift buffer akan terus berputar sampai akhir di putaran ke-15, baru lah keluaran dari Buffer menjadi data yang diterima yang sudah dikoreksi errornya.

Bibliografi

[1] S. Lin, D. J. Costello, Error Control Coding: Fundamentals and Applications, Prentice-Hall, Inc., Englewood Cliffs, New Jersey: 1983.
[2] Sugihartono, Handout kuliah Topik Khusus Sistem Komunikasi Radio: Akuisisi dan Tracking

Kode Reed-Solomon diperkenalkan oleh Irving Reed dan Gus Solomon pada tahun 1960 [1].

Cara Coding untuk Kode Reed-Solomon ada dua cara:

1. Dengan menggunakan polynom generator g(X) pada domain waktu
2. Dengan menggunakan DFT pada domain frekuensi

Satu kode Reed-Solomon (7,3) pada GF(8) yang memiliki kemampuan koreksi 2 posisi error disusun menggunakan polinom generator:

RS(N,K), N=7, K=3
2t=N-K=7-3=4

g(X)=(X-\alpha)(X-\alpha^2)(X-\alpha^3)(X-\alpha^4)
=(X^2-(\alpha+\alpha^2)X+\alpha^3)(X^2-(\alpha^3+\alpha^4)X+\alpha^7)
=(X^2-\alpha^4X+\alpha^3)(X^2-(\alpha+1+\alpha^2+\alpha)X+\alpha^7)
=(X^2-\alpha^4X+\alpha^3)(X^2-\alpha^6X+\alpha^0)
=X^4-(\alpha^4+\alpha^6)X^3+(\alpha^0+\alpha^3+\alpha^9)X^2-(\alpha^4+\alpha^9)X+\alpha^3\cdot\alpha^0
=\alpha^0X^4-(\alpha^2+\alpha+\alpha^2+1)X^3+(1+\alpha+1+\alpha^{10-7})X^2
-(\alpha^2+\alpha+\alpha^{9-7})X+\alpha^3
=\alpha^0X^4-(\alpha+1)X^3+(\alpha+\alpha^3)X^2-\alpha X+\alpha^3
=\alpha^0X^4-\alpha^3X^3+\alpha^0X^2-\alpha^1X+\alpha^3

Karena -\alpha^i=\alpha^i disebabkan pada biner +1 = -1, maka kita dapatkan polynom generator yaitu

=\alpha^0X^4+\alpha^3X^3+\alpha^0X^2+\alpha^1X+\alpha^3

Contoh Decoding Kode Reed-Solomon

Jika polynom yang diterima adalah

r(X)=\alpha^2X^6+\alpha^2X^4+X^3+\alpha^5X^2

Mencari sindrom dengan cara:
Jumlah sindrom adalah N-K = 7-3 = 4 buah sindrom

S_i=r(\alpha^i), i=1,2,3,...,N-K

S_1=r(\alpha^1)=\alpha^2\cdot\alpha^6+\alpha^2\cdot\alpha^4+\alpha^3+\alpha^5\alpha^2
= \alpha^8+\alpha^6+\alpha^3+\alpha^7
=\alpha^{8-7}+\alpha^6+\alpha^3+\alpha^{7-7}
=\alpha+\alpha^2+1+\alpha+1+1
=\alpha^2+1=\alpha^6

S_2=r(\alpha^2)=\alpha^2\cdot\alpha^{2\cdot 6}+\alpha^2\cdot\alpha^{2\cdot 4}+\alpha^{2\cdot 3}+\alpha^5\cdot\alpha^{2\cdot 2}

Blibiografi:

[1] I. S. Reed and G. Solomon, “Polynomial Codes over Certain Finite Fields,”J. Soc. Ind. Appl. Math., 8, pp. 300-304, June 1960.
[2] B. Sklar, Reed-Solomon Code,
[3] Sugihartono, Slide Kuliah Pengkodean Kanal, STEI, ITB, 2011

Kata-kata Hamming sering muncul sebagai Hamming Weight (Bobot Hamming), Hamming Distance (Jarak Hamming), Hamming Window

Parameter penting di dalam block code adalah jarak minimum (minimum distance). Parameter ini menentukan deteksi error acak dan juga kemampuan untuk mengkoreksi error dari sebuah kode.

Untuk suatu vektor yang terdiri dari bilangan biner. Maka Bobot Hamming adalah jumlah nonzero yang ada pada vektor tersebut.

Contoh: \overrightarrow{v}=(1 0 0 1 0 1 1) memiliki bobot Hamming 4.

Sedangkan jika ada dua vektor bilangan biner dengan ukuran yang sama, maka jarak Hamming adalah jumlah posisi yang berbeda di antara kedua vektor tersebut.

Contoh: \overrightarrow{w}=(0 1 0 0 0 1 1), maka jarak Hamming antara kedua vektor tersebut adalah 3, yaitu perbedaan di posisi ke-0, ke-1 dan ke-3.

… bersambung :)

Bibliografi:

1. S. Lin, D. J. Costello, Error Control Coding: Fundamentals and Applications, Prentice-Hall, Inc., Englewood Cliffs, New Jersey: 1983.

FFT (Fast Fourier Transform) adalah algoritma yang digunakan untuk menghitung DFT (Descrete Fourier Transform) dengan cepat.

Berikut ini penjelasan yang diterjemahkan dari [1] mengenai jenis algoritma FFT yang dipakai pada Matlab:

Fungsi FFT pada Matlab (fft, fft2, fftn, ifft, ifft2, ifftn) berdasarkan pada library yang disebut FFTW [2], [3]. Untuk menghitung N-point DFT ketika N adalah gabungan (Ketika N=N^1N^2), FFTW library menguraikan masalah dengan menggunakan algoritma Cooley-Turkey [4], yang pertama kali dilakukan adalah menghitung N^1 mentransformasi ukuran N^2, dan kemudian menghitung N^2 mentransformasi ukuran N^1.

Penguraian tersebut diterapkan secara rekursif pada kedua titik DFT N^1 dan N^2 hingga masalahnya terselesaikan dengan menggunakan satu dari beberapa machine-generated fixed-size “codelets.”

Codelets tersebut pada gilirannya menggunakan beberapa kombinasi algoritma, termasuk variasi dari Cooley-Turkey [5], algoritma prime factor [6], algoritma split-radix [7]. Faktorisasi khusus dari N dipilih secara heuristis.

Ketika N adalah bilangan primer, FFTW library pertama kali menguraikan masalah N-point ke dalam tiga masalah (N-1)-point dengan menggunakan algoritma Rader [8]. Ia kemudian menggunakan penguraian Cooley-Tukey untuk menghitung (N-1)-point DFT.

Untuk kebanyakan N, masukan real DFT secara kasar membutuhkan setengah dari waktu menghitung DFT dengan masukan bilangan kompleks. Bagaimanapun juga, ketika N mempunyai faktor primer yang besar, maka perbedaan kecepatan akan kecil atau bahkan tidak ada perbedaannya.

Waktu eksekusi fft tergantung pada panjang transformasi. Ia akan lebih cepat untuk pankat dari 2. Kecepatannya juga hampir sama untuk faktor primer yang kecil.

Kecepatan fft dapat ditingkatkan dengan menggunakan fungsi fftw yang mengendalikan optimisasi algoritma yang digunakan untuk menghitung FFT dari ukuran dan dimensi tertentu.

FFTW adalah sebuah koleksi fast C routines yang gratis untuk menghitung DFT dalam dimensi satu atau lebih. Termasuk transformasi bilangan kompleks, real, simetris, dan paralel. Dan juga dapat menangani secara efisien ukuran array yang berubah-ubah. FFTW secara khusus lebih cepat dari pada implementasi FFT lain yang tersedia untuk umum, dan bahkan bersaing dengan library buatan vendor. Untuk mencapai kinerja ini, FFTW menggunakan teknik novel code-generation dan runtime self-optimization [9].

Inovasi di dalam FFTW terdiri dari dalam memiliki berbagai composable solver, yang merepresentasikan algoritma FFT yang berbeda dan strategi implementasi yang mempunyai kombinasi ke dalam rencana khusus untuk ukuran yang diberikan dapat ditentukan pada runtime menurut karakteristik mesin/compiler kita. Arsitektur software yang aneh ini mengizinkan FFTW untuk beradaptasi dirinya kepada hampir semua mesin. Ada tiga hal yang membuat FFTW begitu cepat [10]:
- FFTW menggunakan berbagai algoritma FFT dan gaya implementasi yang dapat disusun berubah-ubah untuk beradaptasi terhadap mesin.
- FFTW menggunakan pembangkit kode untuk menghasilkan highly-optimized routines untuk menghitung transformasi yang kecil.
- FFTW menggunakan explicit divide-and-conquer untuk mengambil keuntungan dari hierarki memori.

Untuk lebih detail dapat dilihat pada paper [11].

Referensi:

[1] http://www.mathworks.com/help/techdoc/ref/fft.html
[2] FFTW (http://www.fftw.org)
[3] Frigo, M. and S. G. Johnson, “FFTW: An Adaptive Software Architecture for the FFT,” Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Vol. 3, 1998, pp. 1381-138
[4] Cooley, J. W. and J. W. Tukey, “An Algorithm for the Machine Computation of the Complex Fourier Series,” Mathematics of Computation, Vol. 19, April 1965, pp. 297-30
[5] Oppenheim, A. V. and R. W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, p. 611.
[6] Oppenheim, A. V. and R. W. Schafer, Discrete-Time Signal Processing, Prentice-Hall, 1989, p. 619.
[7] Duhamel, P. and M. Vetterli, “Fast Fourier Transforms: A Tutorial Review and a State of the Art,” Signal Processing, Vol. 19, April 1990, pp. 259-299.
[8] Rader, C. M., “Discrete Fourier Transforms when the Number of Data Samples Is Prime,” Proceedings of the IEEE, Vol. 56, June 1968, pp. 1107-1108.
[9] http://www.fftw.org/faq/section1.html#whatisfftw
[10] http://www.fftw.org/faq/section4.html#howworks
[11] M. Frigo and S. G. Johnson, “FFTW: An Adaptive Software Architecture for the FFT,” Proc. ICASSP 3, 1381 (1998)

Galois Filed (dibaca Medan Galoa) direpresentasikan oleh GF(q). dimana q adalah prime p maupun pangkat dari p. Untuk biner maka p adalah 2.

Misalkan a adalah elemen nonzero pada GF(q), maka akan ada bilangan bulat yang terkecil n sehingga a^n=1. Bilangan bulat n ini disebut orde dari elemen medan a. Di dalam medan terbatas GF(q), elemen nonzero a disebut primitif jika order a adalah q-1. Sehingga, pangkat dari elemen primitif membangkitkan seluruh elemen nonzero GF(q). Setiap medan terbatas memiliki elemen primitif.

Sebagai contoh kita ambil bilangan bulat 3 di dalam GF(7), maka kita dapatkan:

3^1=3
3^2=9-2=7
3^3=3.3^2=3.2=6
3^4=3.3^3=18-14=4
3^5=3.3^4=3.4=12-7=5
3^6=3.3^5=3.5=15-14=1

Maka bisa kita lihat diatas bahwa n=6=7-1, oleh karena itu orde bilangan bulat 3 adalah 6 yang merupakan q-1 yaitu 7-1=6, sehingga bilang bulat 3 adalah elemen primitif dari GF(7)

Contoh lain kita ambil bilangan bulat 4 di dalam GF(7). Maka bisa kita lihat pangkat 4 di bawah ini:

4^1=4
4^2=16-14=2
4^3=4.4^2=8-7=1

Bisa kita lihat bahwa order dari bilangan bulat 4 adalah 3. Maka 4 bukanlah elemen primitif dari GF(7).

Contoh lain adalah elemen primitif \alpha untuk suatu GF(q) dengan hasil sebagai berikut:

\alpha^0=1
\alpha^1=5
\alpha^2=4=25-21
\alpha^3=6=20-14
\alpha^4=2=30-28
\alpha^5=3=10-7
\alpha^6=15-14=1

maka bisa kita dapatkan bahwa elemen primitif tersebut adalah \alpha adalah 5, q adalah 7. Jadi bilangan bulat 5 adalah elemen primitif dari GF(7).

Satu medan Galois memiliki sekurang-kurangnya satu buah elemen primitif. Setiap elemen nonzero lainnya dapat dituliskan sebagai pangkat dari lemen primitif tersebut.

Kode dari medan biner GF(2) dan perluasannya GF(2^m) merupakan kode yang paling banyak digunakan secara luas di dalam transmisi data digital dan sistem storage dikarenakan informasi sistem ini dikodekan secara universal di dalam bentuk biner untuk alasan praktis.

irreducible polynomial p(X) dengan  derajat m disebut primitif jika n bernilai n=2^m-1 dan juga nilai n tersebut harus merupakan bilangan bulat positif yang terkecil untuk case p(X) membagi X^n+1

Sebagai contoh, p(X)=X^4+X+1 dapat membagi X^{15}+1 dan tidak bisa membagi X^n+1  untuk nilai 1\leq n<15.  Berarti X^4+X+1 merupakan polynomial primitif untuk derajat m bernilai 4.

Contoh lain adalah X^3+X+1 merupakan polynomial primitif untuk derajat m yang bernilai 3.

Sedangkan contoh yang bukan polynomial primitif adalah X^4+X^3+X^2+X+1 karena bisa membagi sampai n bernilai 5 yaitu X^5+1 sedangkan tidak berharga n=2^m-1.

Tidak mudah untuk mengenali primitif polynomial. Tapi sudah ada list yang menunjukkan primitif polynomial jumlah terkecil dengan derajat dari m di bawah ini. Untuk sebuah  m, maka ada kemungkinan lebih dari satu primitif dari derajat m.

Berikut list primitif polynomial

m=3 \longrightarrow 1+X+X^3
m=4 \longrightarrow 1+X+X^4
m=5 \longrightarrow 1+X^2+X^5
m=6 \longrightarrow 1+X+X^6
m=7 \longrightarrow 1+X^3+X^7
m=8 \longrightarrow 1+X^2+X^3+X^4+X^8
m=9 \longrightarrow 1+X^4+X^9
m=10 \longrightarrow 1+X^3+X^{10}
m=11 \longrightarrow 1+X^2+X^{11}
m=12 \longrightarrow 1+X+X^4+X^6+X^{12}
m=13 \longrightarrow 1+X+X^3+X^4+X^{13}
m=14 \longrightarrow 1+X+X^6+X^{10}+X^{14}
m=15 \longrightarrow 1+X+X^{15}
m=16 \longrightarrow 1+X^3+X^{12}+X^{16}
m=17 \longrightarrow 1+X^3X^{17}
m=18 \longrightarrow 1+X^7+X^{18}
m=19 \longrightarrow 1+X+X^2+X^5+X^{19}
m=20 \longrightarrow 1+X^3+X^{20}
m=21 \longrightarrow 1+X^2+X^{21}
m=22 \longrightarrow 1+X+X^{22}
m=23 \longrightarrow 1+X^5+X^{23}
m=24 \longrightarrow 1+X+X^2+X^7+X^{24}

\alpha merupakan elemen primitif dari GF(2^m). Untuk membangun GF(2^m) bisa kita lakukan sebagai contoh berikut

Untuk GF(2^3) dengan derajat m=3 yang mempunyai polynomial primitf yaiut 1+X+X^3, maka kita bisa membangun elemen  dengan cara p(\alpha)=1+\alpha+\alpha^3=0.  Sehingga kita dapatkan bahwa \alpha^3=1+\alpha.

Identitas \alpha^3=1+\alpha = \alpha+1 digunakan untuk membentuk representasi polynomial untuk elemen GF(2^3).

Contoh di bawah ini untuk membentuk dari representasi pangkat = representasi polynomial = representasi biner = representasi desimal.

0 = 0 = 000 = 0
\alpha^0 = 1 = 001 = 1
\alpha^1 = \alpha = 010 = 2
\alpha^2 = \alpha^2 = 100 = 4
\alpha^3=\alpha+1=011 = 3
\alpha^4=\alpha\cdot\alpha^3=\alpha(1+\alpha) =\alpha+\alpha^2 = 110 = 6
\alpha^5 = \alpha\cdot\alpha^4=\alpha(\alpha+\alpha^2)=\alpha^2+\alpha^3 =\alpha^2+1+\alpha=111=7
\alpha^6=\alpha\cdot\alpha^5=\alpha(\alpha^2+\alpha+1) =\alpha^3+\alpha^2+\alpha=1+\alpha+\alpha^2+\alpha
=\alpha^2+1=101=5

Berikut ini adalah konstruksi elemen untuk GF(2^4) dengan derajat m=4 dengan polynomial primitif adalah 1+X+X^4. Sehingga p(\alpha)=1+\alpha+\alpha^4=\alpha^4+\alpha=1=0. Kemudian kita dapatkan identitas \alpha^4=\alpha+1

0=0=0000=0
\alpha^0=1=0001=1
\alpha^1=\alpha^1=0010=2
\alpha^2=\alpha^2=0100=4
\alpha^3=\alpha^3=1000=8
\alpha^4=\alpha+1=0011=3
\alpha^5=\alpha\cdot\alpha^4=\alpha(\alpha+1)=\alpha^2+\alpha =0110=6
\alpha^6=\alpha\cdot\alpha^5=\alpha(\alpha^2+\alpha)=\alpha^3+ \alpha^2=1100=12
\alpha^7=\alpha\cdot\alpha^6=\alpha(\alpha^3+\alpha^2)=\alpha^4+ \alpha^3=\alpha+1+\alpha^3
=\alpha^3+\alpha+1=1011=11

\alpha^8=\alpha\cdot\alpha^7=\alpha(\alpha^3+\alpha+1) = \alpha^4+\alpha^2+\alpha
=\alpha+1+\alpha^2+\alpha=\alpha^2+1=0101=5

\alpha^9=\alpha\cdot\alpha^8=\alpha(\alpha^2+1)=\alpha^3+\alpha = 1010 = 10
\alpha^{10}=\alpha\cdot\alpha^9=\alpha(\alpha^3+\alpha) =\alpha^4+\alpha^2 = \alpha+1+\alpha^2
=\alpha^2+\alpha+1=0111=7

\alpha^{11}=\alpha\cdot\alpha^{10}=\alpha(\alpha^2+\alpha+1)= \alpha^3+\alpha^2+\alpha=1110=14

\alpha^{12}=\alpha\cdot\alpha^{11}=\alpha(\alpha^3+\alpha^2+\alpha) = \alpha^4+\alpha^3+\alpha^2
=\alpha+1+\alpha^3+\alpha^2= \alpha^3+\alpha^2+\alpha+1=1111=15

\alpha^{13}=\alpha\cdot\alpha^{12}=\alpha(\alpha^3+\alpha^2+\alpha+1 =\alpha^4+\alpha^3+\alpha^2+\alpha
=\alpha+1+\alpha^3+\alpha^2+ \alpha=\alpha^3+\alpha^2+1=1101=13

\alpha^{14}=\alpha\cdot\alpha^{13}=\alpha(\alpha^3+\alpha^2+1)= \alpha^4+\alpha^3+\alpha
=\alpha+1+\alpha^3+\alpha=\alpha^3+1= 1001=9

Contoh penjumlahan GF(2^3)

1+1=\alpha^0+\alpha^0=001+001=000=0
7+7=\alpha^5+\alpha^5=\alpha^2+\alpha+1+\alpha^2+\alpha+1
=111+111=000=0
3+6=\alpha^3+\alpha^4=\alpha+1+\alpha^2+\alpha
=011+110=101=5

Contoh perkalian GF(2^3)
3x3=\alpha^3\cdot\alpha^3=\alpha^3(\alpha+1)=\alpha^4+\alpha^3
= \alpha^2+\alpha+\alpha+1= 110+011=101=5

Bibliografi:
1. S. Lin, D. J. Costello, Error Control Coding: Fundamentals and Applications, Prentice-Hall, Inc., Englewood Cliffs, New Jersey: 1983.
2. Sugihartono, Slide Kuliah Pengkodean Kanal, STEI ITB, 2011.

Kira-kira hampir lima tahun yang lalu di depan lift lantai 8 wisma pondok indah 1, ketika kami mau shalat berjama’ah ke masjid di seberang kantor.

saya dan teman saya, yang sekarang ini sedang berada di california usa, terlibat pembicaraan tentang doa yang kami panjatkan karena istri kami sama-sama sedang hamil yang umur kehamilan hanya berbeda tiga bulan saja.

Teman saya menceritakan bahwa doanya adalah rabbi habli minashsholihin, cukup itu saja dari Al Quran, diulang-ulang terus.

Kalau saya ketika itu doanya adalah Rabbana hablana min azwajina wa dzurriyatinaa qurrata a’yun. waktu itu saya sudah mendengar dan tahu tentang doa rabbi habli minashsholihin tapi jarang saya aplikasikan karena belum begitu saya pelajari. ketika itu juga saya agak cenderung menyukai anak kecil perempuan, karena lucu. Jadi kalau baca doa qurrata a’yun yaitu menyejukkan pandangan ya yang terbayang anak perempuan yang menyejukkan pandangan :) .

Alhasil 3 Januari 2007, Alhamdulillah Allah mengamanahi saya dan istri anak perempuan :) dan teman saya tersebut 3 bulan kemudian istrinya melahirkan anak laki-laki.

Ketika itu saya belum ada analisis mengenai doa Rabbi Habli minashshalihin.

Suatu hari ternyata istri teman saya hamil kembali, sedangkan istri saya belum hamil. Saya tanyakan lagi apa kali ini doanya. Kata teman saya tersebut doanya masih sama aja dan diulang ulang terus. Dan ketika lahiran, ternyata anak laki-laki lagi.

Ketika itu saya berfikir:
1. Rabbi habli minash shalihin secara harfiah shalihin adalah laki-laki yang shaleh. Jadi kita minta kepada Allah agar mengarunai anak laki-laki yang shaleh. kalau anak perempuan shaleh adalah shalihatin : )
2. Nabi Ibrahim a.s yang berdoa dengan doa tersebut kedua anaknya yang disebutkan di Al Quran adalah laki-laki yaitu Nabi Ismail a.s dan Nabi Ishaq a.s
3. Doa tersebut ada di Al Quran. Jadi teringat waktu ikutan mabit tentang doa Al Quran di Pusdai yang disampaikan oleh Ustadz Syaiful Islam, Lc bahwa doa yang tertinggi tingkat dikabulkannya adalah doa yang diambil dari Al Quran, karena Al Quran adalah Kalam (Perkataan) Allah SWT.
4. Kalau kita menggunakan doa tersebut dan berniat minta anak laki-laki yang shaleh, dan doa tersebut dari Al Quran dan terbukti Nabi Ibrahim a.s anaknya laki-laki, maka kemungkinan besar Allah akan mengabulkannya. Dan juga sudah terbukti dengan teman saya yang hanya berdoa pake doa tersebut anaknya laki-laki keduanya.

Setelah anak pertama disapih setelah dua tahun ASI, saya dan istri merencanakan anak kedua, dan Alhamdulillah Allah izinkan. Sebagai manusia ya fitrahnya kalau anak pertama perempuan, maka anak keduanya kemungkinan besar ingin anak laki-laki yang meneruskan nasab. Maka kemudian selain saya berdoa rabbana hablana min azwajina wa dzurriyatina qurraata a’yun dari Al Quran, maka saya juga rajin membaca rabbi habli minashshalihin dengan niat di hati minta anak laki-laki. Subhanallah Alhamdulillah Allahuakbar, ternyata benar, Allah karuniakan anak laki-laki, semoga Allah jadikan anak yang shaleh, begitu juga anak pertama saya yang perempuan menjadi anak yang shalehah. Amin.

Kemudian saya ceritakan analisis saya ini terhadap doa rabbi habli minashshalihin kepada beberapa teman-teman. Subhanallah ada beberapa teman yang baru menikah maupun sudah menikah, mengamalkan doa tersebut dan anaknya adalah laki-laki.
1. Teman asal Balikpapan ini mengamalkan doa tersebut, dan ketika lahiran ternyata anaknya laki-laki. Ketika saya tanyakan dia bilang mengamalkan doa tersebut.
2. Kemudian teman dari solo ini anak pertamanya adalah perempuan, kemudian ketika istrinya hamil lagi, diamalkan doa tersebut dan ketika lahir anaknya laki-laki. Ketika saya tanyakan apakah mengamalkan doa tersebut. Dia bilang it’s work.
3. Ustadz lulusan pesantren di Blitar ini pandai bahasa Arab dan baru menikah dan istrinya hamil. Ketika itu ustadz mendebat saya bahwa kata shalihin di doa tersebut bisa untuk laki-laki dan perempuan. Saya bilang bahwa ya itu tergantung niat kita apakah mau anak laki-laki secara harfiah shalihin adalah laki-laki shaleh. dan juga Nabi Ibrahim a.s yang mengamalkan doa tersebut anaknya laki-laki. Suatu hari saya silaturahim dengannya yang anaknya sudah lahir laki-laki. Dia berbisik kepada saya, doa dari sampean manjur Pak. : )
4. Barusan dapat sms dari teman asal Tanggerang ini, yang anak pertamanya adalah perempuan. Dan dia sms hasil usg istrinya yang lagi hamil sekarang ini adalah laki-laki, dan dia mengamalkan doa tersebut. Wallahua’lam kita tunggu ketika lahir saja : )
5. Kalau yang ini ketika saya menganalisis doa ini anaknya yang kedua laki-laki sudah lahir, tapi ketika kami diskusi tentang doa yang dipanjatkan oleh pria Malang yang pernah jadi Country Manager ini ketika hamil anak kedua, ternyata dia mengamalkan doa rabbi habli minashshalihin, dan anak keduanya tersebut adalah laki-laki. Sedangkan anak pertamanya adalah perempuan. jadi ada tambahan fakta lagi :)

Ya begitulah kira-kira sharing pengalaman cerita seputar doa Nabi Ibrahim a.s di dalam Al Quran. tentu saja yang perlu kita pahami adalah takdir yang diberikan oleh Allah SWT kepada kita adalah yang terbaik buat kita apakah anak tersebut laki-laki atau perempuan.

Wallahua’lam bishowab

Konvolusi pada domain waktu sama dengan perkalian pada domain frekuensi yang kemudian dilakukan inverse transformasi Fourier.

z(t) = x(t) * y(t)  <=> Z(w) = X(w) Y(w)

Dalam operasi matlab untuk konvolusi menggunakan command conv

z=conv(x,y);

jika dilakukan pada domain frekuensi maka tentukan dulu panjang hasil konvolusi, misalkan d. Maka perlu memakai operasi fft(X,N) yaitu FFT pada sejumlah titik N, jika vektor X kurang dari sejumlah N titik maka akan ditambah zero, dan jika melebihi N, maka akan dipotong.

X = fft(x,d);

Y = fft(y,d);

Z=X.*Y;

z = ifft(Z);

Contoh:

>>x=[1 2 3]
x =
1 2 3

>>y=[4 5 6]
y =
4 5 6

>>z=conv(x,y)
z =
4 13 28 27 18

>>d=length(z)
d =
5

>>X=fft(x,5)
X =
Columns 1 through 3
6.0000 -0.8090 – 3.6655i 0.3090 + 1.6776i
Columns 4 through 5
0.3090 – 1.6776i -0.8090 + 3.6655i

>>Y=fft(y,5)
Y =
Columns 1 through 3
15.0000 0.6910 – 8.2820i 1.8090 + 2.7674i
Columns 4 through 5
1.8090 – 2.7674i 0.6910 + 8.2820i

>>Z=X.*Y
Z =
Columns 1 through 3
90.0000 -30.9164 + 4.1675i -4.0836 + 3.8900i
Columns 4 through 5
-4.0836 – 3.8900i -30.9164 – 4.1675i

>>zi=ifft(Z)
zi =
4.0000 13.0000 28.0000 27.0000 18.0000

Dapat ide dari
http://www.mathworks.com/matlabcentral/newsreader/view_thread/72
430

IFFT (Inverse Fast Fourier Tansform)

y=ifft(X);

menghasilkan inverse Descrete Fourier Transform (DFT) dari vektor X, dihitung dengan menggunakan algoritma Fast Fourier Transform (FFT). Jika X ada sebuah matriks, ifft menghasilkan inverse DFT masing-masing kolom pada matriks. ifft mengetes X untuk melihat apakah vektor X sepanjang dimensi aktif conjugate symmetric. Jika demikian, perhitungan akan lebih cepat dan keluaran adalah real [1].

Setelah respon frekuensi kanal telah diukur, representasi domain waktu (respon impulse) dapat dicapai dengan IFFT. Sinyal yang diukur dengan menggunakan VNA (Vector Network Analyzer) adalah respon frekuensi kanal. Inverse Fourier Transform digunakan untuk mentransformasi data yang diukur pada domain frekuensi kepada domain waktu. IFFT biasanya diambil langsung dari raw vektor data yang diukur. Proses ini memungkinkan karena penerima memiliki tahap down-conversion dengan perangkat mixer. Metode ini disebut sebagai complex baseband IFFT yang mencukupi untuk digunakan dalam memodelkan sistem pita lebar dan pita sempit [2].

Ada dua buah teknik yang umum digunakan untuk menkonversi sinyal ke domain waktu, yaitu Pendekatan Pemrosesan Sinyal Hermitian dan Pendekatan Conjugate. Pemrosesan sinyal Hermitian yang menghasilkan bentuk pulsa yang lebih baik. Sedangkan sebuah test menunjukkan bahwa pendekatan Conjugate lebih mudah dan efisien untuk mendapatkan bentuk pulsa yang hampir sama [2].

Pemrosesan Sinyal Hermitian 

Dengan menggunakan pemrosesan Hermitian, sinyal pass-band didapatkan dengan zero padding dari frekuensi terendah turun ke DC (Direct Current), ambil conjugate sinyal dan kemudian cerminkan ke frekuensi negatif. Kemudian hasilnya ditransformasikan ke domain waktu dengan menggunakan IFFT. Sinyal spektrum sekarang ada di sekitar DC. Hasil spektrum yang double sided sesuai dengan sinyal real. Resolusi waktu dari sinyal yang diterima lebih dari dua kali dari yang dicapai oleh pendekatan baseband. Perbaikan keakuratan ini sangat penting, terutama untuk pemodelan kanal Ultra Wide Band (UWB) yang bertujuan untuk memisahkan lintasan sinyal yang berbeda dengan akurat [2].

Gambar 1. Metode Hermitian

Pendekaan Conjugate

Metode conjugate ini melakukan pencerminan conjugate dari sinyal pass-band tanpa zero padding. Yang digunakan hanya sisi kiri pada spektrum, kemudian sinyal dikonversikan  menggunakan IFFT dengan ukuran window yang sama dengan metode Hermitian. Hasil dari metode ini sangat mungkin mirip dengan hasil Hermitian dengan zero padding. Bagaimanapun juga metode conjugate ini lebih efisien dalam hal kompleksitas pemrosesan data yang lebih mudah memanipulasi perhitungan matriks pada tahap post-processing dan kebutuhan memori yang lebih kecil [2].

Ada tiga konsep yang sangat penting mengenai bentuk gelombang domain waktu dengan frequency-dependent equivalent [3] :

1. Spektrum dari bentuk gelombang domain waktu mempunyai dua komponen frekuensi positif dan negatif.

2. Spektrum dari bentuk gelombang domain waktu yang bernilai hanya positif adalah bilangan kompleks.

3. Karena sinyal domain waktu yang dapat diamati secara fisik tidak mempunyai nilai imaginer,  maka sinyal domain waktu ini harus real yang dijamin bernilai real jika frekuensi positif dari hasil transformasi Fourier merupakan compleks conjugate darin frekuensi negatifnya [LePage, 1980].

Secara umum mengukur transfer function di laboratorium dengan menggunakan VNA lebih mudah dari pada mengukur respon impulse karena ideal impulse mustahil dibuat. Karena perangkat laboratorium tidak dapat mengukur frekuensi negatif maka frekuensi negatif ini harus dibuat dari complex conjugate frekuensi positif yang diukur [3].

Contoh sederhana menggunakan matlab, misalnya kita punya 3 buah bilangan kompleks.

>> fasym=[1+i 2+i 3+i]

fasym =

1.0000 + 1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i

>> fcon=fliplr(conj(fasym))

fcon =

3.0000 – 1.0000i 2.0000 – 1.0000i 1.0000 – 1.0000i

>> fsym=[fcon fasym]

fsym =

Columns 1 through 3

3.0000 – 1.0000i 2.0000 – 1.0000i 1.0000 – 1.0000i

Columns 4 through 6

1.0000 + 1.0000i 2.0000 + 1.0000i 3.0000 + 1.0000i

>> f0=sum(abs(fsym))

f0 =

13.6251

>> f=[f0 fsym]

f =

Columns 1 through 3

13.6251 3.0000 – 1.0000i 2.0000 – 1.0000i

Columns 4 through 6

1.0000 – 1.0000i 1.0000 + 1.0000i 2.0000 + 1.0000i

Column 7

3.0000 + 1.0000i

>> t=ifft(f)

t =

Columns 1 through 5

3.6607 2.7222 1.3502 1.6460 1.2878

Columns 6 through 7

1.4878 1.4704

Referensi:

[1] http://www.mathworks.com/help/techdoc/ref/ifft.html

[2] I. Oppermann, M. Hamalainen,  J. Iinatti, UWB Theory and Applications, John Wiley and Sons, England: 2004.

[3] S. H. Hall, H. L. Heck, Advanced Signal Integrity for High-Speed Digital Designs, John Wiley and Sons, Canada: 2009.

Tipe data Boolean diambil dari nama seorang matematikawan abad 19 yang bernama George Boole. Tipe data jenis ini hanya mengenal tiga harga yaitu: true, false, dan unkown. [1]

Floating point berarti titik desimal bisa pindah letaknya bervariasi seperti: 1.2345, 12.345, 123.45. Tipe data Single hanya bisa sampe 7 digit, jika lebih dari 7 digit akan dibulatkan. Tipe data Double bisa sampe 15 digit sehingga lebih akurat dibandingkan dengan tipe data Double. [2]

Referensi:

[1] A. Oppel, R. Sheldon, SQL: a beginnner’s guide, McGraw-Hill edisi ketiga, 2009.

[2] http://www.techrepublic.com/article/comparing-double-vs-single-data-types-in-vb6/5978932

12_Dalil_Sholat_Berjama_ah A

DKI-1 2012

DKI-1

DKI-1

Halaman / Page

Masukkan alamat surat elektronik Anda untuk mengikuti blog ini dan menerima pemberitahuan tentang tulisan baru melalui surat elektronik.

Bergabunglah dengan 9 pengikut lainnya.

Kategori

Kalender

Mei 2011
S S R K J S M
« Apr   Agu »
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Twitter Terbaru

Top Rated

Hasil Penilaian Pembaca

Arsip Tulisanku

Pengarang

Fasa Bulan / Moon Phase

Informasi Tentangmu :)

Jam Islami

Hitung Mundur Menyambut Ramadhan

Asmaul Husna 99

Pengunjung Online

Taushiyah

Prngunjung Online

Blog Stats

  • 151,134 hits

Author

Ikuti

Get every new post delivered to your Inbox.