matlab代码仿真qpsk星座图,信号调制与解调,用脚本文件代码不是simulink

要求:

1.已知函数

function ModSig = QpskMod(SrcBit,PhaseOffset)
    SrcBitLen = length(SrcBit);
    if(mod(SrcBitLen,2) ~= 0)
        error('The Bit length must be the 2N!');
    end
    Symbole = reshape(SrcBit,[2,SrcBitLen/2]);
    ScatterPoint = exp(1i*(2*pi*(0:3)/4 + PhaseOffset));
    ScatterPointGray = [ScatterPoint(1),ScatterPoint(2),ScatterPoint(4),ScatterPoint(3)];
    SymboleValue = Symbole(1,:)*2 + Symbole(2,:);
    ModSig = ScatterPointGray(SymboleValue+1);
end

function DemodSig = QpskDemod(ModSig,PhaseOffset)
    ScatterPoint = exp(1i*(2*pi*(0:3)/4 + PhaseOffset));
%     ScatterPointGray = [ScatterPoint(1),ScatterPoint(2),ScatterPoint(4),ScatterPoint(3)];
    ModSigDistance = zeros(4,length(ModSig));
    for k = 1:4
        ModSigDistance(k,:) = abs(ModSig - ScatterPoint(k));
    end
    [~, MinIdx]= min(ModSigDistance);%zui di si wang lv
    DemodSig = zeros(1,2*length(ModSig));
    for k = 1 : length(ModSig)
        switch MinIdx(k)
            case 1
                DemodSig(2*k-1:2*k) = [0 0];
            case 2
                DemodSig(2*k-1:2*k) = [0 1];
            case 3
                DemodSig(2*k-1:2*k) = [1 1];
            case 4
                DemodSig(2*k-1:2*k) = [1 0];
        end
    end
end

2.用matlab脚本文件写代码,画图出现调制与解调,包括星座图。

3.不能用simulink偷懒。

 

matlab脚本文件:

fs=1000;
t=[0:1/fs:8];
SrcBit=[0 0 0 1 1 1 1 0];
x1=0*t;
for i=1:8
x0=rectpuls(t-i+0.5);
x1=x1+SrcBit(i)*x0;
end
PhaseOffset=pi/2; % Do the qpsk modulate;
figure();
subplot(4,1,1);
plot(t,x1);axis([-0.1 8.1 -0.1 1.1]);
title('Source bit');
xlabel('Samples');
ylabel('Amplitude');
ModSig = QpskMod(SrcBit,PhaseOffset);
subplot(4,1,2); scatter(real(ModSig),imag(ModSig)); grid;
title('Transmitted QPSK data'); xlabel('Real');
ylabel('Imaginary'); % Do the qpsk demodulate;
DemodSig = QpskDemod(ModSig,PhaseOffset);
fs=1000;
t=[0:1/fs:8];
x1=0*t;
for i=1:8
x0=rectpuls(t-i+0.5);
x1=x1+DemodSig(i)*x0;
end
subplot(4,1,3);
plot(t,x1);axis([-0.1 8.1 -0.1 1.1]); title('Demodulated bit');
xlabel('Samples'); ylabel('Amplitude');

运行结果,图像:

ca91fe6b0cb24c218babc4e104799f95.jpg

 

成功了 

SrcBit携带了码元信息,必须是偶数,且为二进制整数,形式为(偶数 x 1)matrix ,并且脚本文件的SrcBit=[]的[]中不能有;这个运算符。

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值