📄 matlab digital communication - space time trellis code.mht
字号:
=20
size=3D2>qpskSpaceTimeMainNormal.m<O p></O></FONT></A></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><A=20
href=3D"http://bsnugroho.googlepages.com/stTrellis.m"><FONT=20
size=3D2>stTrellis.m<O p></O></FONT></A></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><A=20
href=3D"http://bsnugroho.googlepages.com/sttc4Psk.m"><FONT=20
size=3D2>sttc4Psk.m<O p></O></FONT></A></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><A=20
href=3D"http://bsnugroho.googlepages.com/bitErrFast.dll"><FONT=20
size=3D2>bitErrFast.dll<O p></O></FONT></A></SPAN></P></TD>
<TD=20
style=3D"BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; =
BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; =
BORDER-LEFT-COLOR: #ece9d8; PADDING-BOTTOM: 0in; WIDTH: 239.4pt; =
PADDING-TOP: 0in; BORDER-BOTTOM: windowtext 1pt solid; HEIGHT: 123.25pt; =
BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt; =
mso-border-left-alt: solid windowtext .5pt"=20
vAlign=3Dtop width=3D319>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2>Here =
all the=20
functions are executed.<O p></O></FONT></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2>Build =
the trellis=20
structure.<O p></O></FONT></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2>Space =
time code=20
encoder and decoder.<O p></O></FONT></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"></SPAN><FONT=20
size=3D2></FONT> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT =
size=3D2>Compares the=20
resulting bits to the original one and find the error rate.<O=20
p></O></FONT></SPAN></P></TD></TR></TBODY></TABLE>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt; TEXT-ALIGN: =
center"><FONT=20
size=3D2><SPAN style=3D"COLOR: black; FONT-FAMILY: Verdana"><O =
p><STRONG>Table=20
3.</STRONG> MATLAB m file f</O></SPAN><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O =
p>unction</O></SPAN></FONT></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><FONT size=3D2><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p></O></SPAN></FONT></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2>The C source =
code:</FONT></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p></O></SPAN><FONT=20
size=3D2></FONT></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT=20
size=3D2></FONT></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><A=20
href=3D"http://bsnugroho.googlepages.com/stViterbi.c"><FONT =
size=3D2>stViterbi.c<O=20
p></O></FONT></A></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><A=20
href=3D"http://bsnugroho.googlepages.com/bitErrFast.c"><FONT=20
size=3D2>bitErrFast.c</FONT></A></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p><FONT =
size=3D2></FONT></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT face=3Dgeorgia=20
size=3D2><STRONG>Running simulation</STRONG></FONT></SPAN></SPAN></P=
>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2>I did =
not include=20
some fancy user interfaces in order to keep the souce codes as clean as=20
possible, hence the main idea can be conveyed with =
clarity.=20
Nevertheless, the codes are written with flexibility, so only minimal =
alteration=20
is needed to run the simulation under various=20
conditions. Firstly, you need to decide the number of states =
by=20
changing <SPAN style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMain.m</STRONG></FONT> for=20
MEX, or <FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMainNormal.m</STRONG></FONT>=20
for normal MATLAB script:</SPAN></FONT></SPAN></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT face=3D"courier =
new,monospace"=20
size=3D2>[line 5]: nrState =3D 4;<BR></FONT><BR><FONT size=3D2><FONT =
face=3Dverdana>The=20
readily available option for</FONT> <FONT=20
face=3D"courier new,monospace">nrState</FONT> are 4, 8, 16, 32, 64, =
128, and=20
256. If you be able to generate your own generator matrix, you =
might=20
want to try <FONT face=3D"Courier New">nrState </FONT>beyond 256=20
states. Secondly, you might want to change other parameters, such=20
as:</FONT></SPAN></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2></FONT></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2><FONT=20
face=3D"courier new,monospace">[line 8]: <SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2><FONT=20
face=3D"courier new,monospace">SNRindB =3D [8 10 12 14 16];</FONT><FONT=20
face=3DVerdana>, Signal to Noise Ratio (SNR)=20
range,</FONT></FONT></SPAN></SPAN></FONT></FONT></SPAN></SPAN></FONT></SP=
AN></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2></FONT></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2><FONT=20
face=3D"courier new,monospace">[line 11]: N =3D 10000;</FONT>, number of =
frame,</FONT></SPAN></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2></FONT></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT size=3D2><FONT=20
face=3D"courier new,monospace">[line 14]: D =3D 130;</FONT>, number of =
data per=20
frame.</FONT></SPAN></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2></FONT></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2>Finally, call <SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMain.m</STRONG></FONT> or=20
<FONT face=3D"courier new,monospace"><STRONG>qpskSpaceTimeMainNormal.m=20
</STRONG></FONT><FONT face=3DVerdana>from MATLAB's=20
shell. </FONT></SPAN>If you want to =
make multiple plots=20
under one figure, do not forget to hold the plot and change =
the curve=20
properties (color, line, and point) as=20
well. </FONT></SPAN></SPAN><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
size=3D2></FONT></SPAN></SPAN> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"> </P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"></O></SPAN></P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt"><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><O p></O></SPAN><SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT face=3Dgeorgia=20
size=3D2><STRONG>Example of the output</STRONG></FONT></SPAN></P>
<P class=3Dseparator style=3D"CLEAR: both; TEXT-ALIGN: center"><A=20
style=3D"BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; =
BORDER-BOTTOM-WIDTH: 0px; MARGIN-LEFT: 1em; MARGIN-RIGHT: 1em; =
BACKGROUND-COLOR: transparent; BORDER-RIGHT-WIDTH: 0px; cssFloat: "=20
href=3D"http://bsnugroho.googlepages.com/qpskSttc01.png/qpskSttc01-full.j=
pg"><FONT=20
size=3D2><IMG style=3D"cssFloat: "=20
src=3D"http://bsnugroho.googlepages.com/qpskSttc01.png/qpskSttc01-large.j=
pg"=20
Ol=3D"293" closure hashCode GALLERYIMG=3D"no"></FONT></A></P>
<P class=3Dseparator style=3D"CLEAR: both; TEXT-ALIGN: center"><FONT=20
size=3D2><STRONG>Figure 1. </STRONG>Frame error rate vs. SNR</FONT></P>
<P class=3Dseparator style=3D"CLEAR: both; TEXT-ALIGN: left"><SPAN=20
style=3D"FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: Verdana; =
mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; =
mso-fareast-language: EN-US; mso-bidi-language: AR-SA; =
mso-bidi-font-family: 'Times New Roman'"><FONT=20
size=3D2><STRONG>Figure 1</STRONG> shows that codes with 64, 128 and 256 =
states=20
almost overlap each other. It seems that improvement is negligible when =
you=20
increase the state number over 64, but you must take into account the =
code=20
design, which is how you define the generator matrix. In this simulation =
I do=20
not use the optimum code criterion as described in [1] for 64, 128 and =
256=20
states.</FONT></SPAN></P>
<P class=3Dseparator style=3D"CLEAR: both; TEXT-ALIGN: left"><SPAN=20
style=3D"FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: Verdana; =
mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; =
mso-fareast-language: EN-US; mso-bidi-language: AR-SA; =
mso-bidi-font-family: 'Times New Roman'"><FONT=20
face=3Dgeorgia size=3D2><STRONG>References</STRONG></FONT></SPAN></P>
<P class=3Dseparator style=3D"CLEAR: both; TEXT-ALIGN: left"><SPAN=20
style=3D"FONT-SIZE: 12pt; COLOR: black; FONT-FAMILY: Verdana; =
mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; =
mso-fareast-language: EN-US; mso-bidi-language: AR-SA; =
mso-bidi-font-family: 'Times New Roman'"><FONT=20
size=3D2>[1] V. Tarokh, N. Seshari, and A. R. Calderbank, =
"Space-Time=20
Code for High Data Rate Wireless Communication: Performance Criterion =
and Code=20
Construction", <EM>IEEE Trans. On Information Theory</EM>, vol. 44, =
no. 2,=20
pp 744-765, March 1998. </FONT></SPAN></P></O></SPAN></DIV></DIV>
<DIV style=3D"CLEAR: both"></DIV></DIV></DIV><!-- /wrapper --><!-- =
/main-content -->
<DIV id=3Dfooter>
<DIV class=3Dwrapper>
<HR>
<P>
<DIV id=3Dg_footer>
<P style=3D"TEXT-ALIGN: center"> <FONT size=3D2> </FONT><A=20
href=3D"http://bsnugroho.googlepages.com/home"><FONT =
size=3D2>Home</FONT></A><FONT=20
size=3D2> | </FONT><A =
href=3D"http://bsnugroho.googlepages.com/about"><FONT=20
size=3D2>About</FONT></A></P>
<P style=3D"TEXT-ALIGN: center"> </P>
<P style=3D"TEXT-ALIGN: center"> </P>
<P style=3D"TEXT-ALIGN: center"><FONT color=3D#ffff99 size=3D1><A=20
href=3D"http://www.enom.com/"><FONT color=3D#ffffff>Site supported =
by</FONT><FONT=20
color=3D#ffffff> eNom</FONT></A></FONT></P></DIV>
<P></P>
<DIV=20
style=3D"CLEAR: both"></DIV></DIV></DIV><!-- /wrapper --><!-- /footer =
--></DIV></DIV><!-- /wrapper --><!-- /container -->
<DIV id=3DextraDiv1><SPAN></SPAN></DIV>
<DIV id=3DextraDiv2><SPAN></SPAN></DIV>
<DIV id=3DextraDiv3><SPAN></SPAN></DIV>
<DIV id=3DextraDiv4><SPAN></SPAN></DIV>
<DIV id=3DextraDiv5><SPAN></SPAN></DIV>
<DIV id=3DextraDiv6><SPAN></SPAN></DIV></BODY></HTML>
------=_NextPart_000_0000_01C8E356.D7B11B20
Content-Type: image/jpeg
Content-Transfer-Encoding: base64
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -