qpsk调制matlab实现,QPSK调制解调Matlab实现(ing待补充说明)

自写

%QPSK

close all;clc;

%思路:1.输入一组随机初始信息x=[01矩阵];

% 2.按两两一组通过for循环判别4种组合,分别对应星座图4个点

% 3.做星座图

% a.过程中考虑过将01序列两两分开表示出来,不知是否有必要,未实现

% b.考虑两两分开后直接定位一个组合,映射到星族图,未实现.利用y-

a=randi([0,1],1,20) %产生一组随机初始信息矩阵

[r,c] = size(a) % 读取行r、列c

y=[]; p=1;

for u = 1:r % 建立for循环嵌套

for t=1:2:c

k=t+1;

if a(u,t)==0&&a(u,k)==0

y(p)=-1-1i;

elseif a(u,t)==0&&a(u,k)==1

y(p)=-1+1i;

elseif a(u,t)==1&&a(u,k)==0

y(p)=1-1i;

else a(u,t)==1&&a(u,k)==1

y(p)=1+1i;

end

p=p+1;

end

end %for循环,将4中组合映射到星座图位置

scatterplot(y) %画星座图

% v=pskdemod(y,4)

% scatterplot(v)

ys = awgn(y,10);

scatterplot(ys)

[n,m] = size(ys)

q=[];j=1;

for b=1:n % qpsk解调

for d=1:m

if abs(ys(b,d))<0&&imag(ys(b,d))<0

q(b,j)=0;q(b,j+1)=0;

elseif abs(ys(b,d))<0&&imag(ys(b,d))>0

q(b,j)=0;q(b,j+1)=1;

elseif abs(ys(b,d))>0&&imag(ys(b,d))<0

q(b,j)=1;q(b,j+1)=0;

else abs(ys(b,d))>0&&imag(ys(b,d))>0

q(b,j)=1;q(b,j+1)=1;

end

j=j+2;

end

end

ys

a

q

numErrs = symerr(a,q) %输出与输入相比,计算错误比特数

归一化相关转于:https://blog.csdn.net/hudada19/article/details/97623075

星座映射归一化因子是如何得到的?

答:所有能量求平均后开方得到的就是波形幅度值,其倒数就是归一化因子。比如,

比如16QAM,取值为,能量为2有4个星座点,为10有8个点(±1±3i),为18有4个点,共有能量72+80+8=160,然后这16个点的等概率分布是16分之1,所以要160除以16=10,这是平均能量,其平均后的波形幅度为sqrt(10),而QPSK共4个能量为2的星座,出现概率为四分之一,所以为8除以4=2,结果为sqrt(2),其他类推。

能量(功率)归一化有什么用?

答:添加功率归一化因子,目的在于使得不同调制方式(或者说对于所有映射方式)都能够取得相同的平均功率。

实际上,归一化是为了方便系统性能的比较,所以就要分清比较的模块是什么。比如,信道编码的增益问题,无论有无信道编码,比特能量是一样的,所以比较要以Eb/No为基准,而不是以进入信道前的符号能量Es/No为基准。再比如,在比较空时码系统和单天线系统中,还是以进入时空码编码前信号能量为基准,那么发送时的总能量一致,即时空码系统中各天线发射功率总和应和单天线系统发射功率相同。一般而言,归一化都在发射端处理。

在仿真OFDM的IFFT变换时,为什么要乘以sqrt (fft的点数) 进行归一化?

答:在matlab中做完IFFT后要乘以sqrt(fft的点数),这样才能保证时域和频域上的功率相同,否则在计算功率上容易出错,如果不乘的话你只要知道也是可以的。至于信号功率归一化,是为了更方便的计算SNR,是为了在相同的标准下比较性能。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值