文章目录

  • 1. DPSK信号的调制原理
  • 2. Costas环解调DPSK信号
  • 3. DPSK调制解调的MATLAB仿真
    • 3.1 源码
    • 3.2 仿真结果

数字相位调制又叫相位键控(Phase Shift Keying,PSK),是一种十分重要的基本数字调制技术,是一种用载波相位表示输入信号的调制技术、或者说PSK是根据数字基带信号的电平使载波相位在不同的数值之间切换的一种相位调制方法。

1. DPSK信号的调制原理

DPSK(Differential Phase Shift Keying)是为了克服PSK系统相位模糊问题而产生的一种调制手段。由于PSK系统是用载波的绝对相位来判断调制数据的,在信号传输过程及解调过程中,容易出现相位翻转,在解调端无法准确判断原始数据。DPSK是根据前后数据之间的相位差来判断数据信息的,即使在接收解调端发生相位翻转,由于数据之间的相位差不会发生改变,因此可以有效解决相位翻转带来的问题。与PSK相比,DPSK只需在发送端将原始数据绝对码转换成相对码,在解调端再将相对码转换成绝对码即可,其差分编/解码原理与MSK调制解调中编解码原理相同。
设输入到调制器的二进制比特流为{bn},n⊆(−∞,∞)\left \{ b_{n} \right \},n\subseteq (-\infty ,\infty ){bn},n(,),BPSK的输出信号形式为
s(t)={Acos(ωct+φ),bn=0−Acos(ωct+φ),bn=1nTb⩽t⩽(n+1)Tbs(t)=\left\{\begin{matrix} Acos(\omega _{c}t+\varphi ), & b_{n}=0\\ -Acos(\omega _{c}t+\varphi ), & b_{n}=1 \end{matrix}\right. nT_{b}\leqslant t\leqslant (n+1)T_{b}s(t)={Acos(ωct+φ),Acos(ωct+φ),bn=0bn=1nTbt(n+1)Tb
可以看出,可以将输入信号看成幅度为±1\pm 1±1的方波信号,调制过程即为原始信号与载波信号直接相乘的结果。下图为DPSK的调制过程波形图,图中的波形假定每个码元周期为载波周期的整数倍,其中clk为原始数据时钟,s为绝对码,ds为相对码,ms为已调信号。
PSK调制解调—DPSK-编程知识网
DPSK调制系统中,由于原始信号的带宽无限大,但90%的能量集中在主瓣带宽内,因此,为提高发射端的功率利用率,降低噪声的影响,通常需要在调制之前对原始基带信号进行成形滤波,以滤除主瓣外的信号及噪声。根据奈奎斯特第一准则原理,如果信号经传输后整个波形发生了变化,但只要其特征点的抽样值保持不变,那么再次用插值滤波的方法,仍然可以准确无误地恢复出原始数据。满足奈奎斯特第一准则的滤波器有很多种,无线通信中应用最为广泛的是幅频响应均具有奇对称升余弦形状过渡带的一类滤波器,通常也叫做升余弦滚将滤波器。升余弦滤波器本身是一种有限脉冲响应滤波器,其传递函数的表达式为
X(f)={Ts,0⩽∣f∣⩽1−α2TsTs2(1+cos[πTsα(∣f∣−1−α2Ts)]),1−α2Ts⩽∣f∣⩽1+α2Ts0,∣f∣⩾1+α2TsX(f)=\left\{\begin{matrix} T_{s}, & 0\leqslant \left | f \right |\leqslant \frac{1-\alpha }{2T_{s}}\\ \frac{T_{s}}{2}\left ( 1+cos\left [ \frac{\pi T_{s}}{\alpha }\left ( \left | f \right | -\frac{1-\alpha }{2T_{s}}\right )\right ] \right ), & \frac{1-\alpha }{2T_{s} }\leqslant\left | f \right |\leqslant\frac{1+\alpha }{2T_{s} }\\ 0,&\left | f \right |\geqslant \frac{1+\alpha }{2T_{s} } \end{matrix}\right.X(f)=Ts,2Ts(1+cos[απTs(f2Ts1α)]),0,0f2Ts1α2Ts1αf2Ts1+αf2Ts1+α
式中,α\alphaα为大于0小于1的滚将因子,TsT_{s}Ts为码元周期,且Ts=1/RsT_{s}=1/R_{s}Ts=1/Rs。当α=0\alpha=0α=0时,滤波器的带宽为Rs/2R_{s}/2Rs/2,称为奈奎斯特带宽;当α=1\alpha=1α=1时,滤波器的截止频率为(1+α)Rs/2=Rs(1+\alpha)R_{s}/2=R_{s}(1+α)Rs/2=Rs
在无线通信系统中,发射端在将信号经功放放大,并最终由天线发射出去之前,为了提高功率效率,同时抑制发射信号边带信号频谱,避免边带信号对其他信号造成干扰,通常会在已调信号之后增加带通滤波器。显然,在PSK调制过程中,如在调制前对基带信号进行成形滤波,除防止码间干扰外,还可以达到滤除边带信号频谱的目的。
对基带信号成形滤波后,进行PSK调制只能采用调相法,其实现结构如下所示:
PSK调制解调—DPSK-编程知识网

2. Costas环解调DPSK信号

科斯塔斯环(Costas)又叫作同相正交环。首先被提出用于恢复载波信号,在工程上应用最为广泛的一种抑制载波跟踪环路。
Costas环的组成原理如下图所示,它是由输入信号分别乘以同相和正交两路载波信号而得名。输入信号分为上、下支路,分别乘以同相和正交载波,并通过低通滤波后再相乘,完成鉴相功能,最后经环路滤波器输出控制本地振荡器的误差电压。
PSK调制解调—DPSK-编程知识网
设输入BPSK调制信号为
s(t)=m(t)sin[ωct+θ1(t)]=[∑nang(t−nTs)]sin[ωct+θ1(t)]s(t)=m(t)sin[\omega _{c}t+\theta _{1}(t)]=\left [ \sum_{n}^{}a_{n}g(t-nT_{s}) \right ]sin[\omega _{c}t+\theta _{1}(t)]s(t)=m(t)sin[ωct+θ1(t)]=[nang(tnTs)]sin[ωct+θ1(t)]
式中,m(t)m(t)m(t)为数据调制信号;ωct\omega _{c}tωct为输入载波角频率。本地VCO(或NCO)的同相与正交支路乘法器输出分别为
Voi(t)=sin[ωct+θ2(t)],Voq(t)=cos[ωct+θ2(t)]V_{oi}(t)=sin[\omega _{c}t+\theta _{2}(t)],V_{oq}(t)=cos[\omega _{c}t+\theta _{2}(t)]Voi(t)=sin[ωct+θ2(t)],Voq(t)=cos[ωct+θ2(t)]
式中,ωct\omega _{c}tωct为本地VCO/NCO信号以输入载波信号,θ1(t)\theta _{1}(t)θ1(t)θ2(t)\theta _{2}(t)θ2(t)为参考相位的瞬时相位,则同相、正交支路乘法器输出分别为
Zi(t)=Kp1[∑nang(t−nTs)]sin[ωct+θ1(t)]sin[ωct+θ2(t)]Z_{i}(t)=K_{p1}\left [ \sum_{n}^{}a_{n}g(t-nT_{s}) \right ]sin[\omega _{c}t+\theta _{1}(t)]sin[\omega _{c}t+\theta _{2}(t)]Zi(t)=Kp1[nang(tnTs)]sin[ωct+θ1(t)]sin[ωct+θ2(t)]
Zq(t)=Kp2[∑nang(t−nTs)]sin[ωct+θ1(t)]cos[ωct+θ2(t)]Z_{q}(t)=K_{p2}\left [ \sum_{n}^{}a_{n}g(t-nT_{s}) \right ]sin[\omega _{c}t+\theta _{1}(t)]cos[\omega _{c}t+\theta _{2}(t)]Zq(t)=Kp2[nang(tnTs)]sin[ωct+θ1(t)]cos[ωct+θ2(t)]
θe(t)=θ1(t)−θ2(t),Kp1、Kp2\theta _{e}(t)=\theta _{1}(t)-\theta _{2}(t),K_{p1}、K_{p2}θe(t)=θ1(t)θ2(t),Kp1Kp2为相乘器系数,经过低通滤波后可得到
yi(t)=Kp1K11[∑nang(t−nTs)]cos[θe(t)]y_{i}(t)=K_{p1}K_{11}\left [ \sum_{n}^{}a_{n}g(t-nT_{s}) \right ]cos[ \theta _{e}(t)]yi(t)=Kp1K11[nang(tnTs)]cos[θe(t)]
yq(t)=Kp2K12[∑nang(t−nTs)]sin[θe(t)]y_{q}(t)=K_{p2}K_{12}\left [ \sum_{n}^{}a_{n}g(t-nT_{s}) \right ]sin[ \theta _{e}(t)]yq(t)=Kp2K12[nang(tnTs)]sin[θe(t)]
式中,Kp1、Kp2K_{p1}、K_{p2}Kp1Kp2为低通滤波器系数,经滤波后的同相、正交支路经过相乘鉴相并经环路滤波后得
Vc(t)=18KpKp1Kp2K11K12sin[2θe(t)]=Kdsin[2θe(t)]V_{c}(t)=\frac{1}{8}K_{p}K_{p1}K_{p2}K_{11}K_{12}sin[ 2\theta _{e}(t)]=K_{d} sin[ 2\theta _{e}(t)]Vc(t)=81KpKp1Kp2K11K12sin[2θe(t)]=Kdsin[2θe(t)]
式中,KpK_{p}Kp为鉴相增益,KdK_{d}Kd为环路增益,VCO/NCO的输入是受θe(t)=θ1(t)−θ2(t)\theta _{e}(t)=\theta _{1}(t)-\theta _{2}(t)θe(t)=θ1(t)θ2(t)控制的,环路滤波器输出为跟踪θe(t)\theta _{e}(t)θe(t)提供了所需的误差控制电压。

3. DPSK调制解调的MATLAB仿真

条件:基带信号符号速率Rb=1MbpsR_{b}=1MbpsRb=1Mbps;成形滤波器的滚将因子α=0.8\alpha =0.8α=0.8;载波信号频率fc=2MHz,采样频率fs=8Rb.
根据前面的分析,首先产生随机的原始数据,然后对其进行差分编码(绝对码转换成相对码),并对其进行插值。设计好成形滤波器后,对插值后的相对码进行成形滤波,滤波输出的数据与载波相乘,即产生所需的DPSK已调信号。相干解调DPSK信号,只需将相干载波与DPSK已调信号相乘,并通过低通滤波即可。接收端的低通滤波器特性对解调性能有直接影响,低通滤波器的通带显然为基带信号的带宽,且必须确保滤除相邻A/D镜像频率成分和数字下变频引入的倍频分量。
相邻A/D镜像频率的最小间隔为:
Δfad=min[2fL−kfs,(k+1)fs−2fH]\Delta f_{ad}=min[2f_{L}-kf_{s},(k+1)f_{s}-2f_{H}]Δfad=min[2fLkfs,(k+1)fs2fH]
式中,fLf_{L}fL为中频信号的下边缘频率(fL=fc−(1+α)Rb/2=1.1MHz)(f_{L}=f_{c}-(1+\alpha )R_{b}/2=1.1MHz)(fL=fc(1+α)Rb/2=1.1MHz)fLf_{L}fL为中频信号的上边缘频率(fH=fc+(1+α)Rb/2=2.9MHz)(f_{H}=f_{c}+(1+\alpha )R_{b}/2=2.9MHz)(fH=fc+(1+α)Rb/2=2.9MHz),fs为采样频率,k为整数,容易求得Δfad=2.2MHz\Delta f_{ad}=2.2MHzΔfad=2.2MHz
数字下变频引入倍频分量的最低频率为
fcddc=min[−2f0+(m+1)fs,2f0−mfs]−Bf/2f_{cddc}=min[-2f_{0}+(m+1)f_{s},2f_{0}-mf_{s}]-B_{f}/2fcddc=min[2f0+(m+1)fs,2f0mfs]Bf/2
式中,f0f_{0}f0为中频采样后的载波频率,BfB_{f}Bf为中频信号处理带宽,m为整数,容易求出fcddc=3.1MHzf_{cddc}=3.1MHzfcddc=3.1MHz
根据过渡带选择原则,可知低通滤波器的截止频率为
fc=min[fcddc,Bf/2+Δfad]f_{c}=min[f_{cddc},B_{f}/2+\Delta f_{ad}]fc=min[fcddc,Bf/2+Δfad]

3.1 源码

ps=1*10^6;   %码速率为1MHz
a=0.8;       %成形滤波器系数为0.8
B=(1+a)*ps;  %中频信号处理带宽
Fs=8*10^6;  %采样速率为8MHz
fc=2*10^6;   %载波频率为2MHz
N=10000;      %仿真数据的长度t=0:1/Fs:(N*Fs/ps-1)/Fs;%产生长度为N,频率为fs的时间序列
s=randint(N,1,2);       %产生随机数据作为原始数据,
%并将绝对码变换为相对码
ds=ones(1,N);
for i=2:Nif s(i)==1 ds(i)=-ds(i-1);elseds(i)=ds(i-1);end
end
%对相对码数据以Fs频率采样
Ads=upsample(ds,Fs/ps);%设计平方升余弦滤波器
n_T=[-2 2];
rate=Fs/ps;
T=1;
Shape_b = rcosfir(a,n_T,rate,T);%figure(4);freqz(Shape_b)
%对采样后的数据进行升余弦滤波;
rcos_Ads=filter(Shape_b,1,Ads);%产生载频信号
f0=sin(2*pi*fc*t);       
%产生DPSK已调信号
dpsk=rcos_Ads.*f0;       %与相干载波相乘,实现相干解调
demod_mult=dpsk.*f0;
%设计接收端低通滤波器
fc=[ps 3.1*10^6];  %过渡带
mag=[1 0];             %窗函数的理想滤波器幅度
dev=[0.01 0.01];        %纹波
[n,wn,beta,ftype]=kaiserord(fc,mag,dev,Fs)  %获取凯塞窗参数
fpm=[0 fc(1)*2/Fs fc(2)*2/Fs 1];            %firpm函数的频段向量
magpm=[1 1 0 0];                            %firpm函数的幅值向量
rec_lpf=firpm(n,fpm,magpm);                 %firpm函数返回的最优滤波器系数
%对乘法运算后的数据进行低通滤波,输出解调后的基带信号
demod_lpf=filter(rec_lpf,1,demod_mult);figure(1)
%绘制成形滤波后信号频谱、DPSK信号频谱、DPSK信号时域波形
m_rcos_Ads=20*log10(abs(fft(rcos_Ads,1024)));m_rcos_Ads=m_rcos_Ads-max(m_rcos_Ads);
m_dpsk=20*log10(abs(fft(dpsk,1024)));m_dpsk=m_dpsk-max(m_dpsk);
%设置幅频响应的横坐标单位为MHz
x_f=[0:(Fs/length(m_dpsk)):Fs/2];x_f=x_f/10^6;
%只显示正频率部分的幅频响应
mrcos_Ads=m_rcos_Ads(1:length(x_f));
mdpsk=m_dpsk(1:length(x_f));
%设置时域波表的横坐标单位为us
Len=100;%设置时域波形显示的点数
x_t=1:Len;%产生长度为Len的时间序列
x_t=x_t/Fs*10^6;
%显示所需的频谱及时域波形
subplot(311); plot(x_f,mrcos_Ads);
legend('成形滤波后信号频谱');
xlabel('频率(MHz)');ylabel('幅度(dB)');grid on;subplot(312); plot(x_f,mdpsk);     
legend('DPSK已调信号频谱');
xlabel('频率(MHz)');ylabel('幅度(dB)');grid on;

3.2 仿真结果

PSK调制解调—DPSK-编程知识网
PSK调制解调—DPSK-编程知识网