数字移动通信基础实验书_第1页
数字移动通信基础实验书_第2页
数字移动通信基础实验书_第3页
数字移动通信基础实验书_第4页
数字移动通信基础实验书_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字移动通信基础仿真实验指导书安逹研究室年月版() 实验概要实验通过仿真编程和仿真实验,加深对衰落信道的理解用软件实现衰落仿真器F(k),编写仿真程序,根据其运行结果观察衰落的振幅如何变动实验在空间领域观测衰落编写观测空间领域衰落的程序,并用它来观测衰落的空间领域变化实验衰落环境下的误码率特性的观测 编写误码率观测软件,测定衰落环境下的误码率特性 测定无衰落环境下的误码率特性,并与衰落环境下的误码率特性进行比较实验抗衰落措施分集接受对误码特性的改善实验仲上莱斯衰落2. 实验2.1.1程序流程Start开始(void CJikkenDDlg:OnStartButton()做图程序(1)衰落的角度

2、与相位的初始設定(2)衰落仿真器 F(k)循环k=01000 (3)F(k)的振幅的計算F(k)的记录(4)实验者各自完成本程序流程图的()和()两部分的程序编制2.1.2. Microsoft Visual C+的原程序说明在以下的原程序中与衰落无关的部分用绿色表示void CJikkenDDlg:OnStartButton() /* 实验1的软件記述部分*/* 定义以下参数*/int loop1,loop2;double FDT, NORM;double fading_I, fading_Q;double ALPHA17, PHI17, THETA17;double T_I17, T_Q

3、17;double rnd1,rnd2;double PI=3.1415926;double fading_abs,fading_log; int N, NM, k, TIME;srand( (unsigned)time( NULL ) );CClientDC dc(this);/ 縦線流程图第(1)的部分for (loop1 = 0; loop1 <=10; loop1=loop1+1)dc.MoveTo (50+50*loop1,50);dc.LineTo (50+50*loop1,350);/ 横線for (loop1 = -10; loop1 <=50; loop1=loo

4、p1+10)dc.MoveTo (50,100+loop1*5);dc.LineTo (550,100+loop1*5);/*归一化参数 NORM:fading (fading衰落的平均功率为) */NORM = sqrt(1./16.);/* 衰落的角度和相位的初始設定 */流程图的第(2)部分/从这开始,实验者各自添加流程图第()部分的程序(各自的程序做成部分詳細的请参照程序添加部分说明)/到此为止 for (k=0; k<=1000; k+) / 以下为循环部分/* 衰落仿真器 */流程图的第(3)部分fading_I = 0;fading_Q = 0; 衰落参数的初始化/从这开始

5、,实验者各自添加流程图第()部分的程序(各自的程序做成部分詳細的请参照程序添加部分说明)/到此为止/* 衰落振幅的計算 */流程图的第()部分fading_abs = sqrt(pow(fading_I,2)+pow(fading_Q,2);fading_log = 20*log10(fading_abs);/* 作图部分 */for(loop2 =0; loop2 <=500000; loop2=loop2+1) ;dc.SetPixel (k*0.5+50,100-fading_log*5,RGB(255,0,0);UpdateData(FALSE);2.2.3.对程序所需追加部分的

6、程序的説明衰落F(k) 可表示为(詳細见讲义)编写程序时,为了方便可把衰落分成实部和虚部(以下,赤的斜体字 是实际程序所使用的变量)首先,根据仿真条件计算fD T(fD T的計算方法,参照讲义)FDT = (計算所得的値)将衰落分成实部和虚部(N是到来平面波的波数,可以任意设定不小于的数,例如N=16)fading_I (衰落的実部) fading_Q(衰落的虚部)同样,西格玛和号内的平面波也要分成实部和虚部T_IN(各个平面波的実部)T_QN(各个平面波的虚部)这里,到来波的波数和初始相位,作为事前决定部分的变量,要先行计算NORM(初始設定計算)THETAN=(是0随机数,并且),PHIN

7、= (是02的随机数)ALPHAN=FDT (THETA) 这部分相当于流程图()的部分以下开始用上面定义的变量和初始条件来计算平面波和衰落的各个部分T_IN =cos(ALPHAN×k+PHIN) , T_QN =sin(ALPHAN×k+PHIN ),fading_I =NORM × T_IN fading_Q =NORM ×T_QN这部分相当于流程图的()的部分2.2.4. 流程图(2)的衰落的角度和相位相初始設定FDT = (已经計算出的値), THETAN=(是0的随机数, )PHIN= 是(02的随机数),ALPHAN=FDT (THETAN

8、) 预先用随机数生成之后就可计算,THETAN,ALPHAN,PHIN计算时可采用一个循环来实现循环次数N “ for (N=1; N <= 16; +N) ”在此程序中,随机函数是调用 ”rand_ra()”函数来产生的这个函数产生130000之间的任意数首先定义double型变量,再付值(定义变量)=rand_ra()之后,就可以方便地使用了例如需要均匀分布的随机数x时,可定义rnd1=rand_ra(); x=rnd1/30000;(rnd1,x是double型变量)三角函数cos是作为数学函数,可以直接调用,如y=cos(x)那样2.2.5. 流程图(3)的衰落仿真器T_IN =

9、cos(ALPHAN×k+PHIN) , T_QN =sin(ALPHAN×k+PHIN ) fading_I =NORM × T_IN fading_Q =NORM ×T_QN计算T_IN,T_QN的时候,可使用流程图()的同一个循环N在此之后,计算衰落时也可用同一循环方法如:fading_I=fading_I+T_IN (虚部也如此),这样一来,西格玛和数计算就可完成了最后不要忘记归一化(即乘以NORM),在循环完了后将fading_I和fading_Q乘以NORM 图仿真结果一例3. 实验3.1. 实验概要在实验中,首先做成观测空间领域衰落的仿真程

10、序,之后进行仿真实验(如果手头没有三位做图软件,此实验可以后有条件时自己完成)3.2. 程序的做成3.2.1. 流程图初始设定参数的输入. (1)衰落的初始角度和相位的設定. (2)循环 <1>x=0x_max循环 <2>y=0y_max衰落仿真器 生成F(x,y) . (3)計算|F(x,y)| 的振幅 输出|F(x,y)| . (4)循环<2>结束循环 <1>结束按照讲义的原理,请各自编写此流程图的(2)和(3)部分3.2.2. 原程序说明/ Fading Simulator for 实验D/ Copyright by Adachi Lab.

11、, SAO Tomoki, KOBAYASHI Kazurari/* 初始定義 */#include <stdio.h>#include <math.h>#include <time.h>#include <stdlib.h>#include <string.h>#define PI 3.1415926535 PI=3.1415926535的定義/* 随机函数 rand_ra() 的定義 */* rand_ra() : 返回从1到30000的随机数 */int rand_ra()int r,i=0;个定义发生130000的随机数計算中

12、如使用随机数,就调用这函数while(i = 0)r = rand() - 2767;if (r >= 0) break; return r;/* 主程序 */void main()/* 变量的定義 */double fading,fading_I,fading_Q;double THETA17,PHI17;double ramda;long double PSI;int N,x_max,y_max,X,Y;double NORM;double rnd1,rnd2;/* 随机数表的初始化 */srand(unsigned)time(NULL);/* 仿真参数输入 */程序流图(1)的部分

13、printf("#x=n");scanf("%d",&x_max); x_max,y_max:是定义仿真的最大空间範囲 printf("#y=n");scanf("%d",&y_max); 単位是cm(输入整数)/* 衰落初始条件的设定 */程序流图(2)的部分ramda= ;NORM=sqrt(1./16.);ramda:是载波的波長(这里是添加的程序部分詳細的请参照程序添加部分说明)/* 衰落的生成 */程序流图(3)的部分for (x=0;x<x_max;x+)循环<1> 从

14、x=0(cm)以1cm的步长到x_max为止for (y=0;y<y_max;y+)循环<2>从 y=0(cm)以1cm的步长到y_maxfading_I=0;fading_Q=0;(这里是需要添加的程序部分详细的请参照程序添加部分说明)/* 归一化*/fading_I=fading_I*NORM;fading_Q=fading_Q*NORM;/* 衰落振幅的計算 */程序流图(4)的部分fading=sqrt(pow(fading_I,2)+pow(fading_Q,2);fading:衰落的振幅/* 衰落振幅输出 */printf("%dt%dt%fn"

15、;,x,y,fading); y轴循环结束printf("n");x轴循环结束3.2.3. 程序追加部分的説明到达地点(x,y)的N個平面波的合成波可表示为:,这里编写程序时,将衰落的实部和虚部分开来写容易计算详细叙述如下:(以下,赤色斜体字为程序所使用的变量)分开衰落的实部和虚部 (N为到来平面波的数目,本仿真用N=16)fading_I (衰落的实部) fading_Q(衰落的虚部)按此思路,西格玛和内的相位的位置变化量,可表示如下PSI(相位的位置变化量)以下是衰落的仿真的初始条件,是事前决定部分的変量,要首先算出NORM(初始設定計算功率归一化)ramda=(载波的

16、波長)THETAN=(为0的随机数,其后确定),PHIN= 为(02的随机数)这部分相当于程序流图()的部分使用以上变量,计算衰落的部分PSI=(y/100.*cos(THETAN)-x/100.*sin(THETAN)*2*PI/ramda ,fading_I =NORM × cos(PSI+PHIN) fading_Q =NORM ×sin(PSI+PHIN)这部分相当于()的部分3.2.4. 程序流图(2)的设定衰落的角度相位的初始值ramda = (計算値), THETAN=(是0的随机数, )PHIN= 是(02的随机数)3.2.5. 程序流图(3)的部分衰落仿真

17、器PSI=(y/100.*cos(THETAN)-x/100.*sin(THETAN)*2*PI/ramda ,fading_I =NORM × cos(PSI+PHIN) fading_Q =NORM ×sin(PSI+PHIN)在PSI的計算式中,将x,y除以100是为了将x,y的単位统一到m上来备注:立体图可用gnuplot等来完成gnuplot表示例4. 实验4.1. 实验概要在实验中,将编写误码率测试程序,并对衰落环境的与无衰落环境的误码特性进行测试,并将所的结果进行比较4.2. 程序的编写4.2.1. 程序流图开始. (1)衰落角度和相位相的初始设定. (2).

18、 (3)发信信号的生成 s(k). (4)衰落仿真器 F(k). (5). (6)循环(No_symbol) 次. (7). (8). (9)误码率測定初始条件设定fDT,SNR的输入数据生成 a(k)高斯噪音生成w(k)接收信号生成r(k)=s(k)*F(k)+w(k)同步检波 d(k)=r(k)*F*(k)数据判别if Red(k)>0 a_cd=1 else a_cd=0(10)流程图中(2)和(5)的部分请各自独立编成4.2.2. 原程序说明程序说明文用蓝色来表示,语句说明文用绿色,它们都不是程序部分”2PSK-1.c”/* 瑞利衰落仿真 */* Visual C+ 版 Ver.

19、 2.10 / 2001.4.10 */* Adachi Lab. / SAO Tomoki */* 初始定義 */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <time.h>#define PI 3.1415926535PI=3.1415926535的定義/* 参数 No_symbols:循环次数 */#define No_symbols 1000000循环次数的定义/* 随机数产生函数 rand_ra() 的定義 */* rand_ra() : 返回从1到300

20、00的随机数(only Visual C+) */int rand_ra()int r,i=0;while(i = 0)r = rand() - 2767;if (r >= 0) break; return r;/* 主程序 */void main()/* 各変量的定義 */double FDT, EBNR, SNR, B, AA, NORM;double fading_I, fading_Q;double ALPHA17, PHI17, THETA17;double T_I17, T_Q 17;double SIGNAL_I, SIGNAL_Q;double RECEIVEDSIGNA

21、L_I, RECEIVEDSIGNAL_Q, d_I;double AWGN_I, AWGN_Q;double rnd1,rnd2,rnd3,rnd4,rnd5,rnd6;double BER_CD, BER_CD_total;int R6,temp;int A, N, NM, k, TIME, A_CD;int ERROR,BITERROR;/* 随机数表的初始化 */srand(unsigned)time(NULL);/*参数的输入 */流程图(1)的部分/* fDT的输入 */* 变量 FDT:FDT的値 */printf ("2PSK Simulater n");输

22、入FDT的值printf ("fDt? n");scanf("%lf",&FDT);printf ("fDT = %f n",FDT); /* S/N的输入 */* 变量 EBNR:SNR(dB) SNR:SNR(真値) */printf ("S/N (dB) ? n");SN比(信号対噪音的功率比,与SNR,S/N相同)的输入scanf("%lf",&EBNR);SNR = pow(10,EBNR/10);pow(x,y):x的y次方涵数printf ("S/N(dB

23、)= %f n",EBNR);/* 数据生成的初始設定 */* 变量 BER_CD:数据错误累加器 */BER_CD = 0;累加器的初始化/* PN码用 位移存储器的初始化 */R1=1;R2=1;R3=1;R4=1;R5=1;/* 变量 NORM:为使衰落的平均功率归一化*/NORM = sqrt(1./16.);到来波为个/* 衰落的角度,相位的初始花设定*/流程图(2)的部分(这里是各自编写的程序部分詳細的说明请参照程序追加部分的説明)for (k=0; k < No_symbols; k+) 以下,复数比特发信的循环/* 数据a(k)的生成 用PN码生成数字序列*/流

24、程图(3)的部分/* A:发生的数字序列*/用PN码的生成A = R5;temp = (R2 + R5) % 2;R5 = R4;R4 = R3;R3 = R2;R2 = R1;R1 = temp;/* 2PSK信号s(k)的生成 */流程图(4)的部分/* 变量 SIGNAL_I:信号s(k)的实部,SIGNAL_Q:信号s(k)的虚部 */* A是"1"时,SIGNAL_I(信号的实部)是1,"0"时,是-1*/* SIGNAL_Q(信号的虚部)"0" */SIGNAL_I = 2 * A - 1;SIGNAL_Q = 0;/*

25、瑞利衰落器 */流程图(5)的部分fading_I = 0;fading_Q = 0; 衰落的初始(这里是各自编写的程序部分詳細的说明请参照程序追加部分的説明)(无衰落时的仿真如何实现也在这里考虑)/* 高斯噪声w(k)的生成 */流程图(6)部分/* AWGN_I: 高斯噪声w(k)的实部 AWGN_Q: 高斯噪声w(k)的虚部 */rnd3= rand_ra()%10000;rnd4= rand_ra()%10000;rnd5= rand_ra()%10000;rnd6= rand_ra()%10000; AA = sqrt(-2. * log(rnd3*0.0001)+(rnd4*0.0

26、0000001) + 0.000000001); B = (rnd5* 0.0001)+(rnd6* 0.00000001); AWGN_I = AA*cos(2*PI*B); AWGN_Q = AA*sin(2*PI*B); /* 接收信号r(k)的生成 */流程图(7)部分/* 变量 RECEIVEDSIGNAL_I:接收信号r(k)的实部 RECEIVEDSIGNAL_Q:接收信号r(k)的虚部 */与r(k)=s(k)*F(k)+w(k)实部和虚部相对应的计算RECEIVEDSIGNAL_I=(SIGNAL_I*fading_I - SIGNAL_Q*fading_Q)+AWGN_I/

27、sqrt(2*SNR);RECEIVEDSIGNAL_Q=(SIGNAL_I*fading_Q + SIGNAL_Q*fading_I)+AWGN_Q/sqrt(2*SNR);/* 同步检波*/流程图(8)的部分/* 变量 d_I: 同步检波后的信号d(k)的实部*/与d(k)=r(k)*F*(k)的实部和虚部相对应的计算但是,2PSK调制的时候,只需计算实部(虚部为)d_I = RECEIVEDSIGNAL_I * fading_I + RECEIVEDSIGNAL_Q * fading_Q;/* 数据判别 */流程图(9)的部分/* d_I:( 同步检波后的信号d(k)的实部)为正时,A_

28、CD(接收信号)为1,負时为0 */if (d_I > 0.)A_CD = 1;else A_CD = 0;/* 错误识别 */流程图(10)的部分/* 变量 ERROR:传输错误时为1,传输正确时为0 */ERROR = (A - A_CD) % 2;if (ERROR = 0) BITERROR = 0;else BITERROR = 1; /* BER_CD: 错误次数累加*/BER_CD = BER_CD + BITERROR;/* 误码率(BER)的計算输出 */* 变量 BER_CD_total: 误码率*/BER_CD_total = BER_CD / No_symbols

29、;(误码率)(错误比特数)/(发信总比特数)printf ("BER = %f n",BER_CD_total); 误码率输出4.2.3. 程序追加部分的説明在实验编写的衰落角度和相位的初始设定和衰落仿真器,可应用与本仿真程序但要注意,实验衰落角度和相位的初始设定記述的FDT的値,在本程序中用scanf语句方式来输入 4.3. 衰落环境下的SNR对误码率特性的測定误码特性测定时,可以采用dB的步长,从1dB到30dB的范围进行测定,FDT可作为比较参数来设定 4.4. 无衰落环境下SNR对误码率特性的測定这时只要使衰落部分的归一化功率为就可以消除衰落的影响了,即fading

30、_I=1和fading_Q=05. 实验5.1. 实验概要在这个实验中,编写采用分两天线分集接收的仿真程序,来测试分集接受的效果简单起见,仍采用2PSK调制5.2. 程序的做成5.2.1. 程序流图开始. (1)衰落的角度和相位的初始設定. (2)数据生成 a(k). (3)发信信号生成 s(k). (4)衰落仿真器 F1(k), F2(k). (5)高斯噪声的生成w(k). (6)循环(No_symbol) 次接收信号生成r1 (k)=s(k)*F1 (k)+w1(k) r2 (k)=s(k)*F2 (k)+w2(k). (7)同步检波 d1 (k)=r1 (k)*F1*(k)d2 (k)=

31、r2 (k)*F2*(k). (8)数据判别if Red1 (k)>0 a_cd1=1 else a_cd1=0if Red2 (k)>0 a_cd2=1 else a_cd2=0误码率測定. (9)如|F1(k)| > |F2(k)| 则a_cd1如|F1(k)| < |F2(k)| 则 a_cd2选择初始设定fDT,SNR的输入. (10)请实验者自己完成流图的(2)和(5)的部分5.2.2. 原程序说明(橘色文字的部分是在实验的程序”2PSK-1.c”之上的追加部分)”2PSK-2.c”/* 瑞利国衰落仿真*/* Visual C+ 版 Ver. 2.10 / 2

32、001.4.10 */* Adachi Lab. / SAO Tomoki */* 分集接收版 */* 初始定义 */#include <stdio.h>#include <math.h>#include <stdlib.h>#include <time.h>#define PI 3.1415926535/* 变量 No_symbols:循环次数 */#define No_symbols 1000000/* rand_ra() : 返回1到30000的随机数(only Visual C+) */int rand_ra()int r,i=0;whi

33、le(i = 0)r = rand() - 2767;if (r >= 0) break; return r;/* 主程序 */void main()/* 各个变量型的定义 */double FDT, EBNR, SNR, B, AA, NORM;double fading_I, fading_Q;double ALPHA17, PHI17, THETA17;double T_I17, T_Q 17;double SIGNAL_I, SIGNAL_Q;double RECEIVEDSIGNAL_I, RECEIVEDSIGNAL_Q, d_I;double AWGN_I, AWGN_Q;

34、double rnd1,rnd2,rnd3,rnd4;double BER_CD, BER_CD_total;int R6,temp;int A, N, k, TIME, A_CD;int ERROR,BITERROR;double fading_I_D, fading_Q_D, AWGN_D_I, AWGN_D_Q;double fading_F,fading_F_D,fading_F_T;double T_I_D17, T_Q_D17;double RECEIVEDSIGNAL_I_D, RECEIVEDSIGNAL_Q_D,d_I_D;double BER_CD_total_D,BER_

35、CD_D;double BER_CD_total_T,BER_CD_T;double l;int A_CD_D,A_CD_T,M;int ERROR_D,ERROR_T;double BITERROR_D,BITERROR_T/* 随机数表的初期化 */srand(unsigned)time(NULL);/* 信道参数的输入 */* fD = 最大多谱勒频移, 1/T = 码速*/* 输入fDt */* 变量 FDT:FDT的値 */printf ("2PSK Simulater n");printf ("fDT ? n");scanf("%l

36、f",&FDT);printf ("fDT= %f n",FDT);/* l:分集接收天线的位置(距離)/(波長) */ l=0.5;/* S/N的输入 */* 变量 EBNR:SNR(dB) SNR:SNR(真値) */printf ("S/N (dB) ? n");scanf("%lf",&EBNR);SNR = pow(10,EBNR/10);printf ("S/N(dB)= %f n",EBNR);/* 数据生成的初始化设定 */* 变量 BER_CD:误码检测器 */BER_C

37、D = 0; BER_CD_D=0;BER_CD_T=0;/* PN码用位移寄存器的初始化 */R1=1;R2=1;R3=1;R4=1;R5=1;/* 变量 NORM:fading功率的归一化用*/NORM = sqrt(1./16.);/* 衰落的角度和相位的初始化*/(这里是各自编写的程序部分詳細的说明请参照程序追加部分的説明)/* 主程序 */for (k=1; k < No_symbols+1; k+) /* 数据a(k)的生成 用PN码来生成*/* A:用PN码产生的信号 */A = R5;temp = (R2 + R5) % 2;R5 = R4;R4 = R3;R3 = R2

38、;R2 = R1;R1 = temp;/* 2PSK信号s(k)的生成 */* 变量 SIGNAL_I:信号s(k)的实部,SIGNAL_Q:信号s(k)的虚部 */* A是"1"时,SIGNAL_I(信号的实部)为1,"0"时,为-1*/* SIGNAL_Q(信号的虚部)是"0"注:因为使用了2PSK调制 */SIGNAL_I = 2 * A - 1;SIGNAL_Q = 0;/* 瑞利衰落仿真器*/fading_I = 0;fading_Q = 0;fading_I_D = 0;fading_Q_D = 0;(这里是各自编写的程序

39、部分詳細的说明请参照程序追加部分的説明)/* fading_F:衰落在天线#1的振幅(絶対値), fading_F_D:衰落在天线#2的振幅(絶対値)*/fading_F = sqrt(pow(fading_I,2)+pow(fading_Q,2);fading_F_D = sqrt(pow(fading_I_D,2)+pow(fading_Q_D,2);/* 高斯噪声w(k)的生成 */* AWGN_I: 高斯噪声w(k)的实部, AWGN_Q: 高斯噪声w(k)的虚部 */rnd3= rand_ra()%10000;rnd4= rand_ra()%10000;rnd5= rand_ra()

40、%10000;rnd6= rand_ra()%10000;AA = sqrt(-2. * log(rnd3*0.0001)+(rnd4*0.00000001) + 0.000000001);B = (rnd5* 0.0001)+(rnd6* 0.00000001);AWGN_I = AA*cos(2*PI*B);AWGN_Q = AA*sin(2*PI*B);rnd3= rand_ra()%10000;rnd4= rand_ra()%10000;rnd5= rand_ra()%10000;rnd6= rand_ra()%10000;AA = sqrt(-2. * log(rnd3*0.0001

41、)+(rnd4*0.00000001) + 0.000000001);B = (rnd5* 0.0001)+(rnd6* 0.00000001);AWGN_D_I = AA*cos(2*PI*B);AWGN_D_Q = AA*sin(2*PI*B);/* 接收信号r(k)的生成 */* 变量 RECEIVEDSIGNAL_I:#1接收信号r(k)的实部 RECEIVEDSIGNAL_Q:#1接收信号r(k)的虚部 */* 变量RECEIVEDSIGNAL_I_D:#2接收信号r(k) 的实部 RECEIVEDSIGNAL_Q_D:#2接收信号r(k)的虚部 */RECEIVEDSIGNAL_I

42、=(SIGNAL_I*fading_I - SIGNAL_Q*fading_Q)+AWGN_I/sqrt(2*SNR);RECEIVEDSIGNAL_Q=(SIGNAL_I*fading_Q + SIGNAL_Q*fading_I)+AWGN_Q/sqrt(2*SNR);RECEIVEDSIGNAL_I_D=(SIGNAL_I*fading_I_D - SIGNAL_Q*fading_Q_D)+AWGN_D_I/sqrt(2*SNR);RECEIVEDSIGNAL_Q_D=(SIGNAL_I*fading_Q_D + SIGNAL_Q*fading_I_D)+AWGN_D_Q/sqrt(2*S

43、NR);/* 同步检波*/* 变量 d_I:#1同步检波后的信号d(k)的实部*/* 变量 d_I_D:#2同步检波后的信号d(k)的实部*/d_I = RECEIVEDSIGNAL_I * fading_I + RECEIVEDSIGNAL_Q * fading_Q;d_I_D = RECEIVEDSIGNAL_I_D * fading_I_D + RECEIVEDSIGNAL_Q_D * fading_Q_D;/* 数据判别 */* #1d_I:( 同步检波的实部)如果为正,A_CD(接收信号)为1,負时A_CD为0 */* #2d_I_D:( 同步检波的实部)如果为正,A_CD_D(接收

44、信号)为1,負时A_CD 为0 */if (d_I > 0.)A_CD = 1;else A_CD = 0;if (d_I_D > 0.)A_CD_D = 1;elseA_CD_D = 0;/* 分集接收信号的选择(接收信号)*/* 变量A_CD_T :#1的振幅fading_F#2的振幅fading_F_D两者相比较较大的信号一个被采用 */if (fading_F >= fading_F_D) A_CD_T = A_CD;elseA_CD_T = A_CD_D;/* 误码判别 */* 变量 ERROR:#1有错误置1,无错置0 */* 变量 ERROR_D:#2有错误置1

45、,无错置0 */* 变量 ERROR_T:分集接受信号有错误置1,无错置0*/ERROR = (A - A_CD) % 2;ERROR_D =(A - A_CD_D) % 2;ERROR_T =(A - A_CD_T) % 2;if (ERROR = 0) BITERROR = 0.;else BITERROR = 1.;if (ERROR_D = 0) BITERROR_D = 0.;else BITERROR_D = 1.;if (ERROR_T = 0) BITERROR_T = 0.;else BITERROR_T = 1.;/* BER_CD:#1的误码记数器 */* BER_CD_

46、D:#2的误码记数器*/* BER_CD_T:分集接收信号的的误码记数器*/BER_CD = BER_CD + BITERROR;BER_CD_D = BER_CD_D + BITERROR_D;BER_CD_T = BER_CD_T + BITERROR_T;/* 误码率的计算和输出 */* 变量 BER_CD_total:#1的误码率 */* 变量BER_CD_total_D:#2的误码率*/* 变量BER_CD_total_T:分集接收的误码率*/BER_CD_total = BER_CD / No_symbols;BER_CD_total_D = BER_CD_D / No_symbo

47、ls;BER_CD_total_T = BER_CD_T / No_symbols;printf ("BER #1 = %f #2 = %f Divercity = %f n",BER_CD_total,BER_CD_total_D,BER_CD_total_T); 5.2.3. 程序追加部分的説明各个接收点的衰落F(k) 表示如下(#1接收点天线)(#2接收点天线)这里,l是两个天线间的距离请和讲义的原理图相对照来理解下面仍将衰落分成实部和虚部来表示(以下,赤的斜体 是实际程序中所使用的变量)将衰落分成实部和虚部 (N是到来的平面波的个数,这里设为N=16)fading_

48、I (#1衰落的实部) fading_Q(#1衰落的虚部)fading_I_D (#2衰落的实部) fading_Q_D(#2衰落的虚部)同理,西格码和中的平面波也表示为实部和虚部两部分T_IN(各个到达#1平面波的实部)T_QN(各个到达#1平面波的虚部)T_I_DN(各个到达#平面波的实部)T_Q_DN(各个到达#平面波的虚部)这里,需要事先决定的参数要先行计算NORM(在初始设定时)THETAN=(是0的随机数,),PHIN= 是(02的随机数)ALPHAN=FDT (THETAN) DIVERN = l× sin (THETAN)以上相当于流程图的()的部分从这开始所用的变量

49、为平面波的衰落部分的计算T_IN =cos(ALPHAN×k+PHIN +DIVERN) ,T_QN =sin(ALPHAN×k+PHIN+DIVERN) T_I_DN =cos(ALPHAN×k+PHIN -DIVERN) , T_Q_DN =sin(ALPHAN×k+PHIN-DIVERN) fading_I =NORM × T_IN fading_Q =NORM ×T_QNfading_I_D =NORM × T_I_DN fading_Q_D =NORM ×T_Q_DN 这部分相当于流程图()的部分(a)在

50、衰落的角度和相位的初始设定中(流程图()如下,THETAN=(是0的随机数, ),PHIN= 是(02的随机数)ALPHAN=FDT (THETAN) DIVERN = l× sin (THETAN)L的値是,l=0.5(个天线间的距离为0.5波長)(b)衰落仿真器(流程图()T_IN =cosALPHAN×k+PHIN +DIVERN ,T_QN =sinALPHAN×k+PHIN+DIVERN T_I_DN =cosALPHAN×k+PHIN -DIVERN , T_Q_DN =sinALPHAN×k+PHIN-DIVERN fading_I =NORM × T_IN fading_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论