声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3399|回复: 5

[综合讨论] 求相干法的DQPSK调制解调的Matlab仿真程序

[复制链接]
发表于 2007-4-14 08:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
毕设中涉及DQPSK调制解调的Matlab仿真程序,必须要用相干法做,其中有提取载波和码元定时之类,不知哪位达人编过此类程序?请赐教
回复
分享到:

使用道具 举报

发表于 2007-4-14 21:04 | 显示全部楼层
DQPSk调制过程 解调过程 系统误码率 matlab程序
提 供 者:         海涛

  1. N_Trials=1000;
  2. N_number=100;
  3. N_snr=10;
  4. Q=16;

  5. BER_MATRIX=[];
  6. SER_MATRIX=[];
  7. for trials=1:N_Trials
  8.     trials
  9. noise=randn(1,N_number/2)+j.*randn(1,N_number/2);
  10. s10=round(rand(1,N_number));
  11. s=(s10*2-1)/sqrt(2);
  12. sreal=s(1:2:N_number);
  13. simage=s(2:2:N_number);
  14. sc=sreal+j.*simage;
  15. sgma=1;
  16. Error_ber=[];
  17. Error_ser=[];
  18.     for snr_db=0:1:N_snr
  19.         snr=10.^(snr_db./10);

  20.         N0=2*sgma.^2;
  21.         Eb=snr*N0;
  22.         Es=2*Eb;
  23.         yy=sqrt(Es).*sc+noise;
  24.         y_real=sign(real(yy))./sqrt(2);
  25.         y_image=sign(imag(yy))./sqrt(2);
  26.         
  27.         d_bit=[];
  28.         for k=1:length(y_real)
  29.             d_bit=[d_bit,[y_real(k),y_image(k)]];
  30.         end
  31.         d_symbol=y_real+j.*y_image;
  32.         
  33.           dif_bit=s-d_bit;  
  34.           dif_symbol=sc-d_symbol;
  35.          
  36.           ber_snr=0;
  37.           for k=1:N_number
  38.           if dif_bit(k)~=0
  39.               ber_snr=ber_snr+1;
  40.           end
  41.       end
  42.       Error_ber=[Error_ber,ber_snr];
  43.       
  44.       ser_snr=0;
  45.       for k=1:N_number/2
  46.           if dif_symbol(k)~=0
  47.               ser_snr=ser_snr+1;
  48.           end
  49.       end
  50.       Error_ser=[Error_ser,ser_snr];
  51.       
  52.         %s_e=sign(y_real);
  53.         %s_e10=(s_e+1)./2;
  54.         %Error_snr=sum(abs(s10-s_e10));
  55.         %Error_v=[Error_v,Error_snr];
  56.     end
  57.    BER_MATRIX=[BER_MATRIX;Error_ber] ;
  58.    SER_MATRIX=[SER_MATRIX;Error_ser];
  59. end

  60.    BER_sum=mean(BER_MATRIX);
  61.    BER=BER_sum./N_number;
  62.    SER_sum=mean(SER_MATRIX);
  63.    SER=SER_sum./(N_number./2);
  64.    
  65. BER_T=[];
  66. SER_T=[];
  67.    for snr_db=0:1:N_snr
  68.       snr=10.^(snr_db./10);
  69.        BER_THEROY=Qfunct(sqrt(2.*snr));
  70.        SER_THEROY=1-(1-0.5.*erfc(sqrt(snr))).^2;
  71.        BER_T=[BER_T,BER_THEROY];
  72.        SER_T=[SER_T,SER_THEROY];
  73.    end
  74.    i=0:1:10;
  75.    semilogy(i,BER,'-r',i,BER_T ,'*g',i,SER,'.c',i,SER_T,':k');
复制代码

  1. function[y]=Qfunct(x);
  2. y=(1/2)*erfc(x/sqrt(2));
复制代码

评分

1

查看全部评分

发表于 2007-4-16 16:24 | 显示全部楼层

求pi/4-dqpsk的调制与解调的MATLAB仿真程序

请问一下谁有pi/4-dqpsk的调制与解调的MATLAB仿真程序,谢拉!
发表于 2008-12-12 00:16 | 显示全部楼层

也求pi/4 qpsk的matlab仿真

pi/4 qpsk 不就是dqpsk吗?
谁有这个仿真,要求有频谱图,谢谢啦:@Q
发表于 2010-11-30 15:46 | 显示全部楼层
专业的happy
发表于 2010-12-4 00:19 | 显示全部楼层
2F提供的程序, 专业不懂, 但感觉好像fortran似的:@)
直觉应该可以优化, 看谁愿意练习下
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-16 12:08 , Processed in 0.058399 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表