当前位置:首页 > 代码 > 正文

qpsk调制matlab代码的简单介绍

admin 发布:2022-12-19 20:09 145


本篇文章给大家谈谈qpsk调制matlab代码,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

怎么用matlab实现下变频到复基带

clear all;

close all;

clc;

biteSize = 1000;

rowBit = round(rand(1,biteSize));

%QPSK调制,每2比特对应一个符号

signalLength = biteSize/2;

IQBit = reshape(rowBit,2,signalLength);

%QPSK调制:映射符号:11 10 01 00

map = [1+1*1i; %11

1-1*1i; %10

-1+1*1i; %01

-1*-1*1i]; %00

signal = zeros(1,signalLength);

for i = 1:signalLength

if IQBit(1,i)==1 IQBit(2,i)==1

signal(i) = map(1);

elseif IQBit(1,i)==1 IQBit(2,i)==0

signal(i) = map(2);

elseif IQBit(1,i)==0 IQBit(2,i)==1

signal(i) = map(3);

elseif IQBit(1,i)==0 IQBit(2,i)==0

signal(i) = map(4);

end

end

%上变频

%经历无线信道,这里假设没有衰落

rcvSignal = signal;

%下变频

%QPSK解调

rcvIQBit = zeros(2,signalLength);

for i = 1:signalLength

min = Inf;

minIndex = 0;

for j = 1:4

diff = abs(rcvSignal(i) - map(j));

if (diff min)

min = diff;

minIndex = j;

end

end

if minIndex == 1

rcvIQBit(1,i) = 1;

rcvIQBit(2,i) = 1;

elseif minIndex == 2

rcvIQBit(1,i) = 1;

rcvIQBit(2,i) = 0;

elseif minIndex == 3

rcvIQBit(1,i) = 0;

rcvIQBit(2,i) = 1;

elseif minIndex == 4

rcvIQBit(1,i) = 0;

rcvIQBit(2,i) = 0;

end

end

rcvRowBit = reshape(rcvIQBit,1,biteSize);

error = sum(abs(rcvRowBit - rowBit));

matlab生成一个QPSK信号

y(1)和y(2)是分离出来的实部和虚部信号

QPSK信号的包络就是y(1)和y(2)的模

求出这个QPSK信号包络的均值和方差

均值应该是信号的能量,也就是1

方差可以通过计算加噪后的能量,然后减去信号的能量得到

a=1/sqrt(2);

b=-1/sqrt(2);

ser=zeros(1,11);

power = 0;

for i=1:1

error=0;

for j=1:10000

n=10^(log10(0.5)-(i/10));

u=rand;

z=(sqrt(n/2))*(sqrt(2*log(1/(1-u))));

u=rand;

gsrv1=z*cos(2*pi*u);

gsrv2=z*sin(2*pi*u);

s=fix(rand(1,2)*2);

if s(1)==0

s(1)=a;

elseif s(1)==1

s(1)=b;

end

if s(2)==0

s(2)=a;

elseif s(2)==1

s(2)=b;

end

y(1)=s(1)+gsrv1;

y(2)=s(2)+gsrv2;

power = power + y(1)^2+y(2)^2;

end

end

variance = (power-10000)/10000;

如果统计的量越大,越精确

Matlab QPSK基带仿真问题求助

下面是一路信号的QPSK基带仿真的程序:

n=1e4;

M=4;

Tx=randint(n,1,M);

h=modem.pskmod(M); %产生调制QPSK句柄

y=modulate(h,Tx); %用QPSK句柄调制Tx信号

EbNo=10;

yNoise=awgn(y,EbNo,'measured'); %加噪声

g=modem.pskdemod(M); %产生解调句柄

Rx=demodulate(g,yNoise); %解调信号

num_biterr=biterr(Tx,Rx); %计算错误的比特数

Pb=num_err/n; %计算错误的比特概率

qpsk调制matlab代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、qpsk调制matlab代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/22279.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载