我是靠谱客的博主 拼搏手机,这篇文章主要介绍QPSK映射关系与差分编码一:为何选择差分编码       二:映射关系三:对应的matlab代码(0231——1~4象限) 四:给定IQ两路映射关系五:差分解码:六:QPSK选择PRBS15伪随机码编码,现在分享给大家,希望可以做个参考。

目录

一:为何选择差分编码       

二:映射关系

三:对应的matlab代码(0231——1~4象限) 

四:差分解码:

五:给定IQ两路映射关系


一:为何选择差分编码       

       首先差分编码那些众所周知的好处在此就不再啰嗦了,对于QPSK和16QAM等信号来讲,差分编码多了一个好处,那就是避免四相相位模糊所导致的映射关系旋转的问题;通俗来讲就是在没有差分编码的情况下,如果我的映射关系是0132(分别对应于1~4象限);那么我解出来的映射关系有四种情况:0132,2103,3201,3013(均对应于1~4象限),相当于旋转起来了;如果选择了差分编码,那么解调出来的映射关系就只有一种情况,即0132(1~4象限)。所以要选择差分编码

        单比特码元的差分编码方式大家都很熟悉了,相对码转绝对码,绝对码转相对码,不清楚的可以参考下方链接:

http://t.csdn.cn/PsOe4

       QPSK是四进制双比特码元,对其进行差分编码跟单比特码元差分编码是大不相同的,QPSK的差分编码方式是根据相位变化来进行差分编码的,QPSK的相位变化一共有四种:0(360°) ; 90° ; 180° ; 270° 

不同的映射关系编出来的差分码也是大不相同的 

映射关系的选择一共有4*3*2 = 24种,所以.........不简单啊!我们应该如何选择呢?

二:映射关系

不同的映射关系对应与不同的编码结果!

如何选择映射关系呢?

注意:0132中,3代表相位变化180°,而不是270°!!!这点不要混淆

现如今绝大多数映射关系都采用格雷码的方式,即1~4象限分别对应于0132,0231或1023等等,每次相位变化90°只有一位码元发生改变;对于格雷码类映射关系,直接上图:

注意:不同映射关系的格雷码,差分解码时候的公式都是相同的

 

三:对应的matlab代码(0231——1~4象限) 

差分映射关系图:

复制代码
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
%% qpsk信号 t=0:1/fs:(N*fs/ps-1)/fs; %产生长度为N,频率为fs的时间序列 s=round(rand(1,N)); %产生随机4进制数据作为原始数据 %将绝对码变换为相对码 ds=zeros(1,N); for i=2:N if s(i)==0 ds(i)=ds(i-1); elseif s(i)==1 if ds(i-1)==0 ds(i)=1; elseif ds(i-1)==2 ds(i)=0; elseif ds(i-1)==3 ds(i)=2; elseif ds(i-1)==1 ds(i)=3; end elseif s(i)==2 if ds(i-1)==0 ds(i)=2; elseif ds(i-1)==2 ds(i)=3; elseif ds(i-1)==3 ds(i)=1; elseif ds(i-1)==1 ds(i)=0; end elseif s(i)==3 if ds(i-1)==0 ds(i)=3; elseif ds(i-1)==2 ds(i)=1; elseif ds(i-1)==3 ds(i)=0; elseif ds(i-1)==1 ds(i)=2; end end end

四:给定IQ两路映射关系

得到差分码后,根据0231——1~4象限给IQ两路赋值即可

复制代码
1
2
3
4
5
6
7
8
9
I=zeros(1,N);Q=zeros(1,N); for i=1:N switch ds(i) case 0, I(i)=1; Q(i)=1; case 2, I(i)=-1; Q(i)=1; case 1, I(i)=1; Q(i)=-1; otherwise,I(i)=-1;Q(i)=-1; end end

五:差分解码:

公式为:

1:C(k-1)⊕D(k-1) = 0   则Ak = C(k)⊕C(k-1),B(k) = D(k)⊕D(k-1)

2:C(k-1)⊕D(k-1) = 1   则Ak = D(k)⊕D(k-1),B(k) = C(k)⊕C(k-1)

对应图中从右向左推即可使得相对码转为绝对码

六:QPSK选择PRBS15伪随机码编码

prbs15共有32767个01码元,而信号源是以两个01码元为一组进行映射;故而qpsk应该是以(32768+32768)/2 = 32768个四进制码元为一组进行循环

七:8PSK映射关系与差分编码(02315764)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%将绝对码变换为相对码 function [psk8_coded] = psk8_deff(init,psk8_uncoded) global psk8_coded_old; global psk8_deff_table; if(init)%02315764 psk8_deff_table= [0 1 2 3 4 5 6 7]; psk8_deff_table=[psk8_deff_table,2 5 3 1 0 7 4 6]; psk8_deff_table=[psk8_deff_table,3 7 1 5 2 6 0 4]; psk8_deff_table=[psk8_deff_table,1 6 5 7 3 4 2 0]; psk8_deff_table=[psk8_deff_table,5 4 7 6 1 0 3 2]; psk8_deff_table=[psk8_deff_table,7 0 6 4 5 2 1 3]; psk8_deff_table=[psk8_deff_table,6 2 4 0 7 3 5 1]; psk8_deff_table=[psk8_deff_table,4 3 0 2 6 1 7 5]; psk8_coded_old=psk8_uncoded; else psk8_coded=psk8_deff_table(psk8_uncoded*8+psk8_coded_old+1) psk8_coded_old=psk8_coded; end

psk8_uncoded表示变了几个相位

psk8_coded_old+1表示从几开始变

 

最后

以上就是拼搏手机最近收集整理的关于QPSK映射关系与差分编码一:为何选择差分编码       二:映射关系三:对应的matlab代码(0231——1~4象限) 四:给定IQ两路映射关系五:差分解码:六:QPSK选择PRBS15伪随机码编码的全部内容,更多相关QPSK映射关系与差分编码一:为何选择差分编码 内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部