Dosen Pembimbing :
JURUSAN TELEKOMUNIKASI
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
SURABAYA 2007
ii
IMPLEMENTASI FPGA UNTUK ALAMOUTI 2×1
PADA SISTEM KOMUNIKASI WIRELINE
Subjudul : Decoder
Oleh:
Arief Setio Budi
7204.030.056
Disetujui oleh:
Tim Penguji Proyek Akhir Dosen Pembimbing
3. Aries Pratiarso, MT
NIP. 131 964 953
Mengetahui:
Ketua Jurusan Telekomunikasi
ii
Abstrak
ABSTRAK
iii
Abstrak
ABSTRACT
iv
Kata Pengantar
KATA PENGANTAR
Assalamu’alaikum Warahmatullahi Wabarakatuh,
Penyusun
v
Ucapan Terima Kasih
UCAPAN TERIMA KASIH
vi
Daftar Isi
DAFTAR ISI
Halaman Judul ......................................................................................... i
Halaman Pengesahan.............................................................................. ii
Abstrak .................................................................................................. iii
Kata Pengantar........................................................................................ v
Ucapan Terima Kasih ............................................................................ vi
Daftar Isi............................................................................................... vii
Daftar Gambar ....................................................................................... ix
Daftar Tabel............................................................................................ x
BAB I PENDAHULUAN
1.1 Latar Belakang ................................................................................ 1
1.2 Tujuan.............................................................................................. 1
1.3 Rumusan Masalah ........................................................................... 2
1.4 Batasan Masalah.............................................................................. 2
1.5 Metodologi ...................................................................................... 2
1.6 Sistematika Pembahasan ................................................................. 3
vii
Daftar Isi
BAB V PENUTUP
5.1. Kesimpulan................................................................................... 37
5.2. Saran............................................................................................. 38
viii
Daftar Gambar
DAFTAR GAMBAR
ix
Daftar Tabel
DAFTAR TABEL
x
BAB I
PENDAHULUAN
1.2 TUJUAN
Tujuan dari pembuatan proyek akhir ini adalah
mengimplementasikan Encoder Alamouti pada Xilinx FPGA
menggunakan 2 antena pemancar dan 1 antena penerima.
1
2
BAB I. Pendahuluan
1.5 METODOLOGI
Metodologi dalam pembuatan proyek akhir ini meliputi :
1. Pemahaman Litelatur
Pemahaman pada beberapa litelatur yang digunakan baik itu
berupa buku atau tutorial tentang teknik diversitas yang
menggunakan metode Alamouti’s Simple Transmit Diversity
Scheme, paper dan lain-lain yang dapat membantu
penyelesaian proyek akhir ini.
BAB I : PENDAHULUAN
Menguraikan secara singkat latar belakang pembuatan,
perumusan masalah, batasan masalah, tujuan dan manfaat,
metodologi, dan sistematika pembahasan.
BAB V : PENUTUP
Berisi kesimpulan dari keseluruhan pengerjaan Proyek Akhir
dan saran-saran untuk memperbaiki kelemahan sistem dari
FPGA dengan metode Alamouti yang telah dibuat demi
pengembangan dan penyempurnaan di waktu mendatang.
BAB II
TEORI PENUNJANG
2.1 UMUM
Pada bab ini akan diberikan teori dasar yang melandasi
permasalahan dan penyelesaiannya yang diangkat dalam proyek akhir
ini. Teori dasar yang diberikan meliputi: kapasitas sistem komunikasi
wireline, lingkungan transmisi, sistem multi-antenna, fading, teori
diversitas yang didalamnya terdapat teori Alamouti serta penjelasan
mengenai rancangan Alamouti sendiri dan FPGA (Field Pragrammable
Gate Array. Kemudian diberikan juga mengenai proses encoding,
rancangan combiner yang terdapat pada penerima dan membahas
mengenai Maximum likelihood detector yang terdapat pada penerima.
Pada bagian lain, diberikan tentang konsep modulasi yang
didalamnya terdapat modulasi BPSK yang digunakan sebagai modulator
pada antena pemancar.
5
6
BAB II. Teori Penunjang
Alamouti Alamouti
Encoder Decoder
2.5 FADING
Fading merupakan karakteristik utama dalam propagasi radio
bergerak[2]. Fading dapat didefinisikan sebagai perubahan fase,
polasirasi, dan atau level suatu sinyal terhadap waktu. Definisi dasar dari
suatu fading adalah yang berkaitan denan mekanisme propagasi yang
melibatkan refraksi, refleksi, difraksi, hamburan dan redaman dari
gelombang radio. Hal inilah yang menyebabkan penurunan kinerja
sistem komunikasi.
0 t 0 T
Tb Tm
Tm = t + T
h0 (t ) = h0 (t + T ) = h0 = α 0 e jθ 0 (2-2)
h1 (t ) = h1 (t + T ) = h1 = α 1e jθ 1 (2-3)
11
BAB II. Teori Penunjang
r0 = r (t ) = h0 s 0 + h1 s1 + n0 (2-4)
r1 = r (t + T ) = − h0 s1 + h1 s 0 + n1
∗ ∗
(2-5)
dimana r0 dan r1 adalah sinyal yang diterima pada antena penerima pada
waktu t dan t+T dan n0 dan n1 adalah simbol dari noise interferensi.
s1 = h1 r0 − h0 r1 (2-7)
∑ ⎛⎜⎝ r ⎞ (2-8)
m 2 ∗ ∗ 2
− α 0 j s 0 − α 1 j s1 + r1 + α 0 j s1 − α 1 j s 0
j j
0 ⎟
j =1 ⎠
Untuk s0 didapatkan persamaan dengan memilih si (sinyal input) pada
sinyal BPSK (Binary Phase Shift Keying)
(α +α −1)s
2
0
2
1 i
2
+ d2 (~ ( )
s0, si ) ≤ α02 +α12 −1 sk + d2 (~
s0, sk )
2
(2-9)
12
BAB II. Teori Penunjang
d 2 (~ si ) ≤ d 2 (~
s0 , ~ sk )
s0 , ~ (2-11)
(α +α −1) s
2
0
2
1 i
2
+ d2 (~ ( )
s1, si ) ≤ α02 +α12 −1 sk +d2 (~
2
s1, sk ) (2-12)
d2 (~ si ) ≤ d2 (~
s1, ~ sk )
s1, ~ (2-13)
2.9 FPGA
Field-Programmable Gate Array (FPGA) adalah komponen
elektronika dan semikonduktor yang mempunyai komponen gerbang
terprogram (programmable logic) dan sambungan terprogram.
Komponen gerbang terprogram yang dimiliki meliputi jenis gerbang
logika biasa (AND, OR, XOR, NOT) maupun jenis fungsi matematis
dan kombinatorik yang lebih kompleks (decoder, adder, subtractor,
multiplier, dll). Blok-blok komponen di dalam FPGA bisa juga
mengandung elemen memori (register) mulai dari flip-flop sampai pada
RAM (Random Access Memory).
format serial RS 232, atau USB. Jika file program telah selesai di-
loading, maka hubungan komunikasi dapat dicabut dan FPGA aktif
secara mandiri.
beberapa type module yang dapat kita pilih. Jika kita ingin membuat
program cukup dengan memilih HDL tetapi jika ingin membuat gambar
rangkaian kita dapat menggunakan Schematic.
29
24
BAB III. Perancangan Dan Pembuatan Simulasi
1. Kanal Transmisi
Kanal transmisi merupakan kanal yang menghubungkan
antara sistem transmitter dan receiver. Dimana masukan
dari kanal transmitter adalah 2 simbol yang dikirimkan oleh
kedua antenna pemancar, empat masukan pada kanal
transmitter ini mewakili bagian real dan imajiner masing-
masing 8 bit dari kedua sinyal tersebut. Data yang masuk
akan disatukan menjadi 1 simbol yang mewakili bagian real
dan imajiner dengan masinjg-masing 16 bit data.
25
BAB III. Perancangan Dan Pembuatan Simulasi
2. Alamouti Decoder
Alamouti decoder adalah decoder yang akan menerima
sinyal yang dikirim oleh transmitter. Dan pada Alamouti
decoder terdapat combiner yang membandingkan sinyal
dengan konjugatenya. Decoder ini memiliki 4 masukan
yang masing-masing terdiri dari 8 bit data, yang terdiri dari
bagian real dan imajiner yang terpisah. Dan memiliki 2
keluaran yang mewakili bagian real dan imajiner dari sinyal
yang telah dideteksi oleh maximum likelihod detector.
3. BPSK Demodulator
Keluaran dari Alamouti decoder adalah 2 bit sinyal yang
mewakili bagian real dan imajiner. Dan pada BPSK
Demodulator sinyal tersebut hanya diambil bagian realnya
saja terutama bit yang ketujuh, sehingga didapatkan satu bit
sinyal digital sebagai bit informasi.
29
30
BAB IV Pengujian Dan Analisa
5.1 KESIMPULAN
Setelah melakukan perencanaan dan pembuatan simulasi
kemudian dilakukan pengujian dan analisa, dari hasil tersebut maka
dapat diambil beberapa kesimpulan tentang sistem kerja dari rangkaian
transmitter dan receiver yang diimplementasikan melalui FPGA dengan
menggunakan metode Alamouti 2×1 yaitu sebagai berikut :
1. Penggunaan clock dengan frekuensi yang lebih kecil sangat
berpengaruh pada tampilan pada Logic Analyzer. Semakin
kecil frekuensi yang digunakan tampilan akan semakin baik.
2. Metode Alamouti terbukti lebih efektif dalam pengiriman
sinyal karena pasangan sinyal dikirimkan dua kali sehingga
sistem receiver dapat membandingkan antara sinyal dan
konjugatenya dari kedua sinyal tersebut dan memilih sinyal-
sinyal yang terbaik.
3. Alamouti Decoder menerima dua sinyal secara bersamaan
dalam satu periode dan membagi sinyal-sinyal tersebut ke
masing-masing BPSK Demodulator.
4. Delay yang terjadi disebabkan karena pemrosesan data pada
masing-masing block transmitter dan receiver juga memerlukan
waktu, decoder memproses data sesuai dengan pergerakan
sinyal state dalam decoder seperti yang telah dijelaskan
sebelumnya sehingga data yang masuk pada decoder bergerak
sesuai pergerakan sinyal state tersebut. Begitu juga pada
encoder yang juga memproses data sesuai pergerakan sinyal
state yang ada pada sistemnya.
5. Maka dari itu delay proses pada sistem ini berubah menjadi dua
kali lipat daripada pemrosesan sinyal pada bagian transmitter
saja atau receiver saja.
37
38
BAB V. Penutup
5.2 SARAN
[1] David Gesbert, Mansoor Shafi, Da-shan Shiu, Peter J. Smith, and
Ayman Naguib. From theory to practice: An overview of mimo
space-time coded wireless systems. IEEE Journal on Selected
Areas in Communications, 21(3):281–302, 2003.
[2] Erik G. Larsen and Petre Stoica. Space-Time Block Coding for
Wireless Communications. Cambridge University Press, 2003.
[3] Hesham El Gamal and A. Roger Hammons, Jr. On the Design and
Performance of Algebraic Space-Time Codes for BPSK and QPSK
Modulation. IEEE Transactions on Communications, 50(8):907–
913, June 2002.
[4] Markus Rupp, Andreas Burg, Eric Beck. Rapid Prototyping for
Wireless Designs: the Five-Ones Approach. Signal Processing,
83:1427–1444, 2003.
[5] Raghu Mysore Rao et. al. Multi-Antenna Testbeds for Research
and Education in Wireless Communications. IEEE
Communications Magazine, pages 72–81, December 2004.
[6] Raleigh, G.G. and Cioffi, J.M. Spatio-temporal coding for wireless
communications. IEEE Transactions on Communications,
46(3):357–366, 1998.
39
40
Daftar Pustaka
1. Shift Register
library ieee;
use ieee.std_logic_1164.ALL;
use ieee.numeric_std.ALL;
-- synopsys translate_off
library UNISIM;
use UNISIM.Vcomponents.ALL;
-- synopsys translate_on
entity shift is
port ( clock : in std_logic;
load : in std_logic;
kel1 : out std_logic;
kel2 : out std_logic;
kel3 : out std_logic;
kel4 : out std_logic);
end shift;
41
42
Lampiran
D1 : in std_logic;
D2 : in std_logic;
D3 : in std_logic;
L : in std_logic;
R : in std_logic;
SLI : in std_logic;
Q0 : out std_logic;
Q1 : out std_logic;
Q2 : out std_logic;
Q3 : out std_logic);
end component;
component VCC
port ( P : out std_logic);
end component;
attribute BOX_TYPE of VCC : component is "BLACK_BOX";
component GND
port ( G : out std_logic);
end component;
attribute BOX_TYPE of GND : component is "BLACK_BOX";
Q3=>kel4_DUMMY)
XLXI_2 : VCC
port map (P=>XLXN_9);
XLXI_3 : GND
port map (G=>XLXN_8);
end BEHAVIORAL;
2. BPSK Modulator
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
architecture a of bpsk_mod is
begin
with masukan select i_out <=
"01111111" when '1',
"10000000" when others;
q_out <= "00000000";
end a;
3. Alamouti Encoder
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
44
Lampiran
entity enco is
Port ( clk : in std_logic;
i1_in : in std_logic_vector(7 downto 0);
i2_in : in std_logic_vector(7 downto 0);
q1_in : in std_logic_vector(7 downto 0);
q2_in : in std_logic_vector(7 downto 0);
i1_out : out std_logic_vector(7 downto 0);
i2_out : out std_logic_vector(7 downto 0);
q1_out : out std_logic_vector(7 downto 0);
q2_out : out std_logic_vector(7 downto 0));
end enco;
architecture a of enco is
signal state : std_logic;
begin
process (clk)
begin
if (clk'event and clk = '1') then
if (state = '0') then-- first cycle
i1_out<= i1_in;
q1_out<= q1_in;
i2_out<= i2_in;
q2_out<= q2_in;
else
i1_out<= not i2_in;
q1_out<= q2_in;
i2_out<= i1_in;
q2_out<= q1_in;
end if;
end if;
end process;
end a;
45
Lampiran
4. Kanal Transmisi
library IEEE;
use IEEE.STD LOGIC 1164.ALL;
use IEEE.STD LOGIC ARITH.ALL;
use IEEE.STD LOGIC SIGNED.ALL;
5. Alamouti Decoder
library IEEE;
use IEEE.STD LOGIC 1164.ALL;
use IEEE.STD LOGIC ARITH.ALL;
use IEEE.STD LOGIC SIGNED.ALL;
library work;
use work.my types.all;
entity combiner is port (
clock : in std logic;
reset : in std logic;
-- sync!
49
Lampiran
process (clock)
begin
if (clock’event and clock=’1’) then
s0re op regd <= s0re op;
-------------------------------------------
-- Multipliers and registers
-------------------------------------------
s0re mult: process (clock)
variable result : signed(31 downto 0);
begin
if(clock’event and clock = ’1’) then
result := conv signed(conv integer(op a) * conv integer(op b), 32);
s0re prod <= conv std logic vector(result(23 downto 8),16);
end if;
end process;
s0im mult: process (clock)
variable result : signed(31 downto 0);
begin
if(clock’event and clock = ’1’) then
result := conv signed( conv integer(op a) * conv integer(op c) ,32);
s0im prod <= conv std logic vector(result(23 downto 8),16);
end if;
end process;
s1re mult: process (clock)
variable result : signed(31 downto 0);
begin
if(clock’event and clock = ’1’) then
result := conv signed( conv integer(op d) * conv integer(op b), 32);
s1re prod <= conv std logic vector(result(23 downto 8),16);
end if;
50
Lampiran
end process;
s1im mult: process (clock)
variable result : signed(31 downto 0);
begin
if(clock’event and clock = ’1’) then
result := conv signed( conv integer(op d) * conv integer(op c), 32);
s1im prod <= conv std logic vector(result(23 downto 8),16);
end if;
end process;
-----------------------------------------
-- Adders / Subtracters
-----------------------------------------
s0re add: add sub 16 port map (
a => s0re total,
b => s0re prod,
add => s0re op regd,
ans => s0re sum
);
s0im add: add sub 16 port map (
a => s0im total,
b => s0im prod,
add => s0im op regd,
ans => s0im sum
);
s1re add: add sub 16 port map (
a => s1re total,
b => s1re prod,
add => s1re op regd,
ans => s1re sum
);
s1im add: add sub 16 port map (
a => s1im total,
b => s1im prod,
add => s1im op regd,
ans => s1im sum
);
51
Lampiran
-- Registers
-----------------------------------------
s0re reg: process (clock)
begin
if(clock’event and clock = ’1’ ) then
if (clear units =’1’) then
s0re total <= x"0000";
else
s0re total <= s0re sum;
end if;
end if;
end process;
s0im reg: process (clock)
begin
6. BPSK Demodulator
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
end bpsk_demod;
architecture a of bpsk_demod is
begin
keluaran <= not i_in(7);
end a;
Profil Penulis
PROFIL PENULIS
Pada bulan Juli 2007 mengikuti Seminar Proyek Akhir sebagai salah
satu persyaratan untuk mendapatkan gelar Ahli Madya (A.Md.) di
Politeknik Elektronika Negeri Surabaya, Institut Teknologi Sepuluh
Nopember Surabaya (ITS).
53