基于DPMR的数字调制系统仿真设计(matlab)

在Matlab 环境下仿真一 个基于 dPMR 标准的数字对讲机信号发生器和解调器,需要满足以下条件:

(在此附上源码链接源码)有不懂得可以私信我

1.设计一个信号发生器 要求能够生成 dPMR 的 Traffic channel的 Start Header的数字 IQ信号和数字 IF 信号。

2.设计一个解调器 要求能够从 IF 采样数据中 完成 messageframe 信号的解调。

3.在不同的噪声和多径衰落情况下仿真算法的误码率性能。

4.正确分析信号的频域特性。

实验流程图如下:

实验流程图
(懒得做目录了,谅解一下。文章比较长,图比较多,慢慢看)

Part Ⅰ 构建dPMR帧

   1.1构建序列

       dPMR 协议中主要有 4 种基本帧结构,分别为负载帧、超帧、头帧和尾帧。本次实验是构建一个头帧信号作为输入信号。头帧的结构如图所示,主要包括前导码(P)72bit、帧同步码 4(FS4)48bit、头帧信息(HI0、HI1)120bit×2和色码(CC)24bit四个部分,总共 384 比特。
dpmr帧序列
       其中前导码(P,Preamble),主要用于接收端进行位同步信息的提取,保持以 0x5F 进行重复。
       帧同步码 4(FS4,FrameSync4)用于用于获取与帧起止时间一致的定时信息。
       色码(CC,Colour Code),占 24 比特,用于直接识别射频信道信息,区分邻道干扰。
       头帧信息(HI0、HI1,Header Information 0/1)里面包含了主要的业务信令信息,4比特的头顿类型(HT),24比特的呼叫站点ID,24比特的被叫站点ID,3比特的通信模式(M),2比特的版本信息(V),2比特的通讯格式(F),1比特的紧急优先级化(EP),11比特的消息信息(MI),40比特的FEC前向纠错码W及8比特的CRC校验码。其中,MI域中包含pdS和pdM两个值。
       其实头帧构建问题不大,只是作为一个输入信号而已,你要是嫌麻烦也可构建一个随机序列
       比如我这里就构建一个输入信号signal_ini本来是应该384bit,但是因为后续经过滤波器会产生时延,所以我增加了80bit的冗余以调整滤波器所带来的的影响。
在这里插入图片描述

Part Ⅱ 4FSK调制

   2.1基带信号的构建

      在将输入信号进行调制之前,需要将其构建为基带信号在这里插入图片描述

      2.1.1 串并转换

      已知dPMR标准是:符号速率为2.4 kbit /s,信息速率为4.8 kbit /s。由此可知1符号为2bit,因此通过串并转换将384bit的初始信号转为192符号长度的序列。再将序列映射为四进制,以便于接下来的4FSK调制。4FSK最大频偏D=3h/2T,其中频偏系数h=0.29,符号周期T=1/2400s,计算可得D=1.044KHz,取1.050KHZ。由此得到映射关系如下:
                 01 ↔ +3                4FSK频偏:+1050Hz
                 00 ↔ +1                4FSK频偏:+350Hz
                 10 ↔ -1                4FSK频偏:-350Hz
                 11 ↔ -3                4FSK频偏:-1050Hz
      调制后的四进制信号signal_symbol如图所示
在这里插入图片描述

      2.1.2 八倍内插

      为了减少码元干扰,降低后面接收段采样频率,可以采用8 倍插值法可以扩宽码元宽度。即在相邻码元间插入7个连续的零值。内插后如图所示:
在这里插入图片描述
八倍内插在时域上表现为零值增多,在频域上表现为频谱周期扩展。

      2.1.3 成型滤波

      在数字通信中,未经调制的数字基带信号频谱范围很宽,传送时会占据大量信道带宽,为保证高效利用信道资源,要对原始信号进行频谱压缩,使其在达到最佳检测性能的基础上,能够在消除码间干扰的基础上更好地提高频带利用率。采用脉冲成形滤波器对原始信号进巧滤波,能够很好地实现这一目的。
      对于调制端的成形滤波器的选择,DPM标准规定,采用一级升余弦FIR滤波器以加一级sync滤波器构成,这样做的目的是为了提高接收机灵敏度。滤波器的频率响应如图所示:
在这里插入图片描述
      其中,T为输入脉冲信号周期, α表示滚降系数,且0<α<1,不同的α值对应于不同的滚降特性。
      在matlab仿真设计之前,要明确其中几个关键参数的意义。如滚降系数α,采样频率Fs,截止频率Fc,滤波器阶数N等。这些参数对系统的复杂度,计算量以及滤波后信号的质量,系统的误码率有直接影响。如表3.2所示:
在这里插入图片描述
由上表设计所得滤波器的幅频特性和相频特性如下图所示:
在这里插入图片描述
将四进制八倍内插过后的信号经过该滤波器,得到信号如下图所示:
在这里插入图片描述
经过匹配滤波器后,通过自相关函数卷积判断法,可以知道码元大概时延25bit左右。(观察前140个码元看看情况即可)
在这里插入图片描述

      2.1.4 CIC插值

      由于中频信号采样率很高,多达几十兆赫而要解调出来的信号很小,此时就要经过滤波来得到我们需要的信号如果直接设计滤波器,阶数会非常庞大,软件,硬件设备都承受不了。因此,一般常用的技术是进行下变频处理,其主要技术就是通过抽取滤波进行下变频。
      常用的滤波器就是 CIC 抽取,调制端采用了3级级联CIC插值滤波器,它的结构框图如图所示。从图中可知,它是由3级梳状滤波器,1级内插器和3级积分器組成。
在这里插入图片描述
不过CIC插值的代码我没自己写,我用了别人的代码,感觉效果并不明显,反而运行有点耗时,所以最后就舍弃了,不过理论上是需要这一步的,可能是我的模拟系统噪声不够突出,显示不出他的作用。

   2.2 调制

调制过程如图所示:
在这里插入图片描述
4FSK信号本质上是一个调频信号,属于角度调制的一种,是通过基带信号对载波的频率进行调制得到的,也就是瞬时频偏φ(t)和调制信号m(t)满足线性关系:(dφ(t))/dt=K_f* m(t), 其中φ(t)是频偏, K_f是调频指数。调频信号表达式可写为式所示:
在这里插入图片描述
将该式展开并化简可得IQ调制过程:在这里插入图片描述
所以先将CIC插值后的基带信号进行相位积分得到I路信号和Q路信号。然后生成载波cos2πfct和sin2πfct⁡,为保证符合奈奎斯特采样定律,选取载波频率f_c=7000Hz。最后相乘即可得到正交IQ调制后的信号。具体流程如图3-3-2所示:在这里插入图片描述
可以看到,载波将低频的IQ信号搬移到中频附近,与理论符合。

Part Ⅲ 信道传输

信道传输过程是要模拟噪声和干扰的情况。首先添加Guass白噪声
在这里插入图片描述
然后用pathfading_loss函数模拟衰落信道。这个比较麻烦,这个函数我也不太会用,所以就模拟了个白噪声。

Part Ⅳ 4FSK解调

在接收端接收到4FSK信号后进行解调,解调框图如图所示:
在这里插入图片描述
解调原理就是很简单的三角函数运算。利用相干解调,先频率域卷积,然后再LPF就能得到之前的信号。
在这里插入图片描述
设置低通滤波器(利用fdatool工具设置低通滤波器通带截止频率2500Hz;阻带截止频率400Hz;通带最大衰减0dB,阻带最大衰减30dB后可得滤波器的幅频响应如图示:
在这里插入图片描述
分别把I路和Q路信号经过低通滤波器可以得到调制前的正交信号
在这里插入图片描述
      由上图可以看出经过载波后的信号具有两个中频频率的分量,经过滤波器后,中频分量被很好的消除。此时信号也产生了时延,我们留到匹配滤波之后一块处理。
      接着需要对信号进行CIC抽取,以消除CIC内插的影响。解调端的CIC滤波器与调制端的CIC滤波器正好相反,它是由3级级联的积分器,1级抽取器和3级的梳状滤波器组成的。
在这里插入图片描述
      同样被我舍弃。对抽取后的正交分量和同相分量做反正切运算,可以得出相位:
在这里插入图片描述
对上式中相位信息求微分,并且除以系数2πK_f再做离散化,就可以得到调制信息m(n)。不过,在具体的实现中, m(n)会出现相位跳变,必须要对其进行校正。由于相位的结果2πK_f ∫_0^t▒〖m(t)dt〗
可以通过反正切运算得出,我们知道正切函数的周期是π,因此可以得出校正相位的方法:在这里插入图片描述
相位矫正后的信号如图所示:在这里插入图片描述

Part Ⅴ 基带信号还原

      在完成正交差分解调后,还需要恢复出原始的二进制码元信息,具体流程如下:在这里插入图片描述

   5.1匹配滤波

匹配滤波器采用与调制过程中完全一样的FIR滤波器。在这里插入图片描述

   5.2 抽样判决

抽样判决的性能的好坏直接影响到解调效果的优劣。抽样判决包含两个部分,一个是确定抽样判决的位置,另一个是要确定合适的门限。具体过程如下:
①经过匹配滤波后,又会产生一次时延。我们和之前低通滤波产生的时延一块处理。分析比较了滑动窗口求和,卷积,自相关函数三种码元同步方法。最终确定为滑动窗口求和法来消除时延影响,实现码元同步。具体方法为:
在本地存储里保存一帧同步码相应的同步码波形,然后对本地存储波形和接收波形做相关运算,也就是将对应的点做相乘累加运算(卷积)。在接收波形和存储在本地的波形相对应时就可以得到相关运算的最大值,即可以找到相关峰的位置。
经过多次取随机序列测试,一般有35bit的时延(当然不能直接取时延为35bit)。具体效果如图所示:
在这里插入图片描述
②获取到同步后的码元之后,需要进行抽样判决。仔细观察上图,选择判决点为1.8和-1.86。即信号幅度大于1.8判决为3,大于0小于1.8判决为1。小于0大于-1.86判决为-1,小于-1.86判决为-3。将抽样判决后的点进行八倍抽取得到的信号与输入四进制信号比较如图所示:
在这里插入图片描述
可以看出,二者几乎重合,只有极少部分信号判决失误,这就是造成误码的原因。

   5.3 反映射

最后要根据2.1.1中提到的映射规则进行反映射,将符号值转换成二进制序列,还原出原始数据。
在这里插入图片描述

   5.4 误码率计算

将最后输出的二进制序列与最初构建dpmr帧所得序列进行比较,统计384bit内共有多少bit出错得到误码率:
在这里插入图片描述
在100dB信噪比的噪声影响下,最终误码率为2.0833%。

为探究Guass信号信噪比与误码率的关系,取信噪比从-10dB到10dB,分别计算出误码率,绘制出信噪比与误码率的关系图如图所示:
在这里插入图片描述
可以看出,随着信噪比的逐渐增大,系统误码率的趋势是逐渐减小,符合实际理论。但是在逐渐减小的过程中,出现了部分起伏,猜测可能是两个原因引起的:
①所用输入信号特殊构建的,不包含随机性,因此不完全适配理论
②Guass白噪声有很强烈的随机性,单次实验也会产生偏差。

为探究上述两个猜想,将输入信号改为384bit的随机序列,并且利用蒙特卡罗方法,数以倍计增加试验次数,取期望,绘制出如图的关系图:
在这里插入图片描述
比较上述两张图,发现误码率的波动次数减少了,但是微量波动仍然存在。由此可知误码率随信噪比增大而减小是在大范围内对信号普适的理论,信号是严格遵守这一准则的。

参考文献:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ddatalent/article/details/108907576
今日推荐