1、 2psk调制通信系统一,设计任务与要求课程设计需要运用MATLAB编程实现2PSK调制解调过程,并且输出其调制及解调过程中的波形,讨论其调制和解调效果。二,实验基本原理数字调制技术的两种方法:利用模拟调制的方法去实现数字式调制,即把数字调制看成是模拟调制的一个特例,把数字基带信号当做模拟信号的特殊情况处理。利用数字信号的离散取值特点通过开关键控载波,从而实现数字调制。这种方法通常称为键控法,比如对载波的相位进行键控,便可获得相移键控(2PSK)基本的调制方式。相移键控是利用载波的相位变化来传递数字信息,而振幅和频率保持不变。在2PSK中,通常用初始相位0和分别表示二进制“1”和“0”。2ps
2、k调制器可以采用相乘器,也可以采用相位选择器就模拟调制法而言,与产生2ASK信号的方法比较,只是对s(t)要求不同,因此2PSK信号可以看作是双极性基带信号作用下的DSB调幅信号。而就键控法来说,用数字基带信号s(t)控制开关电路,选择不同相位的载波输出,这时s(t)为单极性NRZ或双极性NRZ脉冲序列信号均可。2PSK信号属于DSB信号。本次实验采用的的模拟相乘法即通过载波和双极性不归零码的相乘得到2psk信号,则2psk信号产生的调制原理框图和时域表达式如下: 图1时域表达式 图2调制原理框图2psk典型波形如下:三,仿真方案和参数设置参数设置如下所示:每码元采样点数Fn=500;码元数m
3、=50;载波频率fc=2;码元速率Rm=1;加入的白噪声的信噪比snr分别为10,30,50MATLAB产生2psk信号的程序框图如下:四,实验结果与分析产生的双极性非归零码波形,2psk信号波形和频谱如下;分析如下:当二进制符号为“0”时,调制信号相位差为0,而当二进制符号为“1”时,调制信号相位差为。2PSK信号的频谱由连续谱和离散谱构成。当加入白噪声后,2psk信号波形和频谱如下:由图可知加入白噪声后,2psk信号发生了失真,随着信噪比的增加,2psk失真越来越小。这是因为信噪比越大,2psk信号的平均功率越大,信号越强,而噪声平均功率越小,噪声信号越弱,因此失真越小。由于白噪声没有频谱
4、,因此无论信噪比如何变化,其最终的频谱都没发生任何变化,保持原样。五,源程序代码产生双极性非归零码和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
5、,M); %随机产生单极性非归零码 n=length(find(nrz=1);endp = nrz=0; %找出nrz中0的位置nrz(p)=-1; %将0赋为-1dnrz=nrz(ones(1,L),:); %将nrz进行列拓展,并且每个元素重复L次dnrz=reshape(dnrz,1,L*M); %重排成1*(L*M)的矩阵endbpsk=dnrz.*fc; %产生2psk信号End对信号进行FFT的子函数:function X,f=fftseq(x,fs)% 本函数的功能为完成fft变换% x为输入信号% X为x的傅里叶变换L=length(x); %求出信号x的长度N=2(nextp
6、ow2(L); %N为大于等于n的二的整数次幂的数中最小的一个,fft按基二算法X1=fft(x,N); %计算x的N点离散傅里叶变换dftX=fftshift(X1);X=X/fs;df=fs/N; %频域分辨率f=0:df:df*(N-1)-fs/2;主函数如下:clear all; close all;Fn=500; %Fn每码元采样点数为500m=50; %m码元数为50fc=2; %fc载波频率为2Rm=1; %Rm码元速率为1Tn=1/Rm; %Tn码元间隔tb=Tn/Fn; %tb时域分辨率N=Fn*m; %N总采样点数T=N*tb; %计算时域上时间总长度Tt=linspace
7、(-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信号的波形pl
8、ot(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;
9、%Fawgn1为调制信号的频谱 snr2=30; %增加snr=30的白噪声awgn2=awgn(bpsk,snr2);Sawgn2,f2=fftseq(awgn2,Fn); Fawgn2=Sawgn2; %Fawgn2为调制信号的频谱 snr3=50; %增加snr=50的白噪声awgn3=awgn(bpsk,snr3);Sawgn3,f2=fftseq(awgn3,Fn);Fawgn3=Sawgn3; %Fawgn3为调制信号的频谱 figure(2);subplot(321); %画出snr=10时2psk调制信号的波形plot(t,awgn1);title(snr=10时2psk调制信
10、号);xlabel(T/s);ylabel(幅度);axis(0,10,-1.5,1.5);grid on;subplot(322); %画出snr=10时2psk调制信号的频谱plot(f2,Fawgn1);title(snr=10时2psk调制信号频谱);xlabel(F/hz);ylabel(s/db);axis(-10,10,0,5.0);set(gca,xtick,-10:1:10);grid on;subplot(323); %画出snr=30时2psk调制信号的波形plot(t,awgn2);title(snr=30时2psk调制信号);xlabel(T/s);ylabel(幅度
11、);axis(0,10,-1.5,1.5);grid on;subplot(324); %画出snr=30时2psk调制信号的频谱plot(f2,Fawgn2);title(snr=30时2psk调制信号频谱);xlabel(F/hz);ylabel(s/db);axis(-10,10,0,5.0);set(gca,xtick,-10:1:10);grid on;subplot(325); %画出snr=50时2psk调制信号的波形plot(t,awgn3);title(snr=50时2psk调制信号);xlabel(T/s);ylabel(幅度);axis(0,10,-1.5,1.5);gr
12、id on;subplot(326); %画出snr=50时2psk调制信号的频谱plot(f2,Fawgn3);title(snr=50时2psk调制信号频谱);xlabel(F/hz);ylabel(s/db);axis(-10,10,0,5.0);set(gca,xtick,-10:1:10);grid on;六,心得与体会基于MATLAB的数字调制信号仿真设计让我获益颇深。更加深入的掌握了MATLAB软件的使用,了解了数字调制的基本原理和主要过程,进一步学习了信号的调制的有关内容,特别是对于2psk调制信号的理解。虽然这次设计有许多的不懂,但通过查阅课本和相关书籍还是拓宽了知识,增长了见识,收获很大。