"" # $% &# '""( )*#
"" ""$ * ()"
"+ Æ "+ "( " )""
,"# -,.(+/"
"("" ( )
"+ 0 , ( , (.
1 ( " " #
/" + ,( "
+ +(# (
( )" " + "
"+# + +( " !
" ) " + .
" # " ) " (, ," ) (2
(."+ ) # 33 ("( ,"
" - " . "+ )"
- 2 ,(
) ( +( ("0, " ,+
( )"" #
,. ( ("( +( " ( )"
,"+ ( ) 0(" "
+ # (
3"( ("( ("/ 4
,3/ .# " "+("()
+
( 5 4 "+
" %)+
"
1(
"
6778
&# ) 5 " !!
&# '""( )
< " $<#* " (( 3
( + (2 "" $# ##* ),
" " %)+ 6776# 4"" 6776
" "(("%)+
" # (( " " "
$ *# 677= ,. "
%3"++(333 0($%*&# )
/" (""3 +( # ,""
" (4""6778#
". . ((+ 3
5 "" #)
)"+ )"Æ " "
+ ) , ( "" # + 2+
"3(" " ) . # ". ( + (
( )(# ("+"#
"+ . (+ ) &# ) ) ( +
,. (# ( ,.
,# (" " (( 2
(+ " 0 # ,""",+ ."
, (#
" . &# 5 " , "" (+ 1
" . &# !! "", (
2 #
"+ " ) ( + ( " (+
( , ( , ,. "" "
(, (" " ,+#
" . (+ " $)+3 " , ., *
" ( ,. ) ( , , ,. (+
# +((3 " > , (+"+3"
(+ ((
" "+ , (# . ! ) ( )
, - .# + (+ + , " ,+#
! "
# $% &' $&% #
:#: !# # # # # # # # # # # # # # # # # # # # # # # # # # # # =
:#6 ",. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 8
:#= # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ?
( $& &))$* +
6#7#: " # # # # # # # # # # # # # # # # # # # # # # # ::
6#: +( ("( " # # # # # # # # # # ::
, &- #.
=#: <" . # # # # # # # # # # # # # # # # # # # # # # # # # # # # # :9
=#:#: & ("( # # # # # # # # # # # # # # # # # 66
/ !011 $ (2
8#: # # # # # # # # # # # # # # # # # # # # # # # # # # # # 6@
8#:#: 1"!< # # # # # # # # # # # # # # 6@
8#:#6 "" ""A< # # # # # # # # # # # # # # # # 69
8#:#= 0((3." # # # # # # # # # # # # # # # # # =7
8#:#8 ("0+ , ("( # # # # # # # # # # # # =:
2 $ ,/
?#: 4, # # # # # # # # # # # # # # # # # # # # # =8
?#6 < 4 # # # # # # # # # # # # # # # # # # # # # # # # # # # # # =?
?#= # # # # # # # # # # # # # # # # # # # # # # # # # # # # =@
?#8 " # # # # # # # # # # # # # # # # # # # # # # =B
?#8#: % # # # # # # # # # # # # # # # # # # # # # # # # # # =B
?#8#6 % # # # # # # # # # # # # # # # # # # # # # # # # # # =;
?#?#: % "" < # # # # # # # # # # # # # # # # 86
?#?#6 < ., 4, , # # # # # # # # # # # # # # # # # # 86
?#?#= &( # # # # # # # # # # # # # # # # # # # # # # # # 88
+ " /+
@#: ) # # # # # # # # # # # # # # # # # # # # # # 8@
@#:#: + # # # # # # # # # # # # # # # # # # 8B
@#:#6 ) # # # # # # # # # # # # # # # # # 8B
@#:#= ) # # # # # # # # # # # # # # # # # # # # # 89
@#:#8 ( , , 4 # # # # # # # # # # # # # # # # # # # # # ?7
3 4 2#
B#: , )" # # # # # # # # # # # # # # # # # # ?=
B#:#: 4(<" . # # # # # # # # # # # # # # # # # # # # # # ?=
B#:#6 <" . # # # # # # # # # # # # # # # # # # # # # # # # # # ?=
B#:#= % # # # # # # # # # # # # # # # # # # # # # # # # # # # # ?8
B#:#8 (" & # # # # # # # # # # # # # # # # # # # # # ??
. +,
9#: 1 # # # # # # # # # # # # # # # # # # # # # # # # # # @=
9#:#: 4( # # # # # # # # # # # # # # # # # # # # # # # @=
9#:#6 () # # # # # # # # # # # # # # # # # # # # # # # @8
9#:#= &( " # # # # # # # # # # # # # # # # # # # # # @8
9#6 3&& # # # # # # # # # # # # # # # # # # # # # # # # # @?
9#= # # # # # # # # # # # # # # # # # # # # # # # # # # # @@
5 " * +.
;#: " # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @9
;#6 4'. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # @;
6#: 5" +( (" # # # # # # # # # # # # # # # # # # # # # # B
6#6 5" ( (" # # # # # # # # # # # # # # # # # # # # ::
6#= 5" ) (" # # # # # # # # # # # # # # # # # # # # # # :6
=#: <" . ( +( # # # # # # # # # # 6=
=#6 , 6 # # # # 68
?#: 5 =5&& # # # # # # # # # # # # # # # # # # # =@
?#6 % # # # # # # # # # # # # # # # # # # # # # # # # # # =9
?#= % # # # # # # # # # # # # # # # # # # # # # # # # # # 87
?#8 "" % # # # # # # # 8=
@#: + ) # # # # # # # # # # # # # # # # # # # # # # # # 8B
@#6 3 ) ) # # # # # # # # # # # # # # # # # # # # # # # # 89
B#: ")"" . 1 (" # # # # # # # # # # ?:
B#6 , ")" " . 1("# # # # # # # # # ?@
B#= 4 4(<" . 1 ("# # # # # # # ?B
B#8 ( ( 4&5 # # # # # # # # ?9
B#? 4 , ( " .
% # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ?;
B#@ 36=6 )"" C6&B )"( < @7
B#B <" . ")" ( %# # # # # # @:
B#9 ( (+ % # # # # # # # # # # # # @:
B#; 4 %( # # # # # # # # # # # # # # # # # # # # # @6
9#: < ) A7 3&& :@ D =0=
+( (, +( 808 / # # # # @?
9#6 < ) A7 8 " . ! :7777E (
,"+ "1 (( #
( ( 0 " )""+ "
# ",+ ( ," "
" ()( , 1)"
" 1(# ( + " "( ""
$"" "" *#
/ ("+# / + 5 ""F:8G
(( ( ) 1 ,(
$""+ 1" (*# " (
) H (I ( 1"+ $< *
(( ()#
+( 3( " ,
"(((+" ((
# " ( ( ( (""
/# ( ( 1
(" 1(
" # ( " (
( ,"+ ( , " (
- ("" (( # "
" " (( "677= ,"
" #
(,"+ "+
," (( ) " . ,
("( - ) ( ")# (
) "+ (( "
("(+ " #
" ,. "
("( (,F:8G# (
)"( " ("
("0+ , ("( ) (
(. "+ (( ""+)"F:8 8G#
" (+ 0( +
," () 1"+ /" /" " )
( "+" ," "+
# )+ ( )
(."" "+ "3," (
+(# / , ,"
33,""." . ",,"
" , ) ("" (( . 3
( # "+ , ( # (
,. /" ( (
4 +( 1 ( ," " /3
" ("0 " $ ( ,3, * . ,"
(* " A . "# ""
," , ("/4 ,3/ .#
"#
( (""")"# ,1(
+( ""+ , (
4 " # " "
( (. "+#
" "0
+(, ".# )
" ", - )"+)
( "# F6:G(
, 3" 3"! +
) "# ' ( " +(
-, ," ! , . ()()
/ # <+ /" (
" ("( #
6 " ("(
)""("(-" ."
+(# = ", ,)(
"# "2/ -( 3")"
# ' () 8 ("("
3&& "( () + "( (
( , ("0+ , ## J4
""33 "" # ? " ,
("( +( , 2/
+(" .# ()), , 3 )
)""# 1 "
, , " , 4 , +( (
" (( # ' " . "+
, "( " #
" )"( ("(
"( ",./"# "+
,. ( (( "+,"#
,. )"( ""3 ( "
F:9:BG# " (,0((."
F:=G &0 =5&&# ,.
""3 ( " " , ) "
," ,. , 0 0(" =5 %# <
" + ( ("
" ) "( "+ )"" , 1
"( # 4""3 ( " ( ""+ )" "
"(# < ,"+ ",+
( " " , ( ,. #
+ ( (
# " 0(" " FB :?G , ,. #
/"+ & 4&5# (
+ , , "("+
( # (2
( )""# ' ,"" " ) ( 3
". 0(" . ( !
# " () ("( "
Æ ! ", 33 (" (#
/ (2 0 " + F:G ,
+ " ) "Æ 3
0 + # , ""+ .
)# , " ,
)+# )+ $ 1)""+ * (""3
)"(()""+ )(#
("" )
("" ) ( " ) )
," - "" ( (#
)K "+ "# < 1( 3
, # 3 )
1 ( (
" ) - ( ((#
( ( )
1 + # " + (""
) ,""F:6G#
" +( , / 6#: , "
Coding
Modulation
Weighting/
Mapping
Weighting/
De-mapping
Decoding
Demodulation
1
2
nT
1
2
nR
H
1,1
H
1,2
H
nR,1
H
2,1
H
2,2
H
nR,2
H
1,nT
H
2,nT
H
nR,nT
r
s
1101000
1101000
46#:L 5" +( ("
) - ( (( +(
("" ( # +(
"#
"+/ + ".
(("# (""(
) +("# (( ""+ .) (# "
("" ) ". )+ (""0 + F:6G#
/ ". (("#
(" ".) ("" "(L 3
( )# " 2
, (A ) $+ ( ( . 3
) *,"" ($ ("0* )" 8
("( , ( )( , ")"+
("" ) , (# % ( " . )
",M# <+M,(- )(
)+ , 1 + ## "" 1 ) ," )
( + )# " "
("0)"# ) )(()+"+""
( ## " () (( " )(
( " ( ",##
)+# ("( Æ "
) (# ("0 Æ
(" " (# "
("" , ( )
"+ " ) )+ ("" ( +(" )"#
'(""+ (" " (0 8," " (
) ("0 $ "(* ) !
)"+ $ ( N *# , ,L
N8O E
, ! "() , ) # $
"" 1 ( ". ,
("/ (0 ( "(*# + 8
(3 )#
( ) 1 " , (0 ) 3
, ( )# ,
(($ * ()
( " (0 F:8G# ". ,+ "
"+ ") "( " 1#
( ( ( ) (#
( +( ( # (
" 3( 1" ( ( #
( ) ( " , + (0 , ,
)(# ( (
) ( 1 + # ) ) "
( + ( # " " ( ""
Æ " (0 .,# ( ( (
(# , ,)+( "
1,,) (., 1#
., "+" Æ , "
" ) - - " ( (
) + # H- I + ("#
," +( ,) ("+ - 2
)(# ., (" " (""
$H(I* (") ))
-# )" ," +( (" / (3
( ( ( ) ) ""+
- ( )"+ "" # ,3
) 1 0" (" +
)( ( +
+("" + """3 ",
" - Æ " (0#
( ( #
:# ( 1 + (( (
Æ "+# ( + 1 + (
("" , ," 1 ( " ( "
"#
6# K """)("" - )
#
=# " ( " (# ,
," ( (0 Æ )+
+("+ (# " . ( "
Æ ( # "" H13 I (
"#
8# " " ( ) ,"" ) (
+ ( "# ( .,
0" ) "" (( #
, ( 1 , 0" "L " (""0
3( # 3( 3
( " )+ $ , *
(")+$ + ((*# ,
))+ F:7G# )+
" ,, (
) #
"(""0)")(""0 (, )3
(# 0" " ) )+
" Æ +# , ( +
""+ , ( , ,
,F6?G F6@G# " 3., 0(" < ,
, 1 + # +(
# ( "3 - "3
(# ("(,) "(""0 3<
( , ( ("
(++( " Æ , ( !
"+
)" "# ",
,"" )+ +( ", + F:7G#
Æ , "+
" , ) " #
( "+ (( #
(" +( (" , /6#6 6#=
Binary Source
Outer Encoder
Modulator
Space-Time
Encoder
S
1
S
nT
Modulator
nT Transmit
Antennas
Xq
4 6#6L 5" ( ("
3(( ( ( # (
) ". ) ( "
(# ) " ) " ##
Destination
Outer Decoder
De-modulator
Space-Time
Detector
r
1
r
nR
RF De-modulator
nR Receive
Antennas
46#=L 5" ) ("
. ## , , ) P ( / P (#
("" . 2 ( +("(# D ("
## 6
"" ( ,"
" PAD +(" ," ( #
(( + (" (#
, (. (" 3" . #
3( +(,
("(# ( PAD +
+(" )
("0 " ( ( # "
, 1" (+(". ("(
+("#
4 ("( 1("/ (0 )
( +(" + 3( #
". " . " "
("(#
" . 3 ( ( ,"" " 3
# " ( (
( # " "+
, 1(
( , " # M
($" * , 0
,# ( " ( " .
)"" #
)"" ""+ ( (" " " . (
Æ "("()", $""+",7#;7*# <+)
," "# + " ,,
""+ "( < ( ("#
<" . )+ ",< "")"+
", ,)""+"( ( +(
# + ) )+ ""+ ) 7#;?# + ) ",
) + ) "( "#
(, 0 )"" (3
, ""+"3
"""+ , )"" +(")# (
"," ,)" "K"(F::G#
("(%
("# ()0 ""
, "+(
4&5F6G ))+(.)+
("( # +
$333* , (
("( ( ( ## 7 :
"# ( (( ( ( $3."3
* , "+ 7 :# "
, " + ("+ $ )
"(*&$0((3&*"(# ',""".
( ?#
6# 3( L < ""+ (
". (0 ( , , "( +("# ,
" ( ( "(
("( ## "( +(" )"#
" . (2- .
("0+ # )"")
"+ ) ## """0 3
( +(# - , , ( ( ,
)+ (0(! (#
3( +( ( 3(3 , +(" (
, " 3( (" (# , .
+("( " . 3" . 3( #
" ""0 ( ( ," 3(
( ( )+# " ""0
( (+ "
) 3 ) "# (
""+ " $""+ )""*
) ( # ( (( 0(" " (""0
< "(## 3< 3< 3<# -
, ("( (((" "
( ( ("" "
2 # 3( +(#
( (( ")" 2 , 3(
# " 3(
, "", 2 (! 2 ("" #
3( ,. (0 +("# 3
( (0 ( ,"
(0(! )+ " +# , (2
M) ( <" . $<* ( ""
$*#
< " . ( +(" - +(" (0
( - +("# 3( <" . (
" ( " (0# "
" . + " (0(( "."
) ) #
"" ("
"" ("# ( ""
"" ( # ,. +(" ( 3
+(") " ,"" (# ( ""
) " , ) )+ # %"+
+ Æ " "1 (""+)
# " (
( ( "" " . F67G F:8GF6;G#
=# 4 ("A(" (A L
( +( , + "" 3
( (" # ( ) (0
) ( 4 " /", ("/
" )" #
, " . 4#
) )#
, ) ,,+L 4 ## 3
+# )A, ) 0,
4 . # ) ,""
" " , " 4 +(#
8# L ) """0 )
"L (0(( "." ) " ) ) 3
"" )# 0(( ." $* ) )
( ( (""+) ("03
+ ## ( , 1( 0""+
, ((# ) ( (""+
) ( # ( (( 0(" + )
J 4 $J4* ) 2 ) " ((
1 $* ) ""( ("0# )
"" ) $ 3<* ,. +
( " )"" )"+ ""
"# ""+ ( ) ( ")
(0 ) "(F6?GF=8G#
< ""+ )+ (" 0(( ."
, " )# 03
(( ."1 (# ( (""+0
< 1(# " " 3)"
" " #
+( ("( , ( "
, "", % #
( "" ) ( +("#
,("(
3 ) # ) +(" , )
(" +(" ) , #
("( 0((3"." & &"+ $3
&&*"( "3"." $*)"
" (""0 ( " (
( (. # "
!"
"" (2 " . , ( / =#:#
!" #
:# 4 +(L
/ " . ( 4 +(# , 3
) ( , 1 + 6877 !# +(
C6B7: ) ," C6B?7 #
"( " )#
,,""0"" # (
C6B6: " #
6# $" " )*L
3 $ * 1 $D* " " + 4
+( ," . K " "
# )+
("" +("# ( 9 #
" L
= P$9 9 D*N 89 @7!#
(" + ,
, " .,4&5 4 # " .
(" ) + 4&5# 4 +(
< ," A , 4&5
&3:@7 0 " 4&5 "3
(" ) " #
=# 1 " .L
" 3
"3( (# "+ /"
# 2 1
/" ,"" + C"0 C6&B )"( #
C6&B B;6 " <" . " ! 88" . :9
# /",,/""
" )""# "( =6<
((+)"(# " 2 ,
((+ "" /"" =6< ((+# ,"" ".
" #
"3" . ( 1 " . L (
" . " . % # ( " . (
( &3:@7 0 "#
) 89 ,, ) ,((+
" & "#
& Q"+ & # < (1
" , ((+ ((+ " " #
+ 4&5 ," ) ( ,
" ((+ /("",++
-"+ () # ,"" 0" B#
:9 ((+ / ?:6 , =@ #
, 8+ , )# - )"+ , ?:6 P
=6 ) " " .#
(" , A # ,""
( " B# ) ((+
, , ((+ ( ;@ , ,"
89 # (" + + ,
M # ,"" ( " ( # A
"+ " ( (
" .# " /""
,. + "(#
( (( , " (
36=6 4&5 # 36=6
" (( % #
( 36=6 (" (
&#
("" ("0+ ("
, ((+ ;@ , % ,. ,
9 # ) (" ,. - " . #
, " , (" %#
"" .# ("(,
(" 4 # 1 " . ,"" 0" "
B#
8# 0(( ." L
) )"+ . ( " ( # 0)
("0+ ("(#
" 1 $*#
(2 ) "( "(
( ." $*# "+ )
7 : + ( "# ) )"
(" ( "."+ 7," ))"
"+ :# ( " "+
" # ( 3)" 3
( " "+ ., , + "
(. ( + ( (#
,. ""+ ,"", #
?#
4, $4* " "(
, ( ( " 1
". )"" " . # 1 ""+ .
, )"" ( " """(
, ") , (# ") (!
, " . ( + "( 3
( # ( (("",,
, "(# 5""+
, )"" , (""0#
1 , ""+ (#
" "(".$ "(*
& $0(( 3&"+*# )" ,
3$ * ", 3($( "
, *3$* ""
"(# ""3 ,""(+
#
) 3)# ""/ =#6
") ,/ ("0+
# - + ") " .
") 3( ") " ") (3( ")
(" $3("*") F:;G# " (3
"( ," ) &"(".
"3& (03"3& 3"3& "3"3& F=6G #
("( , ( "3& ("(
3&& # ("( (
,"" " , ?#
,)("(,. " A
3&& " . 1 " . ) "(+ 3
) # 4 +( ")
+ ("( " , " (#
)(" ("+ " ( + ! "
Turbo encoder
Interleaver
MATLAB Code
HOST PC
FPGA
(For storing information
to be transmitted and
sent out to the RF
frontend)
I_ant1 [7:0]
Q_ant1 [7:0]
I_ant2 [7:0]
Q_ant2 [7:0]
I_ant3 [7:0]
Q_ant3 [7:0]
Dual Port DAC
Dual Port DAC
Dual Port DAC
MAX2721
MAX2721
MAX2721
M_ant1_I(t)
M_ant1_Q(t)
M_ant2_I(t)
M_ant2_Q(t)
M_ant3_I(t)
M_ant3_Q(t)
MAX2750
(VCO)
De-interleaver
ML-APP
Detection
MATLAB Code
HOST PC
FPGA
(Forming the trace data
that will be processed
offline)
I_bar_ant1 [7:0]
Q_bar_ant1 [7:0]
I_bar_ant2 [7:0]
Q_bar_ant2 [7:0]
I_bar_ant3 [7:0]
Q_bar_ant3 [7:0]
Dual Port ADC
Dual Port ADC
Dual Port ADC
MAX2701
MAX2701
MAX2701
M_bar_ant1_I(t)
M_bar_ant1_Q(t)
M_bar_ant2_I(t)
M_bar_ant2_Q(t)
M_bar_ant3_I(t)
M_bar_ant3_Q(t)
MAX2750
(VCO)
Turbo Decoder
Tx
Antenna
Rx
Antenna
SISO Processor1
SISO Processor2
interleaver
interleaver
De-interleaver
Parity bit from encoder1
Parity bit from encoder1
Systematic input
Hard
Decision
Estimated
Information
Bit
$%&& %'"
"'"
+( (""+ ". 6L
N8O E
, 8 ("0 " (0 ," " (
) ("0 "( ) +(" #
(( (
+(") ( )) # " .""+( (3
( ("0+ ) +( ( ("0"
"" # ("0+
"( ( #
+( " " (""0# +(
( )"" 0" ""+
(,"0")+)+(""#
( "( (" 1"!3 (
F6?G " ""33 "" ( (" (0((3"."
$* "(#
,+ "/ ("+"(F9G# 1"!3
"( )
" ("0+ "( ""+ , (
# ""33 "" (0((3"."
$* ( 3" (# "
( 3(" ""+ 0" )"" )+
" ("0 ("(# ( " "" "" #
(0((3"." "( 0" "" )"" )+
(""+)# ( (""+
Æ ""+ 3(" ( 0" "
)"" )+# /" ) "(
( ("($, ),* " (
#
$ "
! " #$ % &
( ( ) " " 9
:,: 1"!(0# )
ND
, D# (3, 1! +(" "3
# + 1"! (0 " "/ ,
" ("( + (L #
( II#
J34 1"! 3) 8 , ) +
:N$8
8*
8
("( / ) " (0#
"( (2 ""+ +(
# " ( (
N$8 8* 8
NO
-, ""+ ) + (
-#
((( (31 $* 1"! ) +
:N$8 8O $* 8
, ((! (31
F9G# (2
+( (
( +( ) "(
)" , ! +(#
N7 "( ( 1)" !3 "(#
(2 "( , ( " 1"!
+ ( )+ "+ , " (0
( )+ ""3 , ""+ , / "
$* ( , " "#
" H)"+I " , ( ""+
"( ". J4 # "( (" )
1" +( , ", < .
! ' ()"
) 3" "( ) (" , "3
1"!( 3 0(("." +
) < ( ("0+# 3
" . ## ) ("+ "+
"+ F6?G# ' "+ ( "+K
) ) ( "
0 "+# "+
"+ "" # , "3
( - ( ) , "+ "" , (#
)"+ " "" "+ # ) "+
"+ ) "" 1"!#
1"!" J43<3< ("
""33 "" #
" 3< F6@G#
," " )" +
, (
, +(" ( ( ) 0 #
( ,
"" F6@G# "",L
L % "" )
: (
+
( " ( ( L
N L " N;$ *
, D ""
!L (
N
+(" ) ) + (
+(# +L
N $8* , $8*
"( 8#
) + N # ) "(
" # ( ( (
(, "(0"")
+# 0 (" ""
",+ , 8(0 ""#
F6@G F6?G " , (" "#
J43< "+! ( " ("0+ #
$ 1#
:# :
6#
N
, "(0
3)
(0#
=# 4,
N
,((((##
N( $
*
:# N $
EL*##
, (0 . "" ) #
6#
N
## ) + ("(0 ("" #
=#
N$
*E ( +(" + 1!#
8# N $
EL*E () - +(" (
) ) #
?# "
"( , ! ## "" #
@#
N
B# (3!,
N /,,(((( ## N( ½ $ * #
9# O:
"()") ) ( 3
) $" "" 3 & 0)* ( (
"" ) # " ( 1" ( (
, (0 ("" 3
( ) )"+ ("" (0 $ 3
"( (0 ! * ( (
( ( "(# - , 3<
J43< " ( "" ) #
! *+ ,"
(( ( ( (( " ),#
( ) "" " +(" ( "."+ #
( . " ( " )""+
( ""(0))# "(.(
, $"33* ( #
,+( ""+F=8G(0(("."
"( / ) ) (
((# '( )(
) , ( ( ) (
+( /# ) ( , ( " ,.
,((( )
, " 1 , ) "+
3) 8# ""+ +
" ( ( ,"" "
1(# (- )(. ()+
" #
!! + -
) ) ( 0"
("0+ "( , ( (
! +(" "# ". "#
"" ()
# () , +("# ""3
6
"" +(" D#
" N ( () ," "
PD # , + " "" 6
(
! PD # "" ( ) <#
""# (. (
+(" ," ) / < , ) ((" )"
0L
N8<
N
O
"( , 1 "+
( ,# "( ( ")"+ (" +
0( ( " ", ((""
) # , ",
N8<NO=N
O
1 " ,# " + 03
(". 0(
O=N
O
<$*O #
(
$*
0( "" ("0+ " 3
" + ( 1 ( 6 : )
0( O= N O
<$*O #
(
$*
". ". )+ ("0 "( ("(
, " " "+
# ) ( M3 #
( " "+ ( ( )
+(") (+(.( .(#
. "( ((" " "
1 ( K ) )
) ,"" ) "" )
) $ + * / (
# (,.# )
6K ("( ( "(
+ (( (#
+( , ("" ( $ 8 C 8 "* ("0+
"( (" ) " J43<
"(FBG#
'" ,") ((
"(""."$*(
" , ) #
: 7# ' ""+ + ("(
( ( $0* , 0 D
( #
$*N(
<
$*(
< $*
' (" D
) ", " )" , " " , , 7 :
) )" # - , )" 7
: ) )" #
) 5 ) <""
++ " " )( 3&&
) * "'"
% & ' "
4, F4G " , (3
) 1"+ ( ) ," (( "# (3
)( Æ + + + ,
$3( + + * ( " , (
# ) 4 "! 3
+)" ( "# 3
" " ", ( , ( )
( "+ ,. )3
( , # "4
,"" ""# ,# "
6
( "+6
)" ,# $%& ""
+ # ( ", )
Æ + ," ) # ' "!#
(" " , , , (
% !" &' "
<" . ,. " . , ( , 0(" " .
(0("" ( # (0
"" (0 :# " . (
, ,"
N:
) " % + , ,"" ("" + +
. (0 8 , ) +( ) # ( ) +
) ( )
) # ( " "+#
)""
/0 ! ( )"" E (
(3/ (# ) )
, " . ) (( )
" + #
)"" "." . )((+# 4"
. .3 ( ( )+ .3- )"
3
,
( "" '#
(+ % ("(
( ,. (## . N:# ")+3
/ ("(6# ( :A6+( ""+
" ( ( , "" ( ( #
- ) " " ("(#
< ) " " " ,"
+( )+ ", <# ("(
(" $") * , ".3 " "3
" " " . "(
% " "
- ( 1 "+
2 " ( , $(* "" ( #
<, """("
( ) * * (
* * * ( *# (+
4 , ""+ ""+ ( , #
(2- ,
, , # "
/ ?#:
“Upper” Encoder
interleaver
Data input
Parallel to
Serial
Converter
“Lower” Enoder
Interleaved Input
uninterleaved
parity
interleaved parity
Systematic Output
Output
4?#:L 5 =5&&
&""" )"" #
( ) , % , +
- # ") ( (!
$""+ * " (# ,
"! " , #
") ,")+ -(
1 - )# 0" ",#
" 3, ,
, , " ( :K #
,",, 1 + ((!# +
/ + # , (
, + , #
) + ", , " (
# ,. (" )
"+ ", , (""#
, (. - )#
("(,"",%)""" (( +(
$%* / F=6G# "
,"" 0#
%$ '" "
.! /* #
% , / ?#6
/ 6 "8 """ 3
(# " +
, (" " , ,
) +# ( " ,
+# , .:?:= )"+
"# ( " . +, ,
87 ?::8# #
)" + ) ,"" "#
D
D
D
Interleaver
D
D
D
X
ik
X’
ik
Z’
ik
Z
ik
X
ik
X
t1k
X
t2k
4?#6L %
+ ", ")# ""+ / 6,
, + + (#
( " , + + ,
# (( " " ""
# " ( "" .,
"(,. , +., "
/" # ,"" ( " , , " , "
"(# . ,
C,,""! ,""
""3! " . + "$##"(C
. ""3! + .
(("+ $3 , # (
+ . # (
( (L
. N7 $
N E N
E+ ( /
N ¼
E + (
. N $ $ +
N
E . :
N ¼
E + :
. N$ +! $ + ,
N
E . 6
N ¼
E + 6
.! /* &
3 ,("( (3
"() "(" #
(3 ," "+.
)" : 7 )
. + )" , 7 :
( # 3&& "()
, " , "" - )" ' )"# (
)" 3." $* ,
(( ""+ L
$
*N"
0 $
$
N** " "+ )
)
N , (# ")"
% ,/?#= + .
SISO
decoder
SISO
decoder
interl
eaver
De-interl
eaver
R(X
k
)
R(Z
k
)
R(X’
k
)
V
1
(X
k
)
L
1
(X
k
)
V
2
(X
k
)
V
2
(X’
k
)
L
2
(X’
k
)
L
2
(X
k
)
Hard
Decision
w(X
k
)
4 ?#=L %
)(# "" ,
"3 # (
6 / "3 :
"3# .
3( 3 (""+ (#
/ " . (. ( "+
, :7 + ) + $ )"
( ("* + / # (
"(" . " ,
") ) +$)"(("*
+ # ( +
"(+/
/ # ( +
3 (# , "(
/0("
(0"( ((,""() <
(# "" (" (
( + (. #
("(0 (+
+ $
* : . / ,
+( $
* , ( , )" +
$ *# 4 : $
* 1" ( $
* $ * ,
2 " :# /
$ * , : # $ * ( $ * ( $ * , (
+( " 0 ( ( :#
")
$
¼
*, ( ",
)"++ ", # :
,
$
¼
*1"2" #
/
$
¼
*, : , ") (
$
*#
/" .
$
*#
""("(
& "(# , & "(, , (3
# "- , & "(
(0P " "" "( - M) ##
"3& (03"3& 3"3& "3"3&# "" ,.
, "( # "3& ( (" ,
< ( ,"" 2 , "(
( 0 "+
(0P$0 +* N "$
O
*
N $ *O"$:O
*
N $ *O
,
$ * ("(" "( 03
" ,#
%% " (
"( "", . ( F=6G#
6 , , ,
) "+ # , "
( ( (0P # ,
)" (# )" , ,
, ( ) , / , ,#
.. /* *
"" % , ",L
?#8
" : " 7#
"+ ( L
N 7
N $
*
N $
*
N $
*O *
.. 0
., (
"" . +
$
*,
: O= 7 B# ""+
$ *N 7
$
*N /
4?#8L "" %
4 N O6 , N: " ( L
¼
$
*N(0P$
$ *O
$ *O * $?#:*
, ¼
$
* 3("! ., (
, .+ ,
. ""#
("! $ *N ¼ $ * ¼
$ * $?#6*
, (
"" . +
$
* ,
7 7B# ""+ $ *N7 $
<, N: N 3("!
(
¼
$ *N(0 P$
$ *O $
*O * $?#=*
,
, . ,
. ""# ("!
$ *N ¼ $ * ¼
$ * $?#8*
( " , ,
( # "."
.
.
$*N
$
*O O
$ * $?#?*
)
$
*N(0P
$*(0P
$*
, (0P ( )"+ ) "." "" :
$
*L
N: 7 $
*L N7# .. & ( ( (
") ! ") # ("(
") /0 %
# % " ) ")
"(# " ") ! , 87 ?::8#
, ( ,. , ""+ (
! ")# < ,
( ! ") !#
( " ,.,# <
+( ( "+ () ,"
(, ("(# ".,
( " <# ,
" ( " (
( # ( ()(
(,)+,"H,3I,
,," )"+ (((<#
( " +
+( , # ("( , . )" :7
( ! :777 K# )" /"!
) , ", ( ("" ") !
!"
4 +( ( ) ( 3
" ( 4 1 + " ( (
) ," "# " 1 + "!
( ( , ,.
) (0(( " ""+ ( # " .
", +( " . "" ", ")"
" 0" ( 3")"
( ")" 3+( (# (
1 .," " )#
) "* ("" "
( (" ( )") , ,
RF
BAND PASS
FILTER
LOCAL
OSCILLATOR
RF
IF
BAND PASS
FILTER
LOCAL
OSCILLATOR
IF
90
o
BASEBAND
LOW PASS
FILTER
BASEBAND
LOW PASS
FILTER
I
(in-phase
component)
Q
(quadrature
component)
Low Noise
Amplifier
Interference
Rejection
Image
Reject
Filter
4@#:L + )
1
"((0 )1 +
# + ) ,
/@#:L
4 " " ",3 ("/ $*
/" ( 2 #
(0 , 4 1 + , ) "
( 1 + $ 4*# + ( 2 /"
2 ( " , )
1 +#
1 & 2
" "" J3 4 (+ , + 3
! , 1 +#
, / @#6# - ( + +
) "+ ( 4 )3
RF
BAND PASS
FILTER
LOCAL
OSCILLATOR
RF
90
o
BASEBAND
LOW PASS
FILTER
BASEBAND
LOW PASS
FILTER
I
(in-phase
component)
Q
(quadrature
component)
Low Noise
Amplifier
4@#6L 3 ) )
(" " , 4 (
-( ")" + )"
, ,#
,"" 0 )(4
# ())
( (1 (2 /"
() ( (0 4 ,+
,#
1 & 2
) (2)) + )
"( ( 2 () 4 !
F69G# " 4 ' /" ) - ) (
" , " 0) , & 4" ("/#
" ( ( (. ( ( ("
( )
L
:# ". ("" +
(0 ) "( ) " ,
# ( ""+ )
+( ( 1 +# ",+
) "K (0 ) ," (
".#
6# ( (0 "
) + " " ""+
,31 +
3"+ ( # < ,
" (0 - F@G#
""0 , 0 +
(0 , "+#
=# - ( " #
, ) 0 ! 1 + 0 - )"
" ( ("+ "", #
- (((
".# (( 3-
K+( +( +"(#
() & )F68G# 1 " ,
- )3 " , " , +(
F6BG#
" ( ( -3
(32 /" () 3 ) "
, ")" " ()#
(" ",3 ) )# 'C6B7:
)"(C
C6B6:(3
#
1! " 0
4 !3 4 ) (+ "
J 4 , - "(# +
, ) " , ")" " # 4
(2 (+ AD, )(0 ("(
1,"31, )# ""
( + "+ /" , " ( 2 /"
, ) ,"" "0 +( 1(
A )# ) "" (
1( ( ( ("( ,
(2 ) " . ("(
"+ (+ # "
" ( "( )
+ " # )
) )#
C" , 6#85!
F=G,"."" (0 &6 (0(!
", / &= " " "+
)" 0 5 $ )" .*# 4
+( " ( (#
! 1 +( (! ,"" " ,
%-. *'
Data Acquisition Module
Data_value<47:0>
Clk
read_rs232
reset
start
done
status
uart_xmit_dataH
xmit_doneH
4 B#:L ")"" . 1 ("
-3"( ("(
( ((+ , ," ,.
, # (
(" , /B#:#
89 ( A ## &3:@7 0 "# (
4&5 ".A6#
4&5 ".# $, :77! "0" "" +
"" . 4&5*#
" ( " ((+ 36=6#
, 4&5 "
"M,#
+( #
" ( ")" ("
A #
" (" 36=6# 3
"#
)"," (" ( ##
((+ /"" + ( A#
" + % " . , 1 ("# 3
36=6 #
(" (" 0" 89
)+ " . + " , ((+ 4&5#
((+ "" & "
(( "" 36=6 , + ( 01 2
+ , ,* # (" #
" . 1" . , / B#6#
("+ M ) " ,
-" .# ". " . "#
3 0
" . " ( ((+# A
, " 4&5 " .# 4
" . , / B#=#
, + " "" " . ,"" A
# )+ " . "" ( A " .
( " ;@ ((+ ,# ((+ , ,"" ,
. = " =6 ((+ , "#
"+ 88" " . , "+ 86 (#
, " .#
:# +( ( A /"" ((+#
( ,"" , / B#8#
6# ((+/"" ( ",., %
, " . , , # , , (
((+ )+ ( '. " ) + " .# /
( ((+ " 1 0" ! " ) . .
- " #
3
" . . , % (
" . 1("+) '. " (3
" .,,;@, ) 3 2 "
%,9 +""+# ;@
" :6 , 9 %#
3 /
% ( ( "(
36=6# 36=6 4&5 /, ",
/ B#@# , (/ + F66G#
03 & )"( ) <3; ("
6=6 # "! C=66=) )
"# " <3;
) # % 36=6
# - " . % , / B#B#
( . " " +( " . H"I +
!" #$ N%$&$'()* (+:@*
, '()* (+ ( ## O
O+ $"*O $*# '()* (+ (/0
+ " 36=6 (( #
( " (( , / B#9
" ("(
9 (#
4 ( , / B#;#
3 2 % C 36=6)
3!
% "" ( # 6 #
:#/ "L
:#:* #
:#6* " /# <
+#
:#=* /#
:#8* < 3 ) <+ ) , <+#
:#?* 4 4 " /#
6# ( L
( 36=6 "" (# 3(
"+ "" < " ,
# ':("++(#
/" +
TRACE FORMATION
BLOCK
data_value[47:0]
read_rs232
Clk
reset
start
data_value[47:0]
read_rs232
Clk
start
reset
INTERFACE UART
TRACE FORMATION
data_out[7:0]
data_out_en
done
status
data_in[7:0]
data_out_en
done
status
Clk
deassert_xmitH
reset
Xmit_doneH
data_out[7:0]
read_check
xmitH
UART CORE
Clk
reset
Xmit_dataH[7:0]
uart_rec_dataH
xmitH
deassert_xmitH
uart_xmit_dataH
Xmit_doneH
read_check
read_check
done
status
uart_xmit_dataH
Xmit_doneH
rec_dataH[7:0]
rec_ready]
S0
reset
S1
Start == 0
Start == 1 / enable read_lower (to form lower 48 bits of memory word)
S2
Stall cycle to read interface
S3
Enable increment of destination address in
memory
Enable formation of higher 48 bits of memory
word
S4
Enable write to block of
SelectRAM memory [3 blocks
of SelectRAM written together]
S5
Memory full
read_check == 0 || read_rs232 == 0
Memory not full &&
SelectRAM blk not full /
(enable lower_read)
Memory not full &&
SelectRAM blk full /
(enable lower_read and
enable new SelectRAM Blk)
S6
Increment memory address (makes it 00)
S7
Enable read from memory
Stall cycle to read from memory
S8
Memory not empty && read_check == 0
Memory not empty && read_check == 1
S9
Memory full
FPGA
clock
I/O
clock
start
Data
seen at
interface
Form
lower
48
bits of
96 bit
mem
ory
word
Form
upper
48
bits of
96 bit
mem
ory
word
stall
memory
Write to
Form lower
48 bits of
96 bit
memory
word for
next
address
one 96 bit
write to
memory
S0
reset
S1
Status ! = 0
Status == 0 / (read_check = 1)
S2
S3
Data_out_en = 1/
(reset_count_12 = 1)
S4
S5
Deassert_xmitH != 1 /(dec_count_12 = 1)
/(read_96_en = 1 ) ; to read incoming memory word
Done!= 0 && count_12 !=0 / (xmitH = 1)
S6
xmit_doneH !=1
S7
done == 1
Data_out_en !=1/ (read_check = 1)
Stall cycle for data to be read
from memory in Trace Formation
Block
Stall cycle for data to be read into
register in interface
Deassert_xmitH != 1 /(xmitH = 1)
xmit_doneH !=1
Done!= 0 && count_12 ==0 /
(read_check = 1)
4 B#?L 4 , ( " .
BAUDRATE
GENERATOR
RECEIVE MODULE
uart_rec_dataH
Clk
reset
Sys_rst
Clk
reset
done
uart_xmit_dataH
Xmit_doneH
Sys_Clk
uart_rec_dataH
reset
Clk
rec_dataH[7:0]
rec_ready
TRANSMIT MODULE
xmitH
reset
Clk
Uart_xmit_dataH
Xmit_doneH
xmit_dataH[7:0]
xmit_dataH[7:0]
xmitH
deassert_xmitH
Rec_readyH
rec_dataH[7:0]
4B#BL <" . ")" ( %
Stop
Start
D0
D1
D2
D3
D4
D5
D6
D7
Time
Data Byte
Logic
0
Logic
1
S0
reset
S1
Status == 0 / (read_check = 1)
S2
S3
Data_out_en = 1/
(reset_count_12 = 1)
S4
S5
Deassert_xmitH != 1 /(dec_count_12 = 1)
/(read_96_en = 1 ) ; to read incoming memory word
Done != 0 && count_12 !=0 / (xmitH = 1)
S6
xmit_doneH !=1
S7
done == 1
Data_out_en !=1/ (read_check = 1)
Stall cycle for data to be read
from memory in Trace Formation
Block
Stall cycle for data to be read into
register in interface
Deassert_xmitH != 1 /(xmitH = 1)
xmit_doneH !=1
Done!= 0 && count_12 ==0 /
(read_check = 1)
* '
,"" ) 1 . )), ( ( (
" ) (" #
- (".
-(" " .,"+
() , (" , (
) 36=6#
4 0
)") )" , (((+ :77!#
, , (
C6&B F?G# , (" "
( ( " (" , ,
- # , (" +
" , # - ,
-", , "
(" "., ("
( .# " (" ) ,
+# 4" A ", +",
#
4 2
(" 1 (" (
( ,+ ) # /""
((+ 0 ""+)36=6#
, #
( , /" H-I , 0 (
#
4
, " )#
"(/"+"" .)+C C
&2 )L
0(( 1 + L :=6#B ! $)) (*
( " 4&5L @69 ?887 $::R*
4( ) , +( "" "! 9;R
" "" # ( +(
- , (// "
49#:L <)A7 3&& :@D=0=+(
(, +( 808 /
( "(" ("
M ",., ( ("
Æ )(# M (
" " - + " ## ""
1 " ( # "
" Æ ("0 )"# " ",
"( ( "( )(""
+("# % ( +" , , 8 (0 ,
( # 4)8"
(+ Æ (")! ()
:# ("( 45 <
# "
(" ) ! ( , ) # ) "
, "" :# + :A8 :@3D#
(" , < ) , / 9#: ,
)- (# '"("
=0= / 808# " 83D ""
# 0" ()
( )# ) =
< ()() ) = 0 = < :7
#
- "
4 9#6L < ) A7 8 " . ! :7777E (
,
" ( ( <&
("'5 "( /" )# ("
,"""! " )", ""+
"# (" F==G# " (
(" < ) A7 , / 9#6 )/
( " F=:G# -
2/ ( .#
"( (" (""," ("
( 0 ," , ) )+ #
M ) ("+# (
:7777 (" ), .
1(""(",". 6,.#
-' * 1
0 "
")), 3
(""+(# " 3
! +( ,"" ! 3"!
3" # +( " .3
, 1 4&5 ," "" "
<# ". / +(L
, 86 88:@ "" . "
4&5 (# )@99("# ("
89"((" :8==@("#
)(" 8 , ) =?89 (" " ( ("#
, ?77 (" " ( ,
" = (" (# '
$<*("(# ,"".(" ""
" 0("+=@777 (# " (
( < :7 # ""+ " (
) < ) :7 F:8 :7G
" )Æ ( ! (
#
0 & 1
( ( ( < ("(
+ ! " (# ' ,"" ()
((!43
,")"( 976#::# "3
" " ". #
) "( ( ( + - )( 3
( " ") + 3
# " ( (2 , " .
F:G <"" "(/0 ,"(L <""
" ; ( :;;9#
#
F6G #
F=G :#95! 6#?5! , ) )# )""
#
F8G & " "" &# =5&& # #
5: :@$77*:6:;#
F?G 03 & $&8A&B* )"( < K # )""
( ! " #
##$# ##
F@G ## 3) )# 1
6( - *( # :;;?#
FBG # 2 # < . # < 5# 2. # 5) # # 2
#"##(!2#"#! ##'".
# # '". '".+# &+ 0 < )
5 '"+(# 1 6( *
F9G # # " 4 ", # Æ "(
"L 5( " 0( #
1 ) ) 677=#
F;G " 5
. # 4"0" ""808 #
F:7G . < C '# " &
(( 3 &(# )"" ( % $ "
&' %( #
F::G #<# 3 L %"(("S
*( 6( #677:#
F:6G # <# '" +(L & " &" &"(
& # *7 8!9.' 2 . + 6776#
F:=G # # 5 # # ) 5# # ',# :;#6 (A 8 0 8
<A , # *7&1*
677=#
F:8G ) 5 / & # ( +(
# 4( + & L )), 3(
'"+(# 1 6( 7 *( #
677=#
F:?G #5""#<##< . ## &+
808<3)3%,".# ):- '!, '* -
; *( 677:#
F:@G #5""#<##< .#&" #4"'#4 3
# 4&5 ("( )43%,3
".# 1 (' *( 6776#
F:BG J 5 & "# ?7 ( 8A" (A8 (0(( "."
) - '< ' 1 1 * - ; *(
677=#
F:9G J5&"# 3< <1"3
(# ) - ' = ' 1 1 ( ) ;
1 *( 677=#
F:;G 4 # )" # )"3
" ) )
#
F67G '# ## #&"2# 3(<" .)
3( "" # ) - 1 1 * -
*( 677:#
F6:G + 5" (+ <
5" !!# ) &( 3"! 3"
" " " +# 1
) 1 ( 677=#
F66G # 3%L +!" %# )""
*+,#
F6=G #5""## "(%#
!, ' * - ; *( 677:#
F68G + ")# "+ 4 '" )# "
B;6CL '" (( #
F6?G '".+ &#'# 4 5# #5" 5## "!" ## 3<L
"! + ) 3
'" "# ) - 1 >>? @1 1 (
F6@G '".+ &#'# 4 5# # 5" 5## "!" ##
"( "+"3< 3((3
( # A: !, :;;;#
F6BG <!!)#""&"4 )# 1 *(
B C #:;;@#
F69G <!!)# 3) )# 1
*( 11D B )
# :;;B#
F6;G ) # 4"" 5# ( - ( )3
+ 3("(# )"" $
# $# %-. #
F=7G # 3(L 4(4(" 4# )""
$&" /0 /1 2- /34 (2 #
F=:G 5 # , "(# 1
*( # 677=#
F=6G # # " # # % Æ
("( " ,3/ # 1 6(
- 9 1 - & #. # 677:#
F==G , "# 1 B B - 9 *(
# & :;;;#
F=8G # ) # )J" 5# ,# 0(( ."
)""0+(# ) - 1 A'('
* - 4A*5 6777#
F=?G ' C ' ( & <+# ("(3
0(" " 3( 3 ) $=0=*
4A< # ( 9 *( C