2psk调制通信系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2psk 调制通信系统
一,设计任务与要求
课程设计需要运用MA TLAB 编程实现2PSK 调制解调过程,并且输出其调制及解调过程中的波形,讨论其调制和解调效果。
二,实验基本原理
数字调制技术的两种方法:
①利用模拟调制的方法去实现数字式调制,即把数字调制看成是模拟调制的一个特例,把数字基带信号当做模拟信号的特殊情况处理。
②利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。这种方法通常称为键控法,比如对载波的相位进行键控,便可获得相移键控(2PSK )基本的调制方式。相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK 中,通常用初始相位0和π分别表示二进制“1”和“0”。
2psk 调制器可以采用相乘器,也可以采用相位选择器就模拟调制法而言,与产生2ASK 信号的方法比较,只是对s(t)要求不同,因此2PSK 信号可以看作是双极性基带信号作用下的DSB 调幅信号。而就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ 或双极性NRZ 脉冲序列信号均可。2PSK 信号属于DSB 信号。 本次实验采用的的模拟相乘法即通过载波和双极性不归零码的相乘得到2psk 信号,则2psk 信号产生的调制原理框图和时域表达式如下:
⎩⎨
⎧-±=p t P
t t psk e -,cos ,cos cos 2_概率为概率为ωωω 图1时域表达式
图2调制原理框图 2psk 典型波形如下:
三,仿真方案和参数设置
参数设置如下所示:
每码元采样点数Fn=500;
码元数m=50;
载波频率fc=2;
码元速率Rm=1;
加入的白噪声的信噪比snr分别为10,30,50 MATLAB产生2psk信号的程序框图如下:
四,实验结果与分析
产生的双极性非归零码波形,2psk信号波形和频谱如下;
T/s
幅度
2psk 调制信号
T/s
幅度
F/hz
s /d b
分析如下:
当二进制符号为“0”时,调制信号相位差为0,而当二进制符号为“1”时,调制信号相位差为π。2PSK 信号的频谱由连续谱和离散谱构成。 当加入白噪声后,2psk 信号波形和频谱如下:
T/s
幅度
F/hz
s /d b
snr=30时2psk 调制信号
T/s
幅
度
snr=30时2psk 调制信号频谱
F/hz
s /d b
snr=50时2psk 调制信号
T/s
幅
度
snr=50时2psk 调制信号频谱
F/hz
s /d b
由图可知加入白噪声后,2psk 信号发生了失真,随着信噪比的增加,2psk 失真越来越小。这是因为信噪比越大,2psk 信号的平均功率越大,信号越强,而噪声平均功率越小,噪声信号越弱,因此失真越小。由于白噪声没有频谱,因此无论信噪比如何变化,其最终的频谱都没发生任何变化,保持原样。
五,源程序代码
产生双极性非归零码和2psk信号的子函数:
function [dnrz,bpsk] = fbpsk(L,M,f)
% 产生双极型归零码
% L为每个码元重复次数,则码元间隔Ts
% M为码元数目,f为载波频率
t=0:1/(L-1):1; %保证载波与码元时域分辨率相同
fc=[];
n=1; %赋初值
for ii=1:M %将fc进行列重复拓展
fc1=sin(2*pi*f*t); %载波
fc=[fc fc1]; %按照列方向合并为一个矩阵
while rem(n,2)~=0; %保证仿真时有偶数个1
nrz=round(rand(1,M)); %随机产生单极性非归零码
n=length(find(nrz==1));
end
p = nrz==0; %找出nrz中0的位置
nrz(p)=-1; %将0赋为-1
dnrz=nrz(ones(1,L),:); %将nrz进行列拓展,并且每个元素重复L次
dnrz=reshape(dnrz,1,L*M); %重排成1*(L*M)的矩阵
end
bpsk=dnrz.*fc; %产生2psk信号
End
对信号进行FFT的子函数:
function [X,f]=fftseq(x,fs)
% 本函数的功能为完成fft变换
% x为输入信号
% X为x的傅里叶变换
L=length(x); %求出信号x的长度
N=2^(nextpow2(L)); %N为大于等于n的二的整数次幂的数中最小的一个,fft按基二算法X1=fft(x,N); %计算x的N点离散傅里叶变换dft
X=fftshift(X1);
X=X/fs;
df=fs/N; %频域分辨率
f=[0:df:df*(N-1)]-fs/2;
主函数如下:
clear all;
close all;
Fn=500; %Fn每码元采样点数为500
m=50; %m码元数为50
fc=2; %fc载波频率为2
Rm=1; %Rm码元速率为1
Tn=1/Rm; %Tn码元间隔
tb=Tn/Fn; %tb时域分辨率
N=Fn*m; %N总采样点数
T=N*tb; %计算时域上时间总长度T
t=linspace(-T/2,T/2,N); %产生时间取样点矩阵,在T长度内等分为N份[dnrz,bpsk]=fbpsk(Fn,m,fc); %调用子函数,产生dnrz和dpsk信号
[Sbpsk,f1]=fftseq(bpsk,Fn); %Fbpsk为信号频谱
Fbpsk=Sbpsk;
figure(1);
subplot(221); %画出双极性不归零码的波形
plot(t,dnrz);
title('双极性不归零码');
xlabel('T/s');ylabel('幅度');
axis([0,10,-1.5,1.5]);
set(gca,'xtick',[0:0.5:10]);
grid on;
subplot(223); %画出2psk信号的波形
plot(t,bpsk);
title('2psk调制信号');
xlabel('T/s');ylabel('幅度');
axis([0,10,-1.5,1.5])
set(gca,'xtick',[0:0.5:10]);
grid on;
subplot(222); %画出2psk信号的频谱
plot(f1,Fbpsk);
title('2psk调制信号频谱');
xlabel('F/hz');ylabel('s/db');
axis([-10,10,0,5.0]);
grid on;
snr1=10; %增加snr=10的白噪声
awgn1=awgn(bpsk,snr1);
[Sawgn1,f2]=fftseq(awgn1,Fn);
Fawgn1=Sawgn1; %Fawgn1为调制信号的频谱