• llaaa
    了解作者
  • matlab
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 6
    下载次数
  • 2020-09-13 14:20
    上传日期
Matlab实现 QPSk调制解调算法。
QPSK.rar
  • QPSK.m
    2.6KB
内容介绍
%单发单收 clear all close all clc N=1e5/5; SNR=0:2:20; %预分配空间 data_qpsk=zeros(1,N); %调制信号 demod_yawgn_ray=zeros(1,N); demod_bitray=zeros(N,2); %误码率和BER biterr_awgnray=zeros(1,length(SNR)); symerr_awgnray=zeros(1,length(SNR)); %电平映射 data=randi([0 1],N,2); [a1,b1]=find(data(:,1)==1&data(:,2)==1); data_qpsk(a1)=1+1j; [a2,b2]=find(data(:,1)==0&data(:,2)==1); data_qpsk(a2)=-1+1j; [a3,b3]=find(data(:,1)==0&data(:,2)==0); data_qpsk(a3)=-1-1j; [a4,b4]=find(data(:,1)==1&data(:,2)==0); data_qpsk(a4)=1-1j; %瑞利衰落 % ray=raylrnd(0.5,1,N); % data_qpsk_ray=data_qpsk.*ray; ray=rayleigh(0,1,N); data_qpsk_ray=data_qpsk.*ray; Noise=zeros(N,1); Eb=1; N0=Eb./(10.^(SNR./10)); for i=1:length(N0); % -------------------------Rayleigh衰落添加白噪声---------------------- % yAWGNNoise_ray=awgn(data_qpsk_ray,SNR(i),'measured'); Noise=sqrt(N0(1,i))*sqrt(1/2)*(randn(1,N)+randn(1,N)*sqrt(-1));%AWGN(0,N0(i),N)+1j*AWGN(0,N0(i),N); %产生高斯噪声 yAWGNNoise_ray=data_qpsk_ray+Noise; yAWGNNoise_ray=yAWGNNoise_ray./ray; % yAWGNNoise_ray=yAWGNNoise_ray.*conj(ray)./(abs(ray).^2); %判决 y1=find(angle(yAWGNNoise_ray(1,:))>=0&angle(yAWGNNoise_ray(1,:))<pi/2); %find()输入数据为行向量,y为行向量 demod_yawgn_ray(y1)=1+1j; demod_bitray(y1,1)=1; demod_bitray(y1,2)=1; y2=find(angle(yAWGNNoise_ray(1,:))>=pi/2&angle(yAWGNNoise_ray(1,:))<pi); demod_yawgn_ray(y2)=-1+1j; demod_bitray(y2,1)=0; demod_bitray(y2,2)=1; y3=find(angle(yAWGNNoise_ray(1,:))>=-pi&angle(yAWGNNoise_ray(1,:))<-pi/2); demod_yawgn_ray(y3)=-1-1j; demod_bitray(y3,1)=0; demod_bitray(y3,2)=0; y4=find(angle(yAWGNNoise_ray(1,:))>=-pi/2&angle(yAWGNNoise_ray(1,:))<0); demod_yawgn_ray(y4)=1-1j; demod_bitray(y4,1)=1; demod_bitray(y4,2)=0; %多进制调制 Pe和Pb需要分别计算 通常Pb<=Pe %误比特率计算 P121通信原理 [bitnum_awgnray,bitratio_awgnray]=biterr(demod_bitray,data); %biterr只能对二进制无符号数进行统计 biterr_awgnray(i)=bitnum_awgnray/(2*N); %误码率(误符号率) [symnum_awgnray,symratio_awgnray]=symerr(demod_yawgn_ray,data_qpsk); symerr_awgnray(i)=symnum_awgnray/N; end ber=berfading(SNR,'psk',4,1); figure('name','QPSK系统在Rayleigh信道下的性能比较'); semilogy(SNR,biterr_awgnray,'-c','LineWidth',1.5); grid on hold on %semilogy(SNR,symerr_awgnray,'-.*r','LineWidth',1.5); semilogy(SNR,ber,'-.*b','Linewidth',1.5); title('QPSK系统Rayleigh信道下误比特率分析'); xlabel('Eb/No'); ylabel('Pb'); axis([0 20 10^-5 1]); legend('Rayleigh-biterr','QPSK调制下标准瑞利衰落'); %'Rayleigh-symerr',
评论
    相关推荐
    • QPSK调制解调程序
      一个MATLAB仿真的QPSK调制解调程序
    • qpsk调制解调
      运用Metlab对qpsk信号进行了调制解调
    • QPSK调制解调
      QPSK调制解调的matlab代码用于通信系统仿真
    • MATLAB仿真qpsk调制解调
      MATLAB仿真qpsk调制解调
    • QPSK调制解调MATLAB代码
      QPSK基本的调制解调MATLAB仿真,再无编码条件下,实行简单的调制解调,仿真结果有调制前的信号图,调制后的信号图,以及误码率
    • QPSK调制解调
      用MATLAB实现的QPSK调制解调函数,并通过验证,包含QPSK调制子函数,解调子函数及main函数
    • QPSK调制解调程序
      QPSK调制解调过程以及中间个步骤波形图及功率谱图 使用matlab编写
    • QPSK调制解调
      matlab 程序,生成QPSK信号以及解调 自己编写的 调试成功
    • QPSK调制解调代码
      QPSK调制解调过程以及中间个步骤波形图及功率谱图 使用matlab编写
    • QPSK matlab 调制解调代码
      国外比较经典的MATLAB 关于QPSK调制解调代码,每一模块都非常详细,程序书写较为规范,可作为初学者学习范例。对于想了解DQPSK工作原理的技术开发人员,也有一定帮助。