通信系统仿真上机实验指导书(6)

2019-03-22 12:11

设计五 2FSK调制解调系统

一、设计目的

1.掌握2FSK信号的调制解调原理及MATLAB编程实现方法。 2.利用Simulink设计2FSK信号的调制解调系统。 3.画出2FSK信号的时域波形和频谱图。

二、设计原理

1.2FSK信号的调制解调原理

数字移频键控是用载波的频率来传送数字消息,或者说用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于载频?1,而符号“0”对应于载频?2(与?1不同的另一载频)的已调波形,而且?1与?2之间的改变是瞬间完成的。从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现,如图5.1所示。

载波

?f1开关Se0(t)载波s(t)e0(t)模拟调频器 (a) 模拟法?f2s(t)(b) 键控法

图5.1 2FSK信号的调制

根据以上对2FSK信号的调制原理的分析,已调信号的数字表达式可以表示为 e0(t)? ?ag(t?nT)cos(?t??)??ag(t?nT)cos(?t??) (5.1)

ns1nns2nnn其中,g(t)是单个矩形脉冲,脉宽为Ts,且

???0  概率为P?0  概率为?1?P?an?? an??

???1  概率为?1?P??1  概率为P2FSK信号的常用解调方法采用如图5.2所示的非相干检测法和相干检测法。这里的取样判决器是判定哪一个输入样值大,此时可以不专门设置门限电平。

26

?1带通滤波器y1(t)包络检波器v1(t)输入yi(t)?取样脉冲取样判决器输出s'(t)?2带通滤波器y2(t)包络检波器v2(t)

(a) 非相干方式

?1带通滤波器y1(t)乘法器z1(t)低通滤波器v1(t)输入yi(t)?cos?1t取样脉冲取样判决器?2带通滤波器y2(t)乘法器z2(t)低通滤波器v2(t)

cos?2t

(b) 相干方式 图5.2 2FSK信号的解调

2FSK调制属于非线性调制,其频谱特性的研究常用把2FSK信号看成是两个2ASK信号相叠加的方法。2FSK信号的功率谱密度为:

22Tsin?(f?f1)TsPE(f)?s[16?(f?f1)Tssin?(f?f2)Ts?(f?f2)Ts2sin?(f?f1)Ts??(f?f1)Ts2?

sin?(f?f2)Ts?]?

?(f?f2)Ts1[?(f?f1)??(f?f1)??(f?f2)??(f?f2)] (5.2) 16传输2FSK信号所需频带约为

B2FSK?f2?f1?2fs (5.3) 【例5-1】用MATLAB产生独立等概的二进制信源,画出2FSK信号的波形及其功率谱。 解 首先产生随机的二进制数字基带信号,然后根据2FSK信号的表达式产生二进制数字调制信号,最后通过FFT变换求解调制信号的功率谱。源程序如下:

A=1; % 调制信号幅度 fc=2; % 载波频率

27

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对信号进行傅里叶变换

28

% 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所示。

401200-200-40-20.505(a) 输入信号10-101(b) 输入信号功率谱密度210.50-0.5-105(c) 2FSK信号1040200-20-40-505(d) 2FSK信号功率谱密度

图5.3 2FSK信号的波形及其频谱

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。

29

(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-FSK Modulator Baseband”和“M-FSK Demodulator Baseband”,图形及参数设置如图5.4所示。

图5.4 FSK信号调制解调模块及参数设置

30


通信系统仿真上机实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013考前集训二:电化学溶液综合题 基础篇 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: