• ggevdolyn
    了解作者
  • Borland C++
    开发工具
  • 107KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 0
    下载次数
  • 2019-04-02 23:37
    上传日期
采用C++语言对4QAM调制方式进行通信仿真
91515927.rar
  • DEBUG
  • VC60.PDB
    52KB
  • 4QAM.PDB
    457KB
  • 4QAM.EXE
    196.1KB
  • 4QAM.obj
    9KB
  • 54QAM.DSW
    533B
  • 4QAM.NCB
    41KB
  • 4QAM.OPT
    52.5KB
  • 4QAM.PLG
    726B
  • 54QAM.CPP
    1.8KB
  • D44QAM.DSP
    3.3KB
内容介绍
#include<stdlib.h> #include<stdio.h> #include<math.h> #define pi 3.1415926535897931 #define SNR 21 #define M 2 FILE *file; int N=int(2e6),dtc_s,er_s,i,j,k,dtc_i,dtc_q; double m=double(RAND_MAX)/2.0; double d,dic,I,Q,min,a,b,w,x,y,E_N,src_s; double ps[SNR],map[M]; void main() { for(i=0;i<SNR;i++) { er_s=0; E_N=pow(10,double(i)/10.); d=sqrt(2*E_N/21); //定義信號位置 map[0]=-1*d; map[1]=d; // 利用Uniform R.V.來決送那一個SYMBOL for(j=0;j<N;j++) { src_s=double(rand())/(RAND_MAX+0.01); src_s=src_s*4; // 產生GAUSSIAN R.V. star: a=double(rand())/m-1; b=double(rand())/m-1; w=a*a+b*b; if(w < 1 ) { x=a*sqrt(-2*log(w)/w); y=b*sqrt(-2*log(w)/w); } else goto star; //不同symbol在I Q Channel產生不同的信號 // AWGN CHANNEL SIMULATION I = map[int(src_s)%2] + x; Q = map[int(src_s)/2] + y; // detection Signal //計算接受I Channel信號和各點之間的距離,用來判斷是那一個symbol。 min=100; for(k=0;k<M;k++) { dic = fabs(I - map[k]); if(min > dic) { min=dic; dtc_i=k; } } //計算接受到Q Channel信號和各點之間的距離,用來判斷是那一個symbol。 min=100; for(k=0;k<M;k++) { dic = fabs(Q - map[k]); if(min > dic) { min=dic; dtc_q=k; } } // I Q Chennel 的信號合成一個4-ary QAM symbol dtc_s = 2*dtc_q+dtc_i; if(dtc_s != int(src_s) ) er_s++; } // 計算 BER printf("\n%d ",er_s); ps[i]=double(er_s)/double(N); } //結果放入MATLAB的M-file中 file = fopen("C:\\MATLAB6p5\\work\\qam4.m","w"); fprintf(file,"a = ["); for(i=0;i<SNR;i++) fprintf(file,"%.16f\n",ps[i]); fprintf(file,"]';\n"); fprintf(file,"snr1=0:%d;\n",SNR-1); fprintf(file,"semilogy(snr1,a,'k');hold on\n"); fclose(file); }
评论
    相关推荐
    • qpopper2.53.tar.Z
      pop3 server
    • imap-4.7.tar.Z
      被广泛使用的email服务器 /IMAPD/POPD
    • 53308459Add_Dlt_TabCtrl.rar
      Tab分页的删除和添加,实现分页动态的管理。
    • ns-allinone-2.33.tar.gz
      ns2.33这是目前比较新的ns2版本,欢迎下载
    • NetVideoActiveX23.rar
      海康威视 网络监控插件 带有例子 和开发的dll文件,非常易用
    • UR054g_(R01).zip
      法国inventel的ur054g(r01)v1.1的无线网卡驱动。
    • eat.rar
      外卖叫餐系统,采用ACCESS数据库,有完整天的后台管理系统
    • KSTVTUNE.ZIP
      装摄像头驱动需要用到的文件。Microsoft DirectX 9 SDK
    • Skin++.rar
      知名的Skin++界面库,内含所有库文件和大量皮肤文件.该库使用方便,可以减少您美化程序的痛苦.本版是破解版,没有注册提示.但只供学习研究使用哦,不要用在商业用途.
    • DLL函数查看器V2.0.rar
      DLL函数查看器V2.0 可以看看dll里导出地函数