最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于matlab的2PSK的系统仿真

来源:动视网 责编:小OO 时间:2025-10-01 10:15:53
文档

基于matlab的2PSK的系统仿真

基于matlab的2PSK的系统仿真摘要:Simulink是Mathworks公司推出的基于Matlab平台的著名仿真环境Simulin作为一种专业和功能强大且操作简单的仿真工具,目前已被越来越多的工程技术人员所青睐,它搭建积木式的建模仿真方式既简单又直观,而且已经在各个领域得到了广泛的应用。本次课程设计是基于MATLAB的2PSK和2DPSK仿真,通过系统分析,步骤来完成本次设计任务。通过课程设计从理论学习的轨道逐步引向实际应用,把理论上熟悉的定性分析、定量计算逐步和工程估算、实验调整等手段
推荐度:
导读基于matlab的2PSK的系统仿真摘要:Simulink是Mathworks公司推出的基于Matlab平台的著名仿真环境Simulin作为一种专业和功能强大且操作简单的仿真工具,目前已被越来越多的工程技术人员所青睐,它搭建积木式的建模仿真方式既简单又直观,而且已经在各个领域得到了广泛的应用。本次课程设计是基于MATLAB的2PSK和2DPSK仿真,通过系统分析,步骤来完成本次设计任务。通过课程设计从理论学习的轨道逐步引向实际应用,把理论上熟悉的定性分析、定量计算逐步和工程估算、实验调整等手段
基于matlab的2PSK的系统仿真

                                                           

摘要:Simulink是Mathworks公司推出的基于Matlab平台的著名仿真环境Simulin作为一种专业和功能强大且操作简单的仿真工具,目前已被越来越多的工程技术人员所青睐,它搭建积木式的建模仿真方式既简单又直观,而且已经在各个领域得到了广泛的应用。本次课程设计是基于MATLAB的2PSK和2DPSK仿真,通过系统分析,步骤来完成本次设计任务。通过课程设计从理论学习的轨道逐步引向实际应用,把理论上熟悉的定性分析、定量计算逐步和工程估算、实验调整等手段结合起来,掌握工程设计的步骤和方法,了解科学实验的程序和实施方法,为以后毕业设计和从事信息处理技术的实际工作打下基础。

关键词:MATLAB;2PSK,2DPSK;仿真

1.二进制相移键控

设计流程图如图2-1所示。

图 2-1 2PSK调制解调框图

1.1 PSK调制原理

在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。2PSK信号调制有两种方法,即模拟调制法和键控法。通常用已调信号载波的 0°和 180°分别表示二进制数字基带信号的 1 和 0,模拟调制法用两个反相的载波信号进行调制。2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0°,当基带信号为1时相对于初始相位为180°。

键控法,是用载波的相位来携带二进制信息的调制方式。通常用0°和180°来分别代表0和1。其时域表达式为:

其中,2PSK的调制中an必须为双极性码。本次设计中采用模拟调制法。两种方法原理图分别如图2-2和图2-3所示。

图 2-2 模拟调制法原理图

图 2-3 键控法原理图

2PSK信号的时间波形

1.2 PSK解调原理

由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图2-4所示,各点的波形如图2-5所示。

由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π”现象或“反相工作”。但在本次仿真中是直接给其同频同相的载波信号,所以不存在此问题。

图 2-4 2PSK的相干解调原理图

图 2-5 相干解调中各点波形图

图中,假设相干载波的基准相位与2PSK信号的基准一致(通常默认为0相位)。但是由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全部出错。这种现象称为2PSK方式的“倒π”现象或“反相工作”。

     2PSK信号在一个码元的持续时间Ts内可以表示为

                      u1T(t)              发送“1”时

              ST(t)=                                 

                       uoT(t)=- u1T(t)     发送“0”时

期中                    Acosωct 0< t < Ts 

              u1T(t)=                                

                        0                 其他

     设发送端发出的信号如上式所示,则接收端带通滤波器输出波形y(t)为

                       [a+nc(t)]cosωct-ns(t)sinωct       发送“1”时 

               y(t)=                                                  

                       [-a+nc(t)]cosωct-ns(t)sinωct      发送“0”时

y(t)经过想干解调(相乘—低通)后,送入抽样判决器的输入波形为 

                       a+nc(t)         发送“1”时

               x(t)=                              

                       -a+nc(t)        发送“0”时

由于nc(t)是均值为0,方差为σ2的高斯噪声,所以x(t)的一维概率密度函数为

由最佳判决门限分析可知,在发送“1”和“0”概率相等时,即P(1)=P(0)时,最佳门限b*=0.此时,发“1”而错判为“0”的概率为

               P(0/1)=P(x≦0)=∫0-∞f1(x)dx=1/2erfc(

式中:r=a2/2σ2n 

 同理,发“0而错判为“1”的概率为

P(1/0)=P(x>0)=∫0-∞f0(x)dx=1/2erfc(

故2PSK信号相干解调系统的总误码率为

               Pe=P(1)P(0/1)+P(0)P(0/1)= 1/2erfc(

在大信噪比(r>>1)的条件下,上式可近似为

               Pe≈e-r/2

2.基于matlab的2PSK的系统仿真

通过编写M文件程序:

2PSK调制解调程序及注释

clear all

close all

i=10;

j=5000;

fc=4;               %载波频率

fm=i/5;             %码元速率

B=2*fm;

t=linspace(0,5,j);

a=round(rand(1,i));    %随机序列,基带信号

figure(3);

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(411);

plot(t,st1);

title('基带信号st1');

axis([0,5,-1,2]);

%由于PSK中的是双极性信号,因此对上面所求单极性信号取反来与之一起构成双极性码

st2=t;               

for k=1:j;

if st1(k)>=1;

        st2(k)=0;

    else

        st2(k)=1;

    end

end;

subplot(412);

plot(t,st2);

title('基带信号反码st2');

axis([0,5,-1,2]);

st3=st1-st2;

subplot(413);

plot(t,st3);

title('双极性基带信号st3');

axis([0,5,-2,2]);

s1=sin(2*pi*fc*t);

subplot(414);

plot(s1);

title('载波信号s1');

e_psk=st3.*s1;

figure(2);

subplot(511);

plot(t,e_psk);

title('e_2psk');

noise=rand(1,j);

psk=e_psk+noise;            %加入噪声

subplot(512);

plot(t,psk);

title('加噪后波形');

psk=psk.*s1;                %与载波相乘

subplot(513);

plot(t,psk);

title('与载波s1相乘后波形');

[f,af] = T2F(t,psk);              %通过低通滤波器

[t,psk] = lpf(f,af,B);

subplot(514);

plot(t,psk);

title('低通滤波后波形');

for m=0:i-1;

if psk(1,m*500+250)<0;

       for j=m*500+1:(m+1)*500;

            psk(1,j)=0;

       end

    else

       for j=m*500+1:(m+1)*500;

           psk(1,j)=1;

       end

    end

end

subplot(515);

plot(t,psk);

axis([0,5,-1,2]);

title('抽样判决后波形')

2DPSK调制解调程序及注释

clear all

close all

i=10;

j=5000;

fc=4;                     %载波频率

fm=i/5;                    %码元速率

B=2*fm;

t=linspace(0,5,j);

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]);

b=zeros(1,i);                 %全零矩阵

b(1)=a(1);

for n=2:10

if a(n)>=1;

if b(n-1)>=1

            b(n)=0;

        else

            b(n)=1;

        end

    else

        b(n)=b(n-1);

    end

end

st1=t;

for n=1:10

if b(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

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('与载波相乘后波形');

[f,af]=T2F(t,dpsk);                  %通过低通滤波器

[t,dpsk]=lpf(f,af,B);

subplot(412);

plot(t,dpsk);

title('低通滤波后波形');

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('抽样判决后波形')

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;

        dt(n)=0;

    else

        dt(n)=1;

    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('码反变换后波形');

%利用FFT计算信号的频谱并与信号的真实频谱的抽样比较。

%脚本文件T2F.m定义了函数T2F,计算信号的傅立叶变换。

function [f,sf]= T2F(t,st)

%This is a function using the FFT function to calculate a signal's Fourier

%Translation

%Input is the time and the signal vectors,the length of time must greater

%than 2

%Output is the frequency and the signal spectrum

dt = t(2)-t(1);

T=t(end);

df = 1/T;

N = length(st);

f=-N/2*df:df:N/2*df-df;

    sf = fft(st);

sf = T/N*fftshift(s);

用到的低通滤波器函数

function [t,st]=lpf(f,sf,B)

%This function filter an input data using a lowpass filter

%Inputs: f:  frequency samples

% sf: input data spectrum samples

% B:  lowpass's bandwidth with a rectangle lowpass

%Outputs:  t: time samples

% st: output data's time samples

df = f(2)-f(1);

T = 1/df;

hf = zeros(1,length(f));                %全零矩阵

bf = [-floor( B/df ): floor( B/df )] + floor( length(f)/2 );

hf(bf)=1;

yf=hf.*sf;

[t,st]=F2T(f,yf);

st = real(st);

用到的反傅立叶函数

%脚本文件F2T.m定义了函数F2T,计算信号的反傅立叶变换。

function [t,st]=F2T(f,sf)

%This function calculate the time signal using ifft function for the input

%signal's spectrum

 df = f(2)-f(1);

Fmx = ( f(end)-f(1) +df);

dt = 1/Fmx;

N = length(sf);

T = dt*N;

%t=-T/2:dt:T/2-dt;

t = 0:dt:T-dt;

sff = fftshift(sf);

st = Fmx*ifft(sff);

产生随机信号,按流程图2-1所示顺序对每一模块编程后。程序中注有需注意语句及解释。运行程序,实现2PSK的调制与解调过程。本次设计采用模拟调制法和相干解调法。

参考文献

[1]  李白萍,吴冬梅.通信原理与技术[M].北京:人民邮电出版社,2003

[2]  樊昌信,曹丽娜.通信原理[M].北京:国防工业出版社,2001

[3]  曹志刚,钱亚生.现代通信原理[M].北京:清华大学出版社,1992

[4]  李明明,李白萍.电子信息类专业MATLAB实验教程[M].北京:北京大学出版社,2011

[5]  刘学勇.详解MATLAB/Simulink通信系统建模与仿真[M].北京:电子工业出版社,2011

文档

基于matlab的2PSK的系统仿真

基于matlab的2PSK的系统仿真摘要:Simulink是Mathworks公司推出的基于Matlab平台的著名仿真环境Simulin作为一种专业和功能强大且操作简单的仿真工具,目前已被越来越多的工程技术人员所青睐,它搭建积木式的建模仿真方式既简单又直观,而且已经在各个领域得到了广泛的应用。本次课程设计是基于MATLAB的2PSK和2DPSK仿真,通过系统分析,步骤来完成本次设计任务。通过课程设计从理论学习的轨道逐步引向实际应用,把理论上熟悉的定性分析、定量计算逐步和工程估算、实验调整等手段
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top