您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页基于MATLAB的2DPSK信号仿真

基于MATLAB的2DPSK信号仿真

来源:爱go旅游网
共享知识 分享快乐

基于MATLAB的2DPSK信号的调制与解调仿真

西安电子科技大学 张**

页眉内容

共享知识 分享快乐

目录

一 题目要求 二 关于2DPSK 1 基础知识________________________________________________________________2 2 2DPSK的调制原理_________________________________________________________2 3 2DPSK的解调原理_________________________________________________________3 三 调制系统仿真 1 调制系统设计____________________________________________________________4

1) 产生基带信号______________________________________________________ 4 2) 产生相对码________________________________________________________5 3) 产生载波信号______________________________________________________6 4) 调制______________________________________________________________6

2 传输系统设计____________________________________________________________7 3 解调系统设计___________________________________________________________7

1) 带通滤波器________________________________________________________7 2) 乘法器____________________________________________________________8 3) 低通滤波器________________________________________________________8 4) 抽样判决器________________________________________________________9 5) 延迟单元__________________________________________________________9 6) 码(反)变换器____________________________________________________9

4 极性比较法结果_________________________________________________________10 5 差分相干法结果_________________________________________________________11 四 完整程序源码 1 极性比较法程序 DPSK.m_________________________________________________12 2 差分相干法 DPSK1.m________________________________________________15

页眉内容

共享知识 分享快乐

一 题目要求

产生2DPSK信号,画出时域波形和频谱,分别用极性比较法和差分相干法解调。

二 关于2DPSK

1 基础知识

2DPSK即二进制差分相移键控(2DPSK)二进制差分相移键控常简称为二相相对调相,记作2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。 →数字信息“0”; →数字信息“1”。

则数字信息序列与2DPSK信号的码元相位关系可举例表示如下: 数字信息: 1 0 1 1 0 1 1 1 0 1 DPSK信号相位:

或:0 

2 2DPSK的调制原理

一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK信号的的模拟调制法框图如图1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。

s(t) eo(t) 码变换 相乘 载波 图1 模拟调制法

2DPSK信号的的键控调制法框图如图2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi。

页眉内容

共享知识 分享快乐

图2 键控调制

3 2DPSK的解调原理

2DPSK信号最常用的解调方法有两种,一种是极性比较法,另一种是差分相干法。 差分相干法: 2DPSK信号先经过带通滤波器,去除调制信号频带以外的在信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图

2DPSK 带通滤波器 相乘器 低通滤波器 抽样判决器 码(反) 变换器 延迟T 图3差分相干法法

极性比较法:2DPSK信号经过带通滤波器,滤掉信道中产生的噪声,再与本地载波相乘,经过低通滤波器,得到包含基带信号的低频信号,将其送入抽样判决器得到相对码,再经过码(反)变换器得到基带信号。原理图如下所示

页眉内容

共享知识 分享快乐

2DPSK 带通 滤波器 相乘器 低通 滤波器 抽样 判决器 逆码变换 本地载波 图4 极性比较法法

三 仿真程序设计

1 调制系统设计 1)产生基带信号

本例中使用matlab中的rand函数随机产生10个随机数,并采用就近取整的办法使其值为0、1.此过程产生的码为绝对码。并且,每个值需要分配一定的长度。 代码如下:

clear all close all

i=10; %码元的个数 j=5000; fc=4; fm=i/5; B=2*fm;

t=linspace(0,5,j); % 将0-5区间平均分为j份

%%%%%%%%%%%%% 产生基带信号 %%%%%%%%%%%%%%%% a =round(rand(1,i)); %产生10个随机码,记为a st1=t;

for n=1:10

if a(n)<1;

for m=j/i*(n-1)+1:j/i*n % j/i为每个码元的 st1(m)=0; end else

for m=j/i*(n-1)+1:j/i*n st1(m)=1; end

页眉内容

共享知识 分享快乐

end

end

2)相对码产生

根据相对码的原理,源码中1的值对应相位改变π,源码中0的值对应相位不改变。将π变为1,0仍为0,则形成相对码。 页眉内容

代码如下

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(412); plot(t,st1); title('相对码'); axis([0,5,-1,2]); st2=t; for k=1:j;

if st1(k)>=1; st2(k)=0; else

st2(k)=1; end

共享知识 分享快乐

end;

st1即为相对码,st2为相对码的反码,在调制中使用。

3)产生载波信号

代码:

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

4) 调制

按图一中所示,相对码及其反码分别和载波相乘再相加,即得到调制信号。 d1=st1.*s1;

d2=st2.*(-s1);%相移180 figure(2);

subplot(4,1,1); plot(t,d1);

title('st1*s1'); subplot(4,1,2); plot(t,d2);

title('st2*s2'); e_dpsk=d1+d2;

210-1210-1210-110-10

绝对码00.511.522.5相对码33.4.5500.511.522.53相对码的反码3.4.5500.511.522.5载波信号33.4.55500100015002000250030003500400045005000

页眉内容

共享知识 分享快乐

图5码元产生

st1*s110-110-110-120-200.511.522.533.4.5500.511.522.53加噪声信号3.4.5500.511.522.53调制后波形3.4.5500.511.522.5st2*s233.4.55图6 调制信号

2 传输系统设计

传输系统设计比较简答,只需加入信道噪声即可。 代码:

noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声 效果如图6所示

3 解调系统设计

解调系统中,极性比较法和差分相干法有很多部分相同,可以用相同设计。 相同部分设计。

1)带通滤波器

在仿真过程省略。

页眉内容

共享知识 分享快乐

2)乘法器

由于是仿真,可直接相乘。

3)低通滤波器

页眉内容

设计为只允许基频信号通过。 代码:

[f,af] = T2F(t,dpsk); [t,dpsk] = lpf(f,af,B); 所用函数代码: 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); Lpf子函数

f=-N/2*df:df:N/2*df-df; sf = fft(st);

sf = T/N*fftshift(sf);

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

4)抽样判决器

抽样判决器就是过零检测。 代码:

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

两种解调方式不同之处在于延迟单元和码(反)变换器。

5)延迟单元

延迟一个码元长度,第一个码元长度的内容根据编码规则,抽样判决。 代码:

if dpsk(65)<0

dpsk_delay(1:j/i)=dpsk(1:j/i); else

dpsk_delay(1:j/i)=-dpsk(1:j/i) end

dpsk_delay(j/i+1:j)=dpsk(1:j-j/i);

6)码(反)变换器

将相对码变换为绝对码,与编码器正好相反。 代码:

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

4 极性比较法解调结果结果

如图,可见解调结果与源码完全一致。

与载波相乘后波20-210-1210-1210-100.511.522.53抽样判决后波形3.4.5500.511.522.533.5通过低通滤波器波形44.5500.511.522.53码反变换后波形3.4.5500.511.522.533.4.55

图7 极性比较法解调结果

绝对码210-100.511.522.5相对码33.4.55

2页眉内容 10-100.511.522.533.4.55共享知识 分享快乐

图7 源码

5 差分相干法解调结果

如图,解调结果与源码完全一致。

延迟相乘后波形50-510-1210-100.511.522.533.4.5500.511.522.533.4.55通过低通滤波器波形00.511.522.533.4.55抽样判决后波形

图8 差分相干法解调结果

绝对码210-1210-1210-110-1050010001500200025003000350040004500500000.511.52图9 源码

2.5相对码33.4.55

00.511.522.53相对码的反码3.4.5500.511.522.53载波信号3.4.55页眉内容

共享知识 分享快乐

程序源码

1 极性比较法 DPSK.m

clear all close all

i=10; %码元的个数 j=5000; fc=4; fm=i/5; B=2*fm;

t=linspace(0,5,j); % 将0-5区间平均分为j份

%%%%%%%%%%%%% 产生基带信号 %%%%%%%%%%%%%%%% a =round(rand(1,i)); %产生10个随机码,记为a st1=t;

for n=1:10 if a(n)<1;

for m=j/i*(n-1)+1:j/i*n % j/i为每个码元的 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('绝对码'); 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(412); plot(t,st1); title('相对码'); 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(413) plot(t,st2)

title('相对码的反码') axis([0 5 -1 2])

%%%%%%%%%%%% 载波信号 %%%%%%%%%%%%%%%%% s1=sin(2*pi*fc*t); subplot(414); plot(s1);

title('载波信号');

%%%%%%%%%%%%%% 调制 %%%%%%%%%%%%%%%%%%%%%% d1=st1.*s1;

d2=st2.*(-s1);%相移180 figure(2);

subplot(4,1,1); plot(t,d1);

title('st1*s1');

页眉内容

共享知识 分享快乐

subplot(4,1,2); plot(t,d2);

title('st2*s2'); e_dpsk=d1+d2; subplot(4,1,3); plot(t,e_dpsk);

title('调制后波形'); noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声 subplot(4,1,4); plot(t,dpsk);

title('加噪声信号');

%%%%%%%%%%%%% 与载波相乘 %%%%%%%%%%%%%%%%%%%%% dpsk=dpsk.*sin(2*pi*fc*t);%与载波相乘 figure

subplot(4,1,1); plot(t,dpsk);

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

%%%%%%%%%%%%% 低通滤波 %%%%%%%%%%%%%%%%%%%%%%%% [f,af] = T2F(t,dpsk);%通过低通滤波器 [t,dpsk] = lpf(f,af,B); subplot(4,1,2); 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(4,1,3); 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(4,1,4); plot(t,st);

title('码反变换后波形'); axis([0,5,-1,2]);

2 差分相干法 DPSK1.m

clear all close all

i=10; %码元的个数 j=5000; fc=4; fm=i/5; B=2*fm;

t=linspace(0,5,j); % 将0-5区间平均分为j份

%%%%%%%%%%%%% 产生基带信号 %%%%%%%%%%%%%%%% a =round(rand(1,i)); %产生10个随机码,记为a st1=t;

for n=1:10 if a(n)<1;

页眉内容

共享知识 分享快乐

for m=j/i*(n-1)+1:j/i*n % j/i为每个码元的 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('绝对码'); 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(412); plot(t,st1); title('相对码');

页眉内容

共享知识 分享快乐

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(413) plot(t,st2)

title('相对码的反码') axis([0 5 -1 2])

%%%%%%%%%%%% 载波信号 %%%%%%%%%%%%%%%%% s1=sin(2*pi*fc*t); subplot(414); plot(s1);

title('载波信号');

%%%%%%%%%%%%%% 调制 %%%%%%%%%%%%%%%%%%%%%% d1=st1.*s1;

d2=st2.*(-s1);%相移180 figure(2);

subplot(4,1,1); plot(t,d1);

title('st1*s1'); subplot(4,1,2); plot(t,d2);

title('st2*s2'); e_dpsk=d1+d2; subplot(4,1,3); plot(t,e_dpsk);

title('调制后波形'); noise=rand(1,j);

dpsk=e_dpsk+0.5*noise;%加入噪声 subplot(4,1,4); plot(t,dpsk);

title('加噪声信号');

%%%%%%%%%%%% 延迟单元 %%%%%%%%%%%%%%%%%%%% if dpsk(65)<0

dpsk_delay(1:j/i)=dpsk(1:j/i); else

dpsk_delay(1:j/i)=-dpsk(1:j/i) end

dpsk_delay(j/i+1:j)=dpsk(1:j-j/i);

页眉内容

共享知识 分享快乐

%%%%%%%%%%%% 与未延迟信号相乘 %%%%%%%%%%%%%% dpsk=dpsk.*dpsk_delay; figure

subplot(3,1,1) plot(t,dpsk);

title('延迟相乘后波形');

%%%%%%%%%%%%% 低通滤波 %%%%%%%%%%%%%%%%%%%%%%%% [f,af] = T2F(t,dpsk);%通过低通滤波器 [t,dpsk] = lpf(f,af,B); subplot(3,1,2); 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)=1; end else

for j=m*500+1:(m+1)*500; st(m+1)=1; dpsk(1,j)=0; end end end

subplot(3,1,3); plot(t,dpsk); axis([0,5,-1,2]);

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

页眉内容

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务