数字信号调制基于matlab二进制差分相移键控调制(2DPSK)含Matlab源码 163期

Posted 紫极神光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数字信号调制基于matlab二进制差分相移键控调制(2DPSK)含Matlab源码 163期相关的知识,希望对你有一定的参考价值。

一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【数字信号调制】基于matlab二进制差分相移键控调制(2DPSK)【含Matlab源码 163期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

备注:订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、简介

1 绪论
调制:把消息信号寄托到载波的某个参数上,形成已调信号。
解调:调制的逆过程,从已调信号中恢复消息信号。

2 调制的目的
无线通信中,匹配信道特性,提高发射信号的频率,减小天线尺寸;频谱搬移,一条信道中同时传输多路信号,多路复用,提高信道利用率;扩展信号带宽,提高系统抗干扰能力;实现带宽与信噪比的互换(有效性和可靠性);利用电话线将PC机接入Internet,需要翻译模/数信号。

3 调制的分类
3.1 涉及的信号
消息信号,又称调制信号、基带信号;
载波:运载工具,常用的是正弦波、脉冲序列;
已调信号:受调载波,载有消息信号的信息,具有多种形式。
3.2 可以从不同角度分类
按调制信号的类型:模拟调制/数字调制
按已调信号的频谱结构:线性调制/非线性调制
按正弦载波的受调参量:幅度调制/频率调制/相位调制
按载波信号的类型:连续波调制/脉冲调制

4 幅度调制
4.1 一般模型
(1)理论基础:傅里叶变换
(2)一般模型
幅度调制:消息信号控制正弦载波的幅度。
方法:用消息信号通过相乘器乘上载波信号,再通过带通滤波器(时域卷积滤波器特性)。
举例:AM、DSB、SSB、VSB。

4.2 常规双边带调幅AM
t 域:已调信号的波形,调制/解调方法
f 域:已调信号的频谱,带宽B
AM信号的包络正比于消息信号的规律,因此可以采用简单的**包络检波方法(非相干解调)**解调;
频谱由载波、上边带USB、下边带LSB组成。带宽BAM=2fH;
幅度调制又称为线性调制;
应用:中短波调幅广播。
缺点:功率利用率低,最多达到50%

4.3 抑制载波双边带DSB
频谱由上边带USB、下边带LSB组成,没有了载波分量。带宽BDSB=BAM=2fH;
调制效率可达100%。
采用相干解调:
方法:用消息信号通过想乘器乘上相干载波信号,再通过低通滤波器(时域卷积滤波器特性)。
要求:载波同步(相干载波和载波信号同频同相)

4.4 单边带调制SSB
只传输一个边带,频带利用率高。带宽BSSB=BAM/2=fH;在频谱拥挤的通信场合,如短波通信、多路载波电话系统。低功耗特性。使用于移动通信系统。
缺点:设备复杂,存在技术难点,需要相干解调。

4.5 残留边带调制VSB
残留边带滤波器特性:在载频处具有互补对称特性;介于单边带与双边带之间的方案。

5 角度调制
正弦载波有三个参量:幅度、频率、相位。都可以携带消息信号。
其中,频率(FM)和相位(PM)都称为角度调制。
频率调制(FM)
幅度恒定,对瞬时相位对t求微分,得到瞬时角频率。
调频的频谱由载频分量wc两侧的无数多对边频wc±nwm组成,其幅度取决于mf;
理论上,调频的带宽无穷大;
实际中,用卡森公式计算FM带宽:BFM=2(mf+1)fm。fm为调制信号的最高频率
FM调制为非线性调制。FM解调也称鉴频 ,采用微分电路+包络检波实现。
FM的特点和应用
特点:幅度不变,包络恒定。
优势:抗噪能力强;
代价:占用较大信道带宽,频谱利用率低;
应用:高质量或信道噪声大的场合。如卫星通信、移动通信、微波通信等。

6 抗噪声性能
性能指标:输出信噪比、制度增益
输入信噪比:Ni=n0B。n0是噪声的单边功率谱密度,B=2fH是带宽,是基带带宽的2倍。

AM DSB SSB VSB(幅度调制)
相干解调器:线性解调,信号和噪声可以分开处理。
双边带和单边带调制的抗噪声性能相同。
小信噪比时,信号被干扰为噪声,产生门限效应。原因是包络检波的非线性解调作用。
信噪比固定。
FM(角度调制)
FM系统可以通过增加传输带宽来改善抗噪声性能(信噪比)。

总结
频谱利用率 SSB>VSB>DSB/AM>FM
抗噪声性能:FM>DSB/SSB>VSB>AM
设备复杂度:AM最简,DSB/FM次之,SSB最复杂

三、部分源代码

i=10;
j=5000;
t=linspace(0,5,j);%0-5之间产生5000个点行矢量,即将[0,5]分成5000份
fc=5;%载波频率
fm=i/5;%码元速率
B=2*fm;%信号带宽
 
%产生基带信号
a=round(rand(1,i));
%figure(4);stem(a);
st1=t;
for n=1:10
    if a(n)<1;
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=1;
        end
    end
end
figure(1);
subplot(321);
plot(t,st1);
title('绝对码');
axis([0,5,-1,2]);
 
%差分变换
%0为参考位
b=zeros(1,i);%全零矩阵
if(a(1)==0)
    b(1)=0;
else
    b(1)=1;
end
for n=2:10
    if a(n)==b(n-1)
        b(n)=0;
    else
        b(n)=1;
    end
end
st1=t;
for n=1:10
    if b(n)==0
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st1(m)=1;
        end
    end
end
subplot(323);
plot(t,st1);
title('相对码st1');
axis([0,5,-1,2]);
 
st2=t;
for k=1:j;
    if st1(k)==1;
        st2(k)=0;
    else
        st2(k)=1;
    end
end;
subplot(324);
plot(t,st2);
title('相对码反码st2');
axis([0,5,-1,2]);
 
%载波信号
s1=sin(2*pi*fc*t);
subplot(325);
plot(s1);
title('载波信号s1');
s2=sin(2*pi*fc*t+pi);%移了一个相位
subplot(326);
plot(s2);
title('载波信号s2');
 
%信号调制
d1=st1.*s1;
d2=st2.*s2;
figure(2);
subplot(411);
plot(t,d1);
title('st1*s1');
subplot(412);
plot(t,d2);
title('st2*s2');
e_dpsk=d1+d2;
subplot(413);
plot(t,e_dpsk);
title('调制后波形');
 
%加噪
noise=rand(1,j);
dpsk=e_dpsk+noise;%加入噪声
subplot(414);
plot(t,dpsk);
title('加噪声后信号');
 
%相干解调
dpsk=dpsk.*s1;%与载波s1相乘
figure(3);
subplot(411);
plot(t,dpsk);
title('与载波s1相乘后波形');
 
[f,af]=T2F(t,dpsk);%傅里叶变换
[t,dpsk]=lpf(f,af,B);%通过低通滤波器,滤除部分噪声
subplot(412);
plot(t,dpsk);
title('低通滤波后波形');
 
%抽样判决
%正值判成1,负值判成0
st=zeros(1,i);%%全零矩阵
for m=0:i-1
    if dpsk(1,m*500+250)<0
        st(m+1)=0;
        for j=m*500+1:(m+1)*500
            dpsk(1,j)=0;
        end
    else
        for j=m*500+1:(m+1)*500
            st(m+1)=1;
            dpsk(1,j)=1;
        end
    end
end
subplot(413);
plot(t,dpsk);
axis([0,5,-1,2]);
title('抽样判决后波形')
 
%码反变换 2DPSK特有
dt=zeros(1,i);%%全零矩阵
dt(1)=st(1);
for n=2:10;
   % if (st(n)-st(n-1))<=0&&(st(n)-st(n-1))>-1;
    if (st(n)~=st(n-1))
        dt(n)=1;
    else
        dt(n)=0;
    end
end
st=t;
for n=1:10
    if dt(n)<1;
        for m=j/i*(n-1)+1:j/i*n
            st(m)=0;
        end
    else
        for m=j/i*(n-1)+1:j/i*n
            st(m)=1;
        end
    end
end
subplot(414);
plot(t,st);
axis([0,5,-1,2]);
title('码反变换后波形');
    

四、运行结果



五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

以上是关于数字信号调制基于matlab二进制差分相移键控调制(2DPSK)含Matlab源码 163期的主要内容,如果未能解决你的问题,请参考以下文章

数字信号调制基于matlab GUI 2ASK+2FSK+2PSK调制解调仿真含Matlab源码 1504期

数字信号调制基于二进制数字相位调制(2PSK)matlab源码

数字信号调制基于多进制数字相位调制(4PSK)matlab源码

数字信号调制基于matlab多进制数字相位调制(4PSK)含Matlab源码 1001期

数字信号调制基于matlab GUI数字信号调制系统(2ASK+2FSK+2PSK+4ASK+4FSK+4PSK带面板)含Matlab源码 1658期

数字信号调制基于matlab GUI FSK调制+解调含Matlab源码 645期