1、2008 届毕业设计 -采用空时分组码的多天线系统设计与实现第四周周报报告人:李梦雪2008/3/23本周主要完成了两个任务:编译译码程序和撰写设计文档。现将主要内容汇报如下:一、 撰写设计文档1. 程序结构2. 类的说明由于程序中多次用到复数的运算,故编写了一个复数类,该类可以实现复数的加/减/乘/ 除/求模/与实数相乘/求共轭/求负共轭/赋值/显示等运算,并且我用的是操作符重载,即复数的运算可与实数一样简单的表示。class complexpublic:complex(float r=1,float i=1):x(r),y(i)/构造函数,实现初始化complex operator+(co
2、mplex /声明重载运算符的“+“函数complex operator-(complex /声明重载运算符的“-“函数complex operator*(complex /声明重载运算符的“*“函数(两个复数的乘法)complex operator/(complex /声明重载运算符的“/“函数complex operator*(float e);/声明重载运算符的“*“函数(实数与复数的乘法)float model();/求模,返回复数的模complex conjugate();/求共轭,返回共轭complex negative();/求负共轭,返回负共轭void display();/显
3、示,无返回,但执行显示void fz(float ,float);/复数对象的赋值,无返回,但执行赋值private:float x;float y;3. 参数传递参数如上图所示,各个模块中的传递都可以由图中看到。在这里将主要参数罗列如下: 两个全局变量int A?;/发送端产生数据流int b?;/接收端产生数据流 两个实数数组int a?;/存放未移位时的序列用于计算误码率int B?;/存放经过调制后的比特信息,但每次存放 6 个比特后即移位 两个复数数组complex cm8;/用于解调端映射,不参与传递complex t?;/复数对象数组,便于存放每一时刻调制后发送的信号值 函数中传
4、递参数Msequence():输出:A?;Channelm():输出:h,n(complex);Channelg():输入:r(complex)输出:h,n(complex);Code():输入:A?输出:int a45; complex t45;/复数对象数组,便于存放每一时刻调制后发送的信号值其他: int d,g;/ 8PSK 星座图中十进制表示,不参与传递float Z=sqrt(2)/2;/8PSK 星座图中某些点的坐标值,不参与传递complex c1,c2,c3,c4; /存放复数,不参与传递Decode( ):输入: r(complex) ;输出:int B? ,b?,floa
5、t ber;其他:static int u;/记录数据到达时刻,不参与传递float min1,min2;/欧式距离比较量,不参与传递float Z=sqrt(2)/2;/星座点坐标,不参与传递complex cm8; /用于解调端映射,不参与传递 complex s1,s2,h1(4,1),h2(4,2);/s 为判决变量,h 为信道衰落系数,不参与传递complex r1,r2,n1(0,1),n2(0,1);/r 为接收信号,n 为信道复噪声,不参与传递 其他参数用于循环计数的:int i,j;值得说明的是,发送端到接收端的过程中,传递的只有 MIMO 中提取的接收信号 r1rn,其余的
6、数据都是不可以传递的,但是这里有一个问题:?如果有误码率的计算的话,如何比较发送端和接收端的数据?4. 算法分析1) 信源产生: msequence 函数2) 调制过程:?两发一收模型相对比较简单,如果拓展到多发多收,怎样寻找规律?我们实验室的 MIMO 最多只能支持四根发送天线和四根接收天线的系统,那在毕业设计中,我们一共要考虑那几种情况?3) 信道模拟(待定)?信道模拟应该包涵那些因素?有无标准?4) 信道估计(待定)5) 解调过程:设想:在本程序中,用到的调制解调也很多,能否编写这样一个调制类,将二进制数据,复数数组和十进制数据相互映射起来,直接调用?二、 编译译码程序按照毕业设计要求,我们需要在 MIMO 上演示整个空时分组码传输系统,所以程序应该是分为两大块,一个发送端(包括编码和信道模拟)和一个接收端(包括译码和信道估计) 。但是现在无法在 MIMO 上调试,故我先将发送端和接收端放在一个主程序中,但是作为两个不同的函数,这样我们可以完成整个调试过程。在这周的编译中,我只完成了编码和译码两个函数,而信道的部分,只是用了参数来代替。程序见附件。