通信系统仿真作业(设计五-设计七)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设计五 2FSK调制解调系统

一、设计目的

1.掌握2FSK信号的调制解调原理及MATLAB编程实现方法。

2.利用Simulink设计2FSK信号的调制解调系统。

3.画出2FSK信号的时域波形和频谱图。

二、设计原理

1.2FSK信号的调制解调原理

数字移频键控是用载波的频率来传送数字消息,或者说用所传送的数字消息控制载波的频率。2FSK信号便是符号“1”对应于载频,而符

号“0”对应于载频(与不同的另一载频)的已调波形,而且与之间的改变是瞬间完成的。从原理上讲,数字调频可用模拟调频法来实现,也可用键控法来实现,如图5.1所示。

图5.1 2FSK信号的调制

根据以上对2FSK信号的调制原理的分析,已调信号的数字表达式可以表示为

(5.1)

其中,是单个矩形脉冲,脉宽为,且

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

(a) 非相干方式

(b) 相干方式

图5.2 2FSK信号的解调

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

(5.2)

传输2FSK信号所需频带约为

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

图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,F s)

其中,x是消息信号;M是消息的符号数,必须是2的整数次幂,消息信号是0~M-1之间的整数;freq_sep是两载波频率之间的频率间隔,单位为Hz;nsamp是输出信号y中每符号的采样数,必须是大于1的正整数;F s是采样频率,freq_sep和M必须满足(M-1)*freq_sep<=F s。

(2) fskdemod函数

格式:z=fskdemod(y,M,freq_sep,nsamp)

z=fskdemod(y,M,freq_sep,nsamp,F s)

其中,y是已调信号;其余参数与fskmod函数中的一样。

相关文档
最新文档