BPSK DPSK调制.docx

上传人:b****4 文档编号:24470197 上传时间:2023-05-27 格式:DOCX 页数:29 大小:319.63KB
下载 相关 举报
BPSK DPSK调制.docx_第1页
第1页 / 共29页
BPSK DPSK调制.docx_第2页
第2页 / 共29页
BPSK DPSK调制.docx_第3页
第3页 / 共29页
BPSK DPSK调制.docx_第4页
第4页 / 共29页
BPSK DPSK调制.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

BPSK DPSK调制.docx

《BPSK DPSK调制.docx》由会员分享,可在线阅读,更多相关《BPSK DPSK调制.docx(29页珍藏版)》请在冰豆网上搜索。

BPSK DPSK调制.docx

BPSKDPSK调制

卫星通信仿真作业BPSK调制/解调系统及性能分析

1、实验原理

1.1BPSK调制原理

BPSK(binaryphaseshiftkeying)二进制移相键控,作为一种数字调制方式,用已调信号载波的0°和180°分别表示二进制数字基带信号的1和0。

BPSK信号的时域表达式为

其中的

为双极性码,取值为±1。

这样的话,当发送的码元为+1时,输出波形的初始相位为0;而当发送码元为-1时,输出波形的初始相位为180°。

1.2BPSK解调原理

BPSK解调有两种方式,一种是相干解调,一种是非相干解调,即差分解调。

1.2.1相干解调

相干解调的基本原理是将BPSK调制信号直接与载波进行相乘,然后通过低通滤波器进行滤波,最终进行抽样判决即可。

1.2.2差分解调

差分解调不能直接应用与BPSK,它是对DPSK调制的一种解调方式。

而要进行差分解调,首先对输入信源进行DPSK调制。

要进行DPSK调制,首先要对输入码元进行码形变换,然后对变换后的码元进行BPSK调制即可。

而对输入码元进行码形变换就是将输入的绝对码变换为相对码。

它们之间的关系可由公式导出

其中

为原信源码元,

为差分编码后的变换码元。

差分解调的过程是将DPSK调制后的波形与它做一个码元宽度时间延迟后的波形进行相乘,然后通过低通滤波器进行滤波,最终进行抽样判决。

1.3BPSK调制解调系统整体框图

1.4DPSK调制解调系统整体框图

2、实验过程

2.1BPSK系统的调制/解调全过程

2.1.1参数设定

在对BPSK系统调制解调全过程的仿真时,设定如下参数:

码元长度:

10

采样率:

100倍码元速率,也就是一个码元采样100个点

信号比:

7dB(也就是噪声的增益为0.1)

波形成型滤波器参数:

使用升余弦滤波器,滚降系数0.5。

低通滤波器参数:

5阶椭圆滤波器,通带最大衰减为0.5dB,阻带衰减为60dB,截止频率为800Hz。

以下是各个过程的波形:

2.1.2产生长度为10的随机二进制信源序列

序列的波形与频谱图下面两图所示

2.1.2通过升余弦滤波器,产生适合在信道中传输的波形,如下图所示

2.1.3产生一个频率为4800Hz的载波信号,如下图所示

2.1.4在不加噪声的情况下,码元进行BPSK调制后的波形以及调制后波形的频谱特性

2.1.5产生高斯白噪声,高斯白噪声的时序和频域波形如下图

2.1.6调制波形加上白噪声后的时域和频域波形如下图

2.1.7相干解调的过程

先将调制波形与载波进行相乘,结果的时域和频域波形如下

2.1.8低通滤波器的冲激响应已经频率响应如下图所示

2.1.9相干解调后的波形通过低通滤波器后的波形如下图所示

2.1.10最终进行抽样判决后,波形与原码元序列波形对比如下图所示

2.2DPSK系统的调制/解调全过程

参数设定和BPSK相同。

以下为各个过程的波形

2.2.1首先对码元进行波形变换,变换后的波形与原码元对比如下图所示。

注意,这里将相对码的第一个码元设置为“1”。

2.2.2对码形变换后的码元通过波形成型滤波器后的波形如下图

2.2.3对上面的码字进行BPSK调制,即对原码字进行DPSK调制后的时域和频域波形如下图

2.2.4对调制波形加扰后的时域和频域波形如下

2.2.5非相干解调将调制波形延迟一个码元时间,然后相乘,过程的三种波形以及相乘后波形的频谱如下图所示

2.2.6差分解调后的波形通过低通滤波器后的波形如下图

2.2.7最终经过抽样判决后的码元序列和原信源码元序列如下图

2.3对误码率分析

2.3.1参数设定

在对误码率进行分析的时候,由于要检测误码率性能,因此在参数设定上和之前相比降低了采样率,增加了码元长度。

码元长度:

10000

采样率:

16倍码元速率,也就是一个码元采样16个点

信号比:

从3dB到9dB,步长为0.5dB

通过对相干解调和非相干解调误码率分析后的误码率曲线如下

3、实验结论

3.1解调的性能与滤波器的参数选择有很大的关系。

3.2相干解调的性能好与差分解调的性能。

3.3实际计算中,由于码元长度的限制,误码率的计算可能不够精确,而由于码元长度的限制受制于计算机的性能和内存的大小,因此不能做到太大。

4.附录:

源代码

4.1BPSK/DPSK调制过程

clc

clear

clf

i=0;

%参数设定

fs=4800*50;%采样频率

fc=4800;%载波频率

t=0:

0.01:

9.99;

n=t*100;%1000个采样点

N=1000;%N=1000

%产生比特信号

x=round(rand(1,10))

m=x(ceil(t+0.001));

i=i+1;

figure(i);

plot(t,m,'.-');

title('产生长度为10的随机二进制比特序列');

xlabel('码元序号');

ylabel('码元值');

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

gridon;

 

%码元的频谱

f=n*fs/N;

m_f=fft(m,N);

i=i+1;

figure(i);

stem(f(1:

N/10),abs(m_f(1:

N/10)));

title('信源码元的频谱')

xlabel('频率/Hz');

ylabel('幅度');

%波形成型

b2=rcosfir(0.5,10,100,1);

[h,w]=freqz(b2,1,N);

m_f=fft(m,N);

m1=m_f.*abs(h');

m2=ifft(m1);

m2=real(m2)/100;

i=i+1;

figure(i);

plot(t,m2)

axis([0,10,-0.5,1.5]);

gridon;

title('码元经过波形成型滤波器')

%产生载波信号

tc=n/fs;%采样点对于采样时刻

carry=sin(2*pi*fc*tc);

i=i+1;

figure(i);

plot(t,carry);

title('产生频率是4800Hz,初相是0的载波');

xlabel('码元序号');

ylabel('载波幅度');

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

gridon;

%BPSK调制

bpsk=carry.*(m2*2-1);%如果码元是1,则波形即为载波,如果码元是0,则波形是反向,因此*(-1)

i=i+1;

figure(i);

subplot(2,1,1)

plot(t,m,'.-');

title('产生长度为10的随机二进制比特序列');

xlabel('码元序号');

ylabel('码元值');

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

gridon;

subplot(2,1,2)

plot(t,bpsk);

title('不加噪声BPSK调制波形');

xlabel('码元序号');

ylabel('调制波形幅度');

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

gridon;

%BPSK调制波形频谱

bpsk_f=fft(bpsk,N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(bpsk_f(1:

N/20)));

title('BPSK调制波形频谱')

xlabel('频率/Hz');

ylabel('幅度')

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%产生高斯白噪声

noise=0.1*randn(1,1000);

i=i+1;

figure(i);

plot(t,noise);

title('高斯白噪声');

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

gridon;

%高斯白噪声频谱

noise_f=fft(noise,N);

i=i+1;

figure(i);

stem(f(1:

N/1),abs(noise_f(1:

N/1)));

title('高斯白噪声频谱')

xlabel('频率/Hz');

ylabel('幅度')

 

%BPSK加噪声波形

bpsk_n=bpsk+noise;

i=i+1;

figure(i);

plot(t,bpsk_n);

title('加高斯白噪声后的BPSK调制波形');

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

gridon;

%BPSK加噪声波形频谱

bpsk_nf=fft(bpsk_n,N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(bpsk_nf(1:

N/20)));

title('BPSK加噪声波形频谱')

xlabel('频率/Hz');

ylabel('幅度')

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%相干解调

bpsk_1=bpsk_n.*carry;%将调制波形先和载波相乘

i=i+1;

figure(i);

plot(t,bpsk_1);

title('调制波形和载波相乘');

xlabel('码元序号');

ylabel('幅度');

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

gridon;

%调整波形与载波相乘后的频域

bpsk_1f=fft(bpsk_1,N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(bpsk_1f(1:

N/20)));

title('调制波形与载波相乘的频域波形');

xlabel('频率(Hz)');

ylabel('幅度');

%低通滤波

%配置一个低通滤波器,5阶,通带最大衰减为0.5dB,阻带衰减为60dB,截至频率为800Hz。

[B_lp,A_lp]=ellip(5,0.5,60,800*2/100000);

%低通滤波器的冲激响应

i=i+1;

figure(i);;

dimpulse(B_lp,A_lp);

title('低通滤波器的冲激响应');

axis([0,1000,-0.02,0.02]);

%低通滤波器的频率响应

i=i+1;

figure(i);;

w=0:

0.1:

2*pi*0.3;

freqz(B_lp,A_lp,w);

title('低通滤波器的频率响应');

%相干解调通过低通滤波器

bpsk_2=filter(B_lp,A_lp,bpsk_1);

i=i+1;

figure(i);

plot(t,bpsk_2);

title('相干解调通过低通滤波器');

xlabel('码元序号');

ylabel('幅度');

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

gridon;

%抽样判决

forj=1:

10

if(bpsk_2(j*100)>0)

y(j)=1;

else

y(j)=0;

end

end

n=y(ceil(t+0.001));

i=i+1;

figure(i);

subplot(2,1,1)

plot(t,m,'.-');

title('信源序列');

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

gridon;

subplot(2,1,2)

plot(t,n,'.-');

title('抽样判决后序列');

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

gridon;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%差分解调

%先进行码形变换,把绝对码变换为相对码

x1

(1)=1;%相对码先对第一个码元定义为‘1’

forj=1:

10

%x1(i)=mod((x1(i-1)+x(i)),2);

x1(j+1)=mod((x1(j)+x(j)+1),2);%差分编码

end

t1=0:

0.01:

10.99;

m1=x1(ceil(t1+0.001));

i=i+1;

figure(i);

subplot(2,1,1)

plot(t,m,'.-');

title('原码元(绝对码)')

axis([-1,10,-1,2]);

gridon;

subplot(2,1,2)

plot(t1-1,m1,'.-');

title('差分编码(相对码)')

axis([-1,10,-1,2]);

gridon;

%波形成型

%波形成型

b2=rcosfir(0.5,10,100,1);

[h,w]=freqz(b2,1,N+100);

m1_f=fft(m1,N+100);

m11=m1_f.*abs(h');

m21=ifft(m11);

m21=real(m21)/100;

i=i+1;

figure(i);

plot(t1,m21)

axis([0,10,-0.5,1.5]);

gridon;

title('差分编码成形')

%对相对码进行BPSK调制,也就是对原码元进行DPSK调制

dpsk=[carry(1:

100),carry].*(m21*2-1);

i=i+1;

figure(i);

plot(t1-1,dpsk);

title('DPSK调制波形');

axis([-1,10,-2,2]);

gridon;

%DPSK调制波形频谱

dpsk_f=fft(dpsk,N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(dpsk_f(1:

N/20)));

title('DPSK调制波形频谱')

xlabel('频率/Hz');

ylabel('幅度')

%DPSK调制后加噪声

noise1=0.1*randn(1,1100);

dpsk_n=dpsk+noise1;

i=i+1;

figure(i);

plot(t1-1,dpsk_n);

title('加高斯白噪声后的DPSK调制波形');

axis([-1,10,-2,2]);

gridon;

%DPSK加噪声波形频谱

dpsk_nf=fft(dpsk_n,N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(dpsk_nf(1:

N/20)));

title('BPSK加噪声波形频谱')

xlabel('频率/Hz');

ylabel('幅度')

%对DPSK调制波形进行差分解调

dpsk_1=dpsk_n;%原有的DPSK调制波形

dpsk_2=[dpsk_n(101:

1100),zeros(1,100)];%差分移位的DPSK调制波形

i=i+1;

figure(i);

subplot(3,1,1)

plot(t1,dpsk_1);

title('原DPSK调制波形');

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

gridon;

subplot(3,1,2)

plot(t1,dpsk_2);

title('移位DPSK调制波形');

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

gridon;

dpsk_3=dpsk_1.*dpsk_2;%两个DPSK调制波形相乘

subplot(3,1,3)

plot(t1,dpsk_3);

title('相乘后波形');

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

gridon;

%差分解调波形的频域

%f=n*fs/N;

dpsk_3f=fft(dpsk_3(1:

1000),N);

i=i+1;

figure(i);

stem(f(1:

N/20),abs(dpsk_3f(1:

N/20)));

title('差分解调波形的频域');

xlabel('频率(Hz)');

ylabel('幅度');

%低通滤波

%配置一个低通滤波器,5阶,通带最大衰减为0.5dB,阻带衰减为60dB,截至频率为800Hz。

[B_lp,A_lp]=ellip(5,0.5,60,800*2/100000);

dpsk_4=filter(B_lp,A_lp,dpsk_3(1:

1000));

i=i+1;

figure(i);

plot(t,dpsk_4);

title('差分解调通过低通滤波器');

xlabel('码元序号');

ylabel('幅度');

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

gridon;

%抽样判决

forj=1:

10

if(dpsk_4(j*100)>0)

y1(j)=1;

else

y1(j)=0;

end

end

n1=y1(ceil(t+0.001));

i=i+1;

figure(i);

subplot(2,1,1)

plot(t,m,'.-');

title('信源序列');

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

gridon;

subplot(2,1,2)

plot(t,n1,'.-');

title('差分解调后序列');

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

gridon;

 

4.2误码率分析过程

clear

%参数设定

fc=4800;%载波频率

rb=2400;%码元速率

fs2rb=16;%采样频率与码元速率的比值

fs=fs2rb*rb;%采样频率

M_num=100000;%码元长度

N_num=fs2rb*M_num;%采样点数

t=0:

1/fs2rb:

M_num-1/fs2rb;%码元的时间上的定义,一个时间单位对应一个码元

n=fs2rb*t;%对应采样点

pe1=[];

pe1th=[];

pe2=[];

pe2th=[];

 

%产生码元

Mcode=2*round(rand(1,M_num))-1;%产生一个随机的码元序列M,取值为正负1,非归零码

Msam=Mcode(ceil(t+1/fs2rb));%码元序列M对应的采样值

%figure;

%stem(Mcode);

%title('码元序列M');

%先进行码形变换,把绝对码变换为相对码

Mshift

(1)=1;%相对码先对第一个码元定义为‘1’

forj=1:

M_num

Mshift(j+1)=abs(Mshift(j)+Mcode(j))-1;%差分编码

end

t1=0:

1/fs2rb:

M_num+1-1/fs2rb;

Mshiftsam=Mshift(ceil(t1+0.1/fs2rb));

%产生载波信号

phase=2*pi*fc/rb*t;%载波对应的相位

carry=cos(phase);%载波

%figure

%plot(t,carry);

%title('载频');

forr1_db=3:

0.5:

9

%高斯白噪声

NOISE=1/sqrt(2*10^(r1_db/10));%噪声增益

noise=NOISE*randn(1,N_num);%产生噪声

 

%BPSK调制

bpsk=Msam.*carry;%BPSK调制

bpsk_n=bpsk+noise;%通过信道加噪声

%figure

%plot(t,bpsk_n);

%相干解调

bpsk1=bpsk_n.*carry;%调制波形与载频相乘

%低通滤波器设计

f2=[00.1250.41];w2=[10.950.10];

b2=fir2(30,f2,w2);

[h2,w2]=freqz(b2,1,512);

 

bpsk2=filter(b2,1,bpsk1);%低通滤波

%判决

fori=1:

M_num

if(bpsk2(i*fs2rb)>0)

Mcode1(i)=1;

else

Mcode1(i)=-1;

end

end

error1=sum(abs(Mcode1-Mcode))/2;

pe1=[pe1,error1/M_num];

pe1th=[pe1th,0.5*erfc(sqrt(2*10^(r1_db/10)))];

%差分解调

%2DPSK调制

dpsk=[carry(1:

fs2rb),carry].*Mshiftsam;

%DPSK波形加噪声

noise1=NOISE*randn(1,N_num+fs2rb);

dpsk_n=dpsk+noise1;

%2DPSK调制波形与延迟波形相乘

dpsk_1=[dpsk_n(fs2rb+1:

N_num+fs2rb),zeros(1,fs2rb)];%DPSK调制波形延迟一个码元间隔

dpsk1=dpsk_1.*dpsk_n;

dpsk1=dpsk1(1:

N_num);

%低通滤波

dpsk2=filter(b2,1,dpsk1);

%判决

fori=1:

M_num

if(dpsk2(i*fs2rb)>0)

Mcode2(i)=1;

else

Mcode2(i)=-1;

end

end

error2=sum(abs(Mcode2-Mcode))/2

pe2=[pe2,error2/M_num];

pe2th=[pe2th,0.5*exp(-10^(r1_db/10))];

end

r1_db=[3:

0.5:

9];

figure;

semilogy(r1_db,pe1,'-x');

holdon;

semilogy(r1_db,pe1th,'-o')

legend('实际','理论')

title('相干解调误码率分析');

xlabel('SNR/dB');

ylabel('Pe');

figure;

semilogy(r1_db,pe2,'-x');

holdon;

semilogy(r1_db,pe2th,'-o')

legend('实际','理论')

title('差分解调误码率分析');

xlabel('SNR/dB');

ylabel('Pe');

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1