自写
%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 real(ys(b,d))<0&&imag(ys(b,d))<0 q(b,j)=0;q(b,j+1)=0; elseif real(ys(b,d))<0&&imag(ys(b,d))>0 q(b,j)=0;q(b,j+1)=1; elseif real(ys(b,d))>0&&imag(ys(b,d))<0 q(b,j)=1;q(b,j+1)=0; else real(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) %输出与输入相比,计算错误比特数1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
归一化相关转于: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,是为了在相同的标准下比较性能。
文章来源: blog.csdn.net,作者:Potato`,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/aixdm/article/details/112390352