设计五2FSK调制解调系统一、设计目的1.掌握2FSK信号的调制解调原理及MATLAB编程实现方法。2.利用Simulink设计2FSK信号的调制解调系统。3.画出2FSK信号的时域波形和频谱图。二、设计原理1.2FSK信号的调制解调原理数字移频键控是用载波的频率来传送数字消息,或者说用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于载频1,而符号“0”对应于载频2(与1不同的另一载频)的已调波形,而且1与2之间的改变是瞬间完成的。从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现,如图5.1所示。图5.12FSK信号的调制根据以上对2FSK信号的调制原理的分析,已调信号的数字表达式可以表示为)cos()()cos()()(210nnsnnnsntnTtgatnTtgate(5.1)其中,)(tg是单个矩形脉冲,脉宽为sT,且011nPaP概率为概率为 011nPaP概率为概率为 2FSK信号的常用解调方法采用如图5.2所示的非相干检测法和相干检测法。这里的取样判决器是判定哪一个输入样值大,此时可以不专门设置门限电平。带通滤波器带通滤波器包络检波器取样判决器包络检波器)(tyi输入12)(1ty)(2ty)(1tv)(2tv取样脉冲输出)('ts模拟调频器)(ts)(0te(a)模拟法1f2f载波载波S()st开关0()et(b)键控法(a)非相干方式带通滤波器带通滤波器乘法器取样判决器乘法器)(tyi输入12)(1ty)(2ty)(1tv)(2tv取样脉冲低通滤波器低通滤波器)(1tz)(2tzt1cost2cos(b)相干方式图5.22FSK信号的解调2FSK调制属于非线性调制,其频谱特性的研究常用把2FSK信号看成是两个2ASK信号相叠加的方法。2FSK信号的功率谱密度为:211211)()(sin)()(sin[16)(sssssETffTffTffTffTfP])()(sin)()(sin222222ssssTffTffTffTff)]()()()([1612211ffffffff(5.2)传输2FSK信号所需频带约为sFSKfffB2122(5.3)【例5-1】用MATLAB产生独立等概的二进制信源,画出2FSK信号的波形及其功率谱。解首先产生随机的二进制数字基带信号,然后根据2FSK信号的表达式产生二进制数字调制信号,最后通过FFT变换求解调制信号的功率谱。源程序如下:A=1;%调制信号幅度fc=2;%载波频率N_sample=8;%每码元的采样点数N=500;%码元数目Ts=1;%采样间隔dt=Ts/fc/N_sample;%波形采样间隔t=0:dt:N*Ts-dt;%定义时间序列L=length(t);%计算时间序列长度%产生二进制信源d=sign(randn(1,N));dd=sigexpand((d+1)/2,fc*N_sample);gt=ones(1,fc*N_sample);d_NRZ=conv(dd,gt);[f,d_NRZf]=T2F(t,d_NRZ(1:L));%数字基带信号的傅里叶变换sd_2fsk=2*d_NRZ-1;%双极性基带信号s_2fsk=A*cos(2*pi*fc*t+2*pi*sd_2fsk(1:L).*t);%产生2FSK信号[f,s_2fskf]=T2F(t,s_2fsk);%2FSK信号的傅里叶变换figure(1)subplot(2,2,1);plot(t,d_NRZ(1:L));axis([0,10,0,1.2]);xlabel('(a)输入信号');subplot(2,2,2);plot(f,10*log10(abs(d_NRZf).^2/Ts));axis([-2,2,-40,40]);xlabel('(b)输入信号功率谱密度');subplot(2,2,3);plot(t,s_2fsk);axis([0,10,-1.2,1.2]);xlabel('(c)2FSK信号');subplot(2,2,4);plot(f,10*log10(abs(s_2fskf).^2/Ts));axis([-fc-4,fc+4,-40,40]);xlabel('(d)2FSK信号功率谱密度');%---------------------------------------------------------------------------------------------------------------function[out]=sigexpand(d,M)%将输入的序列扩展成间隔为N-1个0的序列N=length(d);out=zeros(M,N);out(1,:)=d;out=reshape(out,1,M*N);%---------------------------------------------------------------------------------------------------------------function[f,sf]=T2F(t,st)%利用FFT对信号进行傅里叶变换%t,st分别为输入时间和信号%f,sf分别为输出频率和信号频谱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(sf);程序运行结果如图5.3所示。051000.51(a)输入信号-2-1012-40-2002040(b)输入信号功率谱密度0510-1-0.500.51(c)2FSK信号-505-40-2002040(d)2FSK信号功率谱密度图5.32FSK信号的波形及其频谱2.MATLAB函数在MATLAB中,fskmod函数和fskdemod函数分别实现FSK信号的调制和FSK信号的非相干解调,awgn函数实现在信号中加入高斯白噪声,symerr函数实现错误符号数的统计和误符号率的计算。(1)fskmod函数格式:y=fskmod(x,M,freq_sep,nsamp)y=fskmod(x,M,freq_sep,nsamp,Fs)其中,x是消息信号;M是消息的符号数,必须是2的整数次幂,消息信号是0~M-1之间的整数;freq_sep是两载波频率之间的频率间隔,单位为Hz;nsamp是输出信号y中每符号的采样数,必须是大于1的正整数;Fs是采样频率,freq_sep和M必须满足(M-1)*freq_sep=Fs。(2)fskdemod函数格式:z=fskdemod(y,M,freq_sep,nsamp)z=fskdemod(y,M,freq_sep,nsamp,Fs)其中,y是已调信号;其余参数与fskmod函数中的一样。(3)awgn函数格式:y=awgn(x,snr)y=awgn(x,snr,sigpower)y=awgn(…,powertype)其中,x是信号;snr是信噪比,单位为dB;sigpower是信号功率;powertype指定信噪比snr的单位。(4)symerr函数格式:[number,ratio]=synerr(x,y)其中,x、y是待比较信号,二元序列;number是x、y对应元素比较后不相同的符号个数;ratio是误符号率。3.Simulink模块在Simulink模块库中,用于实现FSK信号调制解调的模块分别是“M-FSKModulatorBaseband”和“M-FSKDemodulatorBaseband”,图形及参数设置如图5.4所示。图5.4FSK信号调制解调模块及参数设置三、设计内容利用Simulink中的“M-FSKModulatorBaseband”模块和“M-FSKDemodulatorBaseband”模块建立2FSK调制解调系统模型,并观察调制、解调前后的波形,计算差错率。解:仿真模块为:仿真结果:上图中第一张图是调制前原始基带信号的波形,第二张图是调制后通带信号的波形,第三张是解调信号的波形图。设计六2PSK和2DPSK调制解调系统一、设计目的1.掌握2PSK和2DPSK调制解调原理及MATLAB编程实现方法。2.利用Simulink设计2PSK和2DPSK信号的调制解调系统。3.画出2PSK和2DPSK信号的时域波形和频谱图。二、设计原理1.2PSK和2DPSK调制解调原理2PSK(二进制绝对移相键控)信号是利用载波相位直接表示数字信号,2DPSK(相对移相键控)信号是利用前后相邻载波的相位差来表示数字信号,2DPSK信号可以看作是将绝对码变成相对码后再进行绝对移相而得到的。2PSK和2DPSK信号的产生方法如图6.1所示。差分编码器带通滤波器极性变换器tccosnanb双极性不归零2DPSK信号(a)模拟调相法产生2DPSK信号振荡器倒相器门电路2门电路1倒相器加法器()et()st0相相(b)相位选择法产生2PSK信号图6.12PSK和2DPSK调制2PSK和2DPSK信号的解调方法如图6.2所示。带通抽样判决器低通tccos输出na'定时脉冲)(0te)(0te)(tz)(tx(a)2PSK信号的相干解调数据码(反)变换器抽样判决器低通滤波器相乘器带通滤波器信号2DPSK本地载波nb输出na(b)2DPSK信号的解调(极性比较法)数据抽样判决器低通滤波器相乘器带通滤波器信号2DPSK输出na)(tx)(tz)(1ty延迟sT)(2ty(c)2DPSK信号的解调(差分检测法)图6.22PSK和2DPSK信号的解调当0、1等概出现时,2PSK信号和2DPSK信号的功率谱密度为22)()(sin)()(sin4)(ScScScScSeTffTffTffTffTfP(6.1)2PSK信号的带宽为22PSKsBf(6.2)【例6-1】用MATLAB产生独立等概的二进制信源,画出2PSK信号的波形及其功率谱。解首先产生随机的二进制数字基带信号,然后根据2PSK信号的表达式产生二进制数字调制信号,最后通过FFT变换求解各种调制信号的功率谱。源程序如下,用到的子函数sigexpand.m和T2F.m见例5-1。A=1;fc=2;N_sample=8;N=500;Ts=1;dt=Ts/fc/N_sample;t=0:dt:N*Ts-dt;L=length(t);%产生二进制信源d=sign(randn(1,N));dd=sigexpand((d+1)/2,fc*N_sample);gt=ones(1,fc*N_sample);d_NRZ=conv(dd,gt);[f,d_NRZf]=T2F(t,d_NRZ(1:L));%数字基带信号的傅里叶变换ht=A*cos(2*pi*fc*t);%调制信号d_2psk=2*d_NRZ-1;%双极性基带信号s_2psk=d_2psk(1:L).*ht;%产生2PSK信号[f,s_2pskf]=T2F(t,s_2psk);%2PSK信号的傅里叶变换figure(1)subplot(2,2,1);plot(t,d_NRZ(1:L));axis([0,10,0,1.2]);xlabel('(a)输入信号');subplot(2,2,2);plot(f,10*log10(abs(d_NRZf).^2/Ts));axis([-2,2,-40,40]);xlabel('(b)输入信号功率谱密度');subplot(2,2,3);plot(t,s_2psk);axis([0,10,-1.2,1.2]);xlabel('(c)2PSK信号');subplot(2,2,4);plot(f,10*log10(abs(s_2pskf).^2/Ts));axis([-fc-4,fc+4,-4