QPSK 星座图表示

算法其他 wangyifan ⋅ 于 2019-02-03 01:35:18 ⋅ 最后回复由 ALLEN 2019-08-08 16:30:07 ⋅ 16 阅读
clear;                                         
N=1000;
s00=[1 0]; s01=[0 -1]; s11=[-1 0]; s10=[0 1];   %  信号映射
SNRindB1=8;
E=1;                                            % 码元能量
snr=10^(SNRindB1/10); 
sgma=sqrt(E/snr)/2; 
for i=1:N
    temp=rand;                                  % 生成取值在0和1之间的服从均匀分布的随机变量
    if (temp<0.25),                             % 概率为1/4的信源符号 "00"
        dsource1(i)=0; dsource2(i)=0;
        s(i)=complex(s00(1),s00(2));
    elseif (temp<0.5),                          % 概率为1/4的信源符号 "01"
        dsource1(i)=0; dsource2(i)=1;
        s(i)=complex(s01(1),s01(2));
    elseif (temp<0.75),                         % 概率为1/4的信源符号 "10"
        dsource1(i)=1; dsource2(i)=0;
        s(i)=complex(s10(1),s10(2));
    else                                        % 概率为1/4的信源符号 "11"
        dsource1(i)=1; dsource2(i)=1;
        s(i)=complex(s11(1),s11(2));
    end;
end;


for i=1:N                                       %通过Raleigh信道之前的的星座图

    n=sgma*randn(1,2);                          
    if ((dsource1(i)==0) & (dsource2(i)==0)), 
        r=s00+n;
    elseif ((dsource1(i)==0) & (dsource2(i)==1)), 
        r=s01+n;
    elseif ((dsource1(i)==1) & (dsource2(i)==0)), 
        r=s10+n;
    else 
        r=s11+n;
    end;
    rr(i)=complex(r(1),r(2));
end;
figure(4);
for i=1:1000
    subplot(2,1,1)
plot(rr(i),'b*');
hold on;
end;
subplot(2,1,1)
plot(s,'rd');
title('Before Rayleigh'); 
grid on;
hold off;

                                                  % 通过Raleigh信道之后的的星座图
for i=1:N
    m=raylrnd(0.7);                               % 生成服从Rayleigh分布的随机变量
    n=sgma*randn(1,2);                            % 生成两个服从N(0,sgma)的随机变量
    if ((dsource1(i)==0) & (dsource2(i)==0)), 
        r=m*s00+n;
    elseif ((dsource1(i)==0) & (dsource2(i)==1)), 
        r=m*s01+n;
    elseif ((dsource1(i)==1) & (dsource2(i)==0)), 
        r=m*s10+n;
    else 
        r=m*s11+n;
    end;
    rr(i)=complex(r(1),r(2));
end;
figure(4);
for i=1:1000
    subplot(2,1,2)
plot(rr(i),'b*');
hold on;
end;
subplot(2,1,2)
plot(s,'rd');
title('After Rayleigh'); 
grid on;
hold off;
回复数量: 1
  • ALLEN
    在线: 48681 分钟
    ALLEN MOD 主攻数据挖掘,机器学习,数字信号处理,语音信号处理
    2019-02-03 08:55:25

    如果写成文章,然后贴张效果图,你的文章会非常受欢迎,这个非常有利于积累知名度,这个对所有用户也是这样的

    file
    点击上传文章就可以

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter