⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matlab digital communication - space time trellis code.mht

📁 Space Time Trellis Code soure code
💻 MHT
📖 第 1 页 / 共 5 页
字号:
=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>&nbsp;</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>&nbsp;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>&nbsp;</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&nbsp;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>&nbsp;</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&nbsp;include=20
some fancy user interfaces in order to keep the souce codes as clean as=20
possible, hence the main&nbsp;idea&nbsp;can&nbsp;be conveyed&nbsp;with =
clarity.=20
Nevertheless, the codes are written with flexibility, so only minimal =
alteration=20
is needed to run&nbsp;the simulation&nbsp;under various=20
conditions.&nbsp;Firstly, you need to decide&nbsp;the number of states =
by=20
changing&nbsp;<SPAN style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMain.m</STRONG></FONT> for=20
MEX,&nbsp;or <FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMainNormal.m</STRONG></FONT>=20
for&nbsp;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>&nbsp;</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>&nbsp;are 4, 8, 16, 32, 64, =
128, and=20
256. If you be able to&nbsp;generate&nbsp;your own generator matrix, you =
might=20
want to try <FONT face=3D"Courier New">nrState </FONT>beyond 256=20
states.&nbsp;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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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,&nbsp;call&nbsp;<SPAN=20
style=3D"COLOR: black; FONT-FAMILY: Verdana"><FONT=20
face=3D"courier =
new,monospace"><STRONG>qpskSpaceTimeMain.m</STRONG></FONT>&nbsp;or=20
<FONT face=3D"courier new,monospace"><STRONG>qpskSpaceTimeMainNormal.m=20
</STRONG></FONT><FONT face=3DVerdana>from&nbsp;MATLAB's=20
shell.&nbsp;</FONT></SPAN>If you&nbsp;want&nbsp;to =
make&nbsp;multiple&nbsp;plots=20
under one figure, do not&nbsp;forget to hold the plot and change =
the&nbsp;curve=20
properties (color, line, and point)&nbsp;as=20
well.&nbsp;</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>&nbsp;</P>
<P class=3DMsoNormal style=3D"MARGIN: 0in 0in 0pt">&nbsp;</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]&nbsp;V. Tarokh, N. Seshari, and&nbsp;A. R. Calderbank, =
"Space-Time=20
Code for High Data Rate Wireless Communication: Performance Criterion =
and Code=20
Construction", <EM>IEEE Trans.&nbsp;On Information Theory</EM>, vol. 44, =
no. 2,=20
pp 744-765, March 1998.&nbsp;</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">&nbsp;<FONT size=3D2>&nbsp; </FONT><A=20
href=3D"http://bsnugroho.googlepages.com/home"><FONT =
size=3D2>Home</FONT></A><FONT=20
size=3D2>&nbsp;| </FONT><A =
href=3D"http://bsnugroho.googlepages.com/about"><FONT=20
size=3D2>About</FONT></A></P>
<P style=3D"TEXT-ALIGN: center">&nbsp;</P>
<P style=3D"TEXT-ALIGN: center">&nbsp;</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 + -