当前位置:
文档之家› CPFSK与Viterbi译码的实现和分析
CPFSK与Viterbi译码的实现和分析
Viterbi 译码算法是本来是一种卷积码的解码算法,但是在 CPFSK 中的相位 网格图和卷积码中的状态网格图没有本质区别,所以 CPFSK 也可以用 Viterbi 译 码解调。Viterbi 译码的基本过程是利用最大似然判别准则,经行“加比选”,得到 最佳路径。
C、本文安排
本文安排如下,第 II 部分给出 2CPFSK、 h=0.25 的 4CPFSK 等效基带的产 生和功率谱密度分析;第 III 部分讨论 h=0.25 的 4CPFSK 的 Viterbi 译码实现和 误码率分析。
4 4 44
m
决定相位 ������������ 。同样的,对于所以对于从
State_odd 到 State_even 的 16 条 路 径 , 有 16 个 标 准 状 态 , 为
Standard_odd_to_even(:, m, n) 对于每一个周期的接收符号,判断它是奇数还是偶数编号符号后,将确定它
化为:(π , − 3π , − π)程序运行结果示意图如下:
444
图 3 Viterbi 译码过程举例
随机产生 10000 个点,仿真得到 Viterbi 译码的误码率曲线为:
BER of 4CPFSK h=0.25 using Viterbi Decoding
0
10
-1
10
BER
-2
10
10-3
4
相同。 下面研究相位连续性对信号功率谱的影响。下面是 h=0.5,2CPFSK; h=0.25,
4CPFSK; h=0.25,4CPFSK 的功率谱密度(这些功率谱各自对自己归一化,频率 对符号周期归一化):
0
h=0.5 2CPFSK
h=0.25 2CPFSK
-10
h=0.25 4CPFSK
X: 1.001
,
π 4
,
−
π 4
,
π 4)
相位网格图由这两组状态交替组成。对于编号为奇数的符号,状态由
State_even变 为 State_odd; 对 于 编 号 为 偶 数 的 符 号 , 状 态 由 State_odd变 为
State_even。每一个状态将有四条入路径和四条出路径。
对于每一条路径,都对应一个标准符号。所以对于从State_even 到 State_odd
所对应的状态转换图。和 16 个标准符号之一作对比,求出各自的均方误差。对 于每一个当前状态节点,一共有 4 条如路径,这四条路径的“距离”定义为均方 误差和各条路径出发状态“权重”的和,选择 4 个“距离”中最小的作为本当前 状态的“权重”,并且记录路径来源。这就做完了一级“加比选”。直到最终 4
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
0.5
1
In-Phase
h=0.25 2CPFSK Stellerplot 1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
0.5
1
In-Phase
h=0.25 4CPFSK Stellerplot 1
0.8
0.6
0.4
2、试产生 4 进制的 CPFSK,h=0.25,观察其功率谱,并编写维特比检测器, 统计其误码曲线
B、CPFSK 和 Viterbi 译码简介
CPFSK(Continuous-Phase Frequency Shift Keying),即连续相位频移键控, 射频信号相位连续的调制方式。其包络恒定,具有较小功率谱占用率。MSK 是 FSK 信号的相位始终保持连续变化的一种特殊方式。可以看成是调制指数为 0.5 的一种 CPFSK 信号。
= (−3, −1,1,3)
ℎ
=
������ ������
,为有理调制系数
������ −1
������������ = ������ℎ ∑ ������������ ,为累计相位
������ =0
将������0置为 0,可以直接产生调制信号。采用如下电平映射
符号比特
电平值
符号比特 电平值
10
+3
+
������������������)
由当前状态 n 和之前的状态 m 的差值决定������������,也就是频率(注意一旦差值 超过������,则要减去 2������;小于-������,则要加上 2������,来保证本符号相位的变化在集合
(3π , π , − π , π)中);由之前的状态
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.5
0
0.5
1
In-Phase
图 1 CPFSK 星座图(h=0.5,2CPFSK;h=0.25,2CPFSK;h=0.25,4CPFSK)
可以看到,采用了 CPFSK 之后,相位连续变化,星座图上的信号点密集地 在圆上“跑”,不在分立的少数几个点之间跳变。这就是相位连续的表现。同时看
的 16 条路径,有 16 个标准状态,为Standard_even_to_odd(:, m, n), n 代表当前 状态编号,m 代表上一状态编号。由下面式子:
������(������)
=
exp (������������ℎ
������������(������
− ������������
������������������)
-4
10
-12
-10
-8
-6
-4
-2
0
2
4
Eb/n0
图 4 Viterbi 译码误码率曲线
可见,由于 CPFSK 的相位记忆特性,Viterbi 译码后的误码率较低。
5/5
1/5
CPFSK 与 Viterbi 译码的实现和分析
清华大学电子工程系 杨雨潇
2012/6/7
II 2CPFSK 与 4 CPFSK 的等效基带产生和功率谱密度分析
对于 CPFSK,主要特点是本个符号的初始相位是之前所有符号相位变化的累
积和,以此来保证相位连续。其等效基带数学表达式如下:
������(������)
2/5
CPFSK 与 Viterbi 译码的实现和分析
清华大学电子工程系 杨雨潇
2012/6/7
到,在同一进度调制的情况下,h 小,相位越连续。 同时可以看到,对于 h=0.25 的 2、4 进制 CPFSK,它们的星座图一样,这
是由于,对于 h=0.25 的 CPFSK,它们的相位变化都是(± π)的整数倍,所以轨迹
0
-1
00
+1
1
+1
01
-1
11
-3
表 1 二进制与四进制电平映射
随机产生 N=1000 个 0、1 值作为比特流,利用上面的式子可以得到调制信
号。画出三个星座图:
Quadrature Quadrature Quadrature
h=0.5 CPFSK Stellerplot 1
0.8
0.6
0.4
0.2
CPFSK 与 Viterbi 译码的实现和分析
清华大学电子工程系 杨雨潇
2012/6/7
CPFSK 与 Viterbi 译码的实现和分析
清华大学电子工程系 无 99 班 杨雨潇 2009011209 联系方式:yyx09@
I、介绍
A. 题目介绍
1、以等效基带的方式仿真一个过采样率为 10 的 2CPFSK,g(t)为非归零方 波,h 分别为 0.5(即 MSK)和 0.25,观察其功率谱
=
exp (������������ℎ ������������ (������−������������������ )
������������
+
������������������)
其中:
�������� + 1)������
������������为本个符号对应的电平值,对于 2 进制,������������ = (−1,1);对于 4 进制,������������
-20
Y: -22.75
X: 1.001 Y: -30.79
-30
X: 1.001
-40
Y: -33.68
PSD
-50
-60
-3
-2
-1
0
1
2
3
Normalized Frequency(Normalized to bit rate)
图 2 CPFSK 功率谱密度
首先整体上由于是复数基带,三个功率谱的正负频率略有不对称。 接下来,对比 2CPFSK 的 h=0.5 和 0.25 的图,发现 h=0.25 的旁瓣电平更低, 第一旁瓣为-30dB,比 h=0.5 的第一旁瓣-23dB 低约 7dB。所以,CPFSK 中,相 位越连续,带外功率谱越低,带外功率谱下降越快。这也是使用连续相位调制的 初衷之一。 对比 h=0.25 的 2CPFSK 和 4CPFSK 的图,发现对比特率归一化后,4CPFSK 的功率谱带外衰减更快,第一旁瓣为-33dB,约比 2CPFSK 的第一旁瓣-30dB 低约 3dB。这说明多进制 CPFSK 调制的带宽更窄,频谱效率越高。4 进制的频谱利用 率为 2 进制的 2 倍,功率谱下降恰好约为 3dB,这两者之间有无必然联系需要进 一步研究。
3/5
CPFSK 与 Viterbi 译码的实现和分析
清华大学电子工程系 杨雨潇
2012/6/7