通信系统仿真上机实验指导书
更新时间:2024-06-25 07:18:01 阅读量: 综合文库 文档下载
通信系统仿真上机实验指导书
指导教师:刘健
2013年10月
1
最终报告内容:
根据提供的例子,学习通信系统仿真基本知识,搭建包含:随机数生成、调制、编码、AWGN信道、解码、解调、差错统计等模块的通信系统仿真M文件或是Simulink仿真模型,最终得出评估通信系统性能的SNR/BER曲线、频谱利用率等曲线。
2
目录
目录................................................................................................................................. 1 设计一 随机信号分析................................................................................................... 4 设计二 模拟信号的数字化........................................................................................... 8 设计三 数字基带传输系统......................................................................................... 14 设计四 模拟线性调制解调系统................................................................................. 18 设计五 2FSK调制解调系统 ...................................................................................... 26 设计六 2PSK和2DPSK调制解调系统 .................................................................... 32 设计七 数字通信系统的抗噪性能分析..................................................................... 37 设计八 载波同步......................................................................................................... 43 设计九 信道编码和译码............................................................................................. 46 参考文献....................................................................................................................... 50
3
设计一 随机信号分析
一、设计目的
1. 利用MATLAB产生各种随机信号。
2. 利用MATLAB计算随机信号的自相关函数和功率谱密度。 3. 掌握随机信号的自相关函数与功率谱密度的关系及其推导。
二、设计原理
1.随机信号的产生
在MATLAB中,提供了大量的随机数发生函数,其中rand和randn是两类核心函数,rand函数产生在[0,1]区间服从均匀分布的随机信号;randn函数产生服从均值为0,方差为1的高斯分布的随机信号。其它类型的随机信号可以通过这两类随机信号变换而得到。
(1) rand函数 格式:X=rand(N)
X=rand(M,N) (2) randn函数 格式:X=randn(N)
X=randn(M,N) 2. 随机信号的自相关函数
在MATLAB中,xcorr函数用于估计随机序列的自相关函数,其调用格式如下: (1) c=xcorr(x)可计算出矢量x的自相关函数,矢量x表示序列x(n)。 (2) c=xcorr(x,'option')中的option可用来指定相关选项:
·当option=biased时,xcorr函数可计算自相关函数的有偏估计,即
1Rx(m)?NN?m?1?xn?0n?mxn
·当option=unbiased时,xcorr函数可计算自相关函数的无偏估计,即
1Rx(m)?N?m即m?0的自相关函数值归一化为1。
N?m?1?xn?0n?mxn
·当option=coeff时,xcorr函数对序列进行归一化处理,使零滞后的自相关函数为1.0,·当option=none时,即为缺省情况,不做归一化处理。
4
3. 随机信号的功率谱密度
随机信号?(t)的自相关函数与其功率谱密度之间互为傅立叶变换关系。即
?P?(?)??R(?)e?j??d?
?? R(?)?12?????P?(?)ej??d?
【例1-1】在(-1/2,1/2)内产生一均匀分布的随机数N=1000的离散时间序列,计算该序列的自相关,定义为
1N?mRx(m)?XnXn?m,m?0,1,...,M ?N?mn?1N1 ??XnXn?m,m??1,?2,...,?M
N?mn?m同时,用计算Rx(m)的离散傅里叶变换(DFT)求序列{xn}的功率谱。DFT定义为
DFT?Rx(m)??m??M?RMx(m)e?j2?fm?2?M?1??
解 产生序列{xn},计算自相关和功率谱DFT?Rx(m)?的MATLAB源程序在下面给出。应该值得注意的是,自相关函数和功率谱都呈现出显著的波动,因此有必要在几次实现上对样本的自相关求平均。本程序在随机过程的10次实现上采用平均自相关得到自相关函数和功率谱。源程序如下:
echo on N=1000; M=50; t=0:1:50; s=-0.5:0.02:0.5; Rx_av=zeros(1,M+1); Sx_av=zeros(1,M+1);
for j=1:10; % 取10次实现的整体平均 X=rand(1,N)-1/2; % X在 -1/2 和 1/2之间取值 Rx=Rx_est(X,M); % 本次实现的自相关函数 Sx=fftshift(abs(fft(Rx))); % 本次实现的功率谱密度 Rx_av=Rx_av+Rx; % 自相关函数之和
5
Sx_av=Sx_av+Sx; % 功率谱密度之和 end;
Rx_av=Rx_av/10; % 自相关函数的整体平均 Sx_av=Sx_av/10; % 功率谱密度的整体平均 subplot(2,1,1); plot(t,Rx_av)
xlabel( '(a) 自相关函数' ); subplot(2,1,2); plot(s,Sx_av)
xlabel( '(b) 功率谱密度' );
%-------------------------------------------------------------------------------------------------------------- function [Rx]=Rx_est(X,M) % 估计随机序列X的自相关函数 % 计算出Rx(0),Rx(1),...,Rx(M) % Rx(m)代表实际中的Rx(m-1). N=length(X); Rx=zeros(1,M+1); for m=1:M+1 for n=1:N-m+1
Rx(m)=Rx(m)+X(n)*X(n+m-1); end;
Rx(m)=Rx(m)/(N-m+1); end;
程序运行结果如图1.1所示。
6
图1.1 例1-1的运行结果
三、设计内容
1.已知瑞利分布随机信号的概率密度函数为
?xx2?exp(?2) x?0 f(x)???22?? 0 x?0?用randn函数产生??2的瑞利分布随机变量。
提示:两个独立分布、均值为0、方差为?的高斯随机变量的平方和开根号所得的随机变量服从功率为2?的瑞利分布。
2.产生均值为0,方差为1的高斯随机信号,长度为0.5s,计算该信号的自相关函数,并绘制高斯信号及自相关函数的图形。
提示:计算机只能产生各种离散信号序列,对于模拟连续信号,本质上都是产生信号的采样序列。只要采样频率足够高,模拟就可以非常准确。在这里,假定信号的采样频率
22
2fs?1000Hz。
3.在(-1,1)内产生一均匀分布的随机数N=500的离散时间序列,计算该序列的自相关函数和功率谱密度,并绘制图形。
4.一个带限随机过程X(t)的功率谱为
?f?B?N02 P(f)??
0 f?B?? 计算它的自相关函数,并绘制自相关函数与功率谱密度的图形。
提示:X(t)的自相关函数Rx(?)?
?B?BN0j2?ftedf?N0BSa(2?B?)。 2
7
设计二 模拟信号的数字化
一、设计目的
1.掌握脉冲编码调制的基本原理。 2.理解均匀PCM与非均匀PCM。
3.利用MATLAB对抽样值进行A律13折线编码。
二、设计原理
在模拟信号数字化方式中,出现最早且应用最广泛的是脉冲编码调制,即PCM编码,它经过抽样(时间离散化)、量化(幅值离散化)和编码(多电平转换为二电平)3个步骤,将一个时间和幅值都连续变换的模拟信号变成二进制数字信号。
1.抽样
抽样是将模拟信号在时间上离散化。对于低通型信号,当抽样频率fs?2fH时,属于正常抽样,不会发生频谱混叠;当fs?2fH时,属于欠抽样,已抽样信号频谱发生混叠。下面通过举例来看如何利用MATLAB分析已抽样信号的频谱。
【例2-1】有一信号m(t)?50Sa2(200t),当抽样频率fs1=100Hz时,绘出原始信号和抽样后信号的波形及其频谱。
解 由题意可知,原始信号的最高频率fH?64Hz,因此用fs1=100Hz抽样时,会发生频谱混叠,MATLAB实现的源程序如下:
clear
t0=10; % 定义时间长度 ts=0.001; % 抽样周期 ts1=0.01; % 欠抽样周期 fs=1/ts;
fs1=1/ts1; % 抽样频率 df=0.5; % 定义频率分辨力 t=[-t0/2:ts:t0/2]; % 定义时间序列 x=sin(200*t); % 定义信号序列 m=x./(200*t);
w=t0/(2*ts)+1; % 确定t=0的点
m(w)=1; % 确定t=0的点对应的信号值为1 m=m.*m; m=50.*m;
[M,mn,dfy]=fftseq(m,ts,df); % 傅里叶变换 M=M/fs;
8
f=[0:dfy:dfy*length(mn)-dfy]-fs/2; % 定义频率序列 % 欠抽样过程
t1=[-t0/2:ts1:t0/2]; % 定义抽样时间序列
x1=sin(200*t1); % 计算对应抽样序列的信号序列 m1=x1./(200*t1); % 计算Sa函数序列
w1=t0/(2*ts1)+1; % 由于除0产生了错误值,计算该值的标号 m1(w1)=1; % 将错误值修正 m1=m1.*m1; m1=50.*m1;
[M1,mn1,df1]=fftseq(m1,ts1,df); % 对已抽样信号进行傅里叶变换 M1=M1/fs1;
% 将一个周期的图像扩展到多个周期
N1=[M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1,M1]; f1=[-7*df1*length(mn1):df1:6*df1*length(mn1)-df1]-fs1/2; % 绘图 subplot(2,2,1) plot(t,m)
axis([-0.15,0.15,-1,50]);
xlabel('(a) 原始信号的时域波形'); subplot(2,2,2) plot(f,abs(fftshift(M))); axis([-500,500,0,1]);
xlabel('(b) 原始信号的频谱'); subplot(2,2,3) stem(t1,m1)
axis([-0.15,0.15,-1,50]);
xlabel('(c) 欠抽样信号的时域波形'); subplot(2,2,4)
plot(f1,abs(fftshift(N1))); axis([-500,500,0,1]);
xlabel('(d) 欠抽样信号的频谱');
%----------------------------------------------------------------------------------------------------------- function [M,m,df]=fftseq(m,ts,df)
9
fs=1/ts;
if nargin==2 % 判断输入参数的个数是否符合要求 n1=0; else
n1=fs/df; % 根据参数个数决定是否使用频率缩放 end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2))); M=fft(m,n); % 进行离散傅里叶变换 m=[m,zeros(1,n-n2)]; df=fs/n;
程序运行结果如图2.1所示。
50403020100-0.1-0.0500.050.1(a) 原始信号的时域波形50403020100-0.1-0.0500.050.1(c) 欠抽样信号的时域波形0-5000(b) 原始信号的频谱5000.5110.80.60.40.20-5000(d) 欠抽样信号的频谱500
图2.1 例2-1运行结果
2.量化
在MATLAB中,quantiz函数可以实现信号的均匀量化,compand函数可以实现信号的压缩与扩张,二者结合起来,可以实现信号的非均匀量化。它们的调用格式如下。
(1) quantiz函数
① index=quantiz(sig,partition),参数sig表示输入信号,参数partition表示分区向量,分区向量给出了量化间隔端点的向量,长度为M?1,将信号分成M个区域。根据向量partition对输入信号sig产生量化索引index,index的长度与矢量sig的长度相同。向量partition是由
10
解 源程序如下:
x=randint(3000,1,2); % 产生长度为3000的二进制随机序列 y=[0;rcosflt(x,1,10)]; % x通过一个升余弦滤波器得到y t=1:length(y); % 定义时间序列 figure(1)
plot(t,y); % 绘出y的时域波形 axis([1,300,-0.5,1.5]) grid on
eyediagram(y,20,4); % 绘出y的眼图 程序运行结果如图3.2所示。
Eye Diagram 1.5
1.511Amplitude501001502002503000.50.5
00-0.5-0.5
-2-1.5-1-0.50Time0.511.52(a) 时域波形图 (b) 眼图
图3.2 通过升余弦滤波后的二进制数据流图形
② Simulink模块
在Simulink模块库中,显示眼图的模块为“Discrete-Time Eye Diagram Scope”,图形及参数设置界面如图3.3所示。
图3.3 眼图模块及其参数设置
16
4.无码间干扰基带系统的抗噪性能
在0、1等概的条件下,双极性信号和单极性信号的误码率计算公式分别如下:
Pe双?1Aerfc() 22?n1Aerfc() 222?nP?e单可以看出,在相同条件下,双极性误码率比单极性低,抗噪性能好。
三、设计内容
1.当输入二元信息序列为101001110001时,画出单极性不归零码和双极性不归零码的波形示意图,当占空比分别为1/2、1/3时,画出单极性归零码和双极性归零码的波形示意图。
2.当输入的二元信息序列为100101011时,画出差分码的波形示意图。 3.当输入的二元信息序列为100110000101时,画出数字双相码的波形示意图。 4.画出a=0,0.5,1的升余弦滚降系统的频谱图,并画出其各自对应的时域波形。 5.在例3-2中,利用Simulink建模,画出眼图。
6.根据单极性信号和双极性信号的误码率计算公式,作图比较两种信号的抗噪性能。 7.设有双极性不归零数字基带信号an,码元周期为Ts,g(t)??性高斯白噪声的双边功率谱密度为N0/2?0,画出眼图。
(1) 经过理想低通H(f)???1 0?t?Ts,设加
?0 其他?1 f?5/(2Ts)?后的眼图。
??0 其他??1 f?1/(Ts)(2) 经过理想低通H(f)??后的眼图。
0 其他??
17
设计四 模拟线性调制解调系统
一、设计目的
1.掌握模拟线性调制解调原理及MATLAB编程实现方法。
2.利用Simulink设计模拟线性调制解调系统,观察模拟线性调制信号的时域波形和频谱图。
二、设计原理
1.模拟线性调制原理
模拟线性调制是指调制后的信号频谱为调制信号频谱的平移或线性变换,而非线性调制则没有这个性质。下面介绍的模拟信号的连续波线性调制,主要指幅度调制,它包括常规幅度调制、抑制双边带调幅、单边带调幅和残留边带调幅。幅度调制器的一般模型如图4.1所示。其输出已调信号的时域和频域一般表达式为
sm(t)??m(t)cos?ct??h(t) (4.1) Sm(?)?
m(t)1?M(???c)?M(???c)?H(?) (4.2) 2?cos?ctSm(t)H(?)Sm'(t)
图4.1 幅度调制器的一般模型
式中,M(?)为基带调制信号m(t)的频谱;H(?)?h(t);?c为载波频率。
在该模型中,根据选择的滤波器特性H(?)及m(t)的频谱成分不同,便可以产生各种幅度调制信号。
(1) 调幅信号(AM)
在图4.1中,若调制信号m(t)外加直流A0,滤波器H(?)=1为全通网络,则输出为调幅(AM)信号:
sAM(t)??A0?m(t)?cos?ct?A0cos?ct?m(t)cos?ct (4.3)
SAM(?)??A0??(???c)??(???c)??1?M(???c)?M(???c)? (4.4) 2从波形上看:当满足条件m(t)max?A0时,AM信号的包络与输入基带信号m(t)成正
18
比,故AM信号的解调可采用包络检波。
从频谱上看:AM的频谱由频频分量和上、下对称的两个边带组成,因此 BAM?2f其中,fHH (4.5)
是调制信号的最高频率。
(2) 双边带信号(DSB-SC)
若m(t)中无直流分量,H(?)为全通网络,则输出为抑制载波的双边带调幅信号: sDSB(t)?m(t)cos?ct (4.6) SDSB(?)?1?M(???c)?M(???c)? (4.7) 2从波形上看:DSB信号的包络不与m(t)成正比,故不能进行包络检波,需采用相干解
从频谱上看:DSB信号虽节省了载波发射功率,但仍具有上、下两个边带,频带宽度与
调。
AM信号相同。由于这两个边带是完全对称的,它们携带了调制信号的全部信息,故传输其中一个边带即可,这种方式就是单边带调制。
(3) 单边带信号(SSB)
单边带调制中只传输双边带信号中的一个边带,因此产生SSB信号的最直观方法是将图4.1中的滤波器设计成截止频率为fc的理想低通或理想高通特性。
SSB信号的时域表示式为
11?(t)sin?ct (4.8) m(t)cos?ct?m22?(t)是m(t)的希尔伯特变换。若M(?)为m(t)的傅式中,“+”为下边带,“-”为上边带。m?(?)为 ?(t)的傅氏变换M氏变换,则m sSSB(t)??(?)?M(?)??jsgn?? (4.9) M式中,sgn?为符号函数。
综上所述:SSB调制方式可节省载波发射功率,占用的频带宽度为BSSB?fH,只有AM、DSB的一半,即频带利用率提高一倍;SSB信号的解调仍需采用相干解调。
(4) 残留边带信号(VSB)
残留边带调制从频域上来看是介于SSB与DSB之间的一种调制方式,它保留了一个边带和另一个边带的一部分。它既克服了DSB信号占用频带宽,又解决了单边带滤波器不易实现的难题。
重要结论:为了保证相干解调时无失真恢复基带信号。必须要求残留边带滤波器的传输函数在载频处具有互补对称性。即
19
H(???c)?H(???c)?常数,???H, (4.10)
【例4-1】一有限长度信号m(t),其表达式为:
?t 0?t?t04?m(t)???t?t04 t04?t?3t04
?t?t 3t4?t?t 00?0将其调制在载波c(t)?cos2?fct上,假设t0?0.5,fc?50Hz,调制系数a?0.8,求出已调制信号的时域波形,未调信号和已调信号的频谱关系图,计算出已调信号和未调信号的功率,并且考虑有噪声的情况下,假设信噪比为10dB,求出噪声功率。
解 已调信号的时域表达式为:
u(t)??1?a?m(t)/mm?cos2?fct
因为调制时要进行归一化,所以用m(t)除以最大值mm。
未调信号的归一化功率为:Pmn?Pm/mm,Pm为未调信号的功率。 调制效率为:??2a2Pmn1?a2Pmn
已调信号的功率为:P1?amn(t)?/2 u?E?在给定信噪比条件下,可计算噪声功率为:Pn??Pu/10。源程序如下: t0=0.5; % 定义信号的持续时间 ts=0.001; % 定义采样时间 fs=1/ts; % 定义采样频率 df=0.2; % 频率分辨力
snr=10; % 定义信噪比,用dB表示 snr_lin=10^(snr/10); % 信噪比的数值 fc=50; % 定义载波频率
a=0.8; % 定义调制系数(Am/Ao) t=[0:ts:t0]; % 定义出采样点数据 % 定义信号m m=zeros(1,501);
for i=1:1:125 m(i)=i; end for i=126:1:375 m(i)=m(125)-i+125; end for i=376:1:501 m(i)=m(375)+i-375; end
20
m=m/1000;
c=cos(2*pi*fc.*t); % 载波信号 m_n=m/max(abs(m)); % 归一化 [M,m,df1]=fftseq(m,ts,df); % 傅里叶变换 M=M/fs; % 频率缩放,便于作图 f=[0:df1:df1*(length(m)-1)]-fs/2; % 定义频率向量
u=(1+a*m_n).*c; % 将调制信号调制到载波上 [U,u,df1]=fftseq(u,ts,df); % 对已调信号进行傅里叶变化 U=U/fs; % 频率缩放 signal_power=spower(u(1:length(t))); % 计算信号功率 pmn=spower(m(1:length(t)))/(max(abs(m)))^2; % 计算调制信号功率 eta=(a^2*pmn)/(1+a^2*pmn); % 计算调制效率 noise_power=eta*signal_power/snr_lin; % 计算噪声功率 noise_std=sqrt(noise_power); % 噪声标准差
noise=noise_std*randn(1,length(u)); % 产生高斯分布的噪声 r=u+noise; % 总接收信号,即加噪信号 [R,r,df1]=fftseq(r,ts,df); % 对总信号进行傅里叶变换 R=R/fs; % 频率缩放 % 以下为结果显示 signal_power pmn noise_power eta figure(1)
subplot(2,2,1); plot(t,m(1:length(t))); xlabel('时间'); title('调制信号'); subplot(2,2,3); plot(t,u(1:length(t))); xlabel('时间'); title('已调信号'); subplot(2,2,2); plot(f,abs(fftshift(M))); xlabel('频率'); title('调制信号的频谱'); subplot(2,2,4); plot(f,abs(fftshift(U))); xlabel('频率'); title('已调信号的频谱'); figure(2)
subplot(2,2,1); plot(t,noise(1:length(t))); xlabel('时间'); title('噪声'); subplot(2,2,3); plot(t,r(1:length(t))); xlabel('时间'); title('加噪信号'); subplot(2,2,2); plot(f,abs(fftshift(U))); xlabel('频率'); title('信号频谱'); subplot(2,2,4); plot(f,abs(fftshift(R))); xlabel('频率'); title('加噪信号频谱'); %---------------------------------------------------------------------------------------------------------------
21
function [M,m,df]=fftseq(m,ts,df) fs=1/ts;
if nargin==2 % 判断输入参数的个数是否符合要求 n1=0; else
n1=fs/df; % 根据参数个数决定是否使用频率缩放 end
n2=length(m);
n=2^(max(nextpow2(n1),nextpow2(n2))); M=fft(m,n); % 进行离散傅里叶变换 m=[m,zeros(1,n-n2)]; df=fs/n;
%--------------------------------------------------------------------------------------------------------------- function p=spower(x) % 计算信号的功率 p=(norm(x)^2)/length(x); 程序运行结果如下 signal_power = 0.6074 pmn = 0.3327 noise_power = 0.0107 eta =
0.1755
调制信号0.20.030.0250.10.0200.0150.01-0.10.005-0.200.10.20.3时间已调信号20.40.40.50-5000频率已调信号的频谱500调制信号的频谱10.300.2-10.1-200.10.20.3时间0.40.50-5000频率500 图4.2 调幅信号及其频谱
22
噪声0.40.4信号频谱0.20.300.2-0.20.1-0.400.10.20.3时间加噪信号0.40.50-5000频率加噪信号频谱50020.410.300.2-10.1-200.10.20.3时间0.40.50-5000频率500 图4.3 加噪调幅信号及其频谱
2.模拟线性解调原理 (1) 包络检波法
对AM信号,当满足m0?m(t)'max时,不会发生过调制现象,此时用包络检波的方法
很容易恢复原始基带信号m(t)。如图4.4所示。
SAM(t)包络检波器Km(t)
图4.4 包络检波法
(2) 同步解调法
双边带信号不能用包络检波来解调,只能采用同步解调法,即相干解调,其原理如图4.5所示。
SDSB(t)?cos?ct图4.5 同步解调法
低通Km(t)
相干解调的关键是必须产生一个同频同相的本地载波,如果同频同相的条件得不到保证,则会破坏基带信号的恢复。所以,所需的设备比包络检波法复杂。
同理,单边带(SSB)信号和残留边带(VSB)信号也可采用同步解调的方法恢复出基带信号
m(t)。
3.MATLAB函数
23
在MATLAB中,modulate函数实现对信号的调制,demod函数是modulate函数的反过程,即实现对信号的解调。
(1) modulate函数
格式:y=modulate(x,Fc,Fs,'method') y=modulate(x,Fc,Fs,'method',opt) [y,t]=modulate(x,Fc,Fs,'method',opt)
其中,x是要调制的信号序列,Fc是载波频率,Fs是采样频率(采样频率Fs至少是载波频率Fc的2倍),method是采用的调制方法,opt是method指定的调制方法所需的参数(并不是每种方法都需要附加参数),t可以输出计算时间。表4.1列出method对应的调制方式。
表4.1 modulate中method所对应的调制方式 method amdsb-sc amdsb-tc或am
amssb fm pm pwm ppm qam
调制方式 双边带抑制载波调制 双边带带载波调制 单边带调制 频率调制 相位调制 脉冲宽度调制 脉冲相位调制 正交幅度调制
(2) demod函数
格式:x=demod(y,Fc,Fs,'method') x=demod(x,Fc,Fs,'method',opt)
其中,y是已调制信号,其余参数与modulate函数中的一样。
三、设计内容
1.已知未调制信号为
??sinc(200t) t?t0m(t)??
0 其余t?? 若t0取2s,载波为c(t)?cos2?fct,fc?100Hz,用抑制载波调幅来调制信号,画出调制信号和已调信号的时域波形及频谱图。
2.已知未调制信号为
2??[sinc(200t)] t?t0m(t)??
0 其余t?? 若t0取2s,载波为c(t)?cos2?fct,fc?100Hz,画出单边带调幅波的时域波形及频谱图。
24
3.若消息信号m(t)定义为
0?t?t03?1 ?m(t)??-2 t03?t?2t03
?0 其余t?将其调制在载波c(t)?cos2?fct上,假设t0?0.15s,fc?250Hz,调制系数a?0.85,分别采用AM、DSB和SSB三种调制方式,画出调制信号和已调信号的时域波形及频谱图。
4.对于第3题中的DSB信号采用同步解调法解调,画出解调信号的时域波形及频谱图,并与原始消息信号m(t)进行比较。
5.对于第3题中的AM信号采用包络检波法解调,画出解调信号的时域波形,并与原始消息信号m(t)进行比较。
6.对抑制载波的双边带调制解调系统进行仿真。设传输的基带信号为正弦波,幅度为1,频率范围为1~10Hz,载波频率为100Hz,传输信道为高斯白噪声信道,其信噪比为10dB,系统仿真采样频率设置为1000Hz。
提示:仿真中用到的主要模块有“Signal Generator”模块、“DSBSC AM Modulator Passband”模块、“DSBSC AM Demodulator Passband”模块和“AWGN Channel”模块。
25
设计五 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
正在阅读:
通信系统仿真上机实验指导书06-25
离心式压缩机配管规定 - 图文09-14
公司内部员工保密协议书范本03-24
校园里的榕树作文200字07-04
2010年药剂科工作总结06-02
TestMaster3.0使用说明书12-30
开学第一课英雄不朽02-19
网络营销能力秀在线测试题库05-04
美丽的秋天手抄报02-12
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 指导书
- 上机
- 仿真
- 实验
- 通信
- 系统
- 全国所有省会城市说不具有的昆明四大特点
- CO2气体保护焊培训教1
- 2016电大形考02格力电器运营能力分析
- 物权法期末复习资料
- 马克思主义基本原理概论习题库(精华)
- 公路技术状况评定谈CPMS路面质量数据采集方法
- 继电保护(第二版,张宝会,中国电力出版社)课后答案
- 说说日本的性文化 - 图文
- 教育社会学 期末复习
- XX总公司清产核资审计实施方案1
- 学校特色建设与品牌打造的研究方案
- 春节后收心教育
- 于家堡站监理创优计划 文档
- 黔安10号1
- 政府态度网络媒体与我国群体性事件的扩散效应汇总
- matlab大作业2
- 苏教版高二语文默写(情景加填空)
- 基于FPGA的QPSK系统设计
- 美国药典溶出度试验方法的建立与验证指导原则的解读 - 图文
- 五年级语文阅读兴趣小组活动计划