matlab通信系统仿真
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
else for j=1:t0/2 y(t0/2*(2*i-2)+j)=-1; y(t0/2*(2*i-1)+j)=0; end
end end y=[y,x(i)]; subplot(2,1,1) plot(t,y);grid on; axis([0,i,-1.2,1.2]);
>> t=[1 0 0 0 1 0 1 1 0 0 1]; drz(t)
具体方法:在模块库浏览器中找 到所需模块,选中该模块后右击 鼠标,把它加入到一个模型窗口 中即可完成模块的建立。
图7.14添加模块
2. 模块参数与属性的设置
方法:在所建立的模型窗口中,选 中相应的模块,单击右击鼠标,在弹出 的快捷菜单中单击“Block parameters” 选项(如图7.15所示),即可打开该模块的 参数设置对话框,如图7.16(a)所示。右 击鼠标,在弹出的快捷菜单中单击 “Block Properties”选项,即可打开该 模块的属性设置对话框,如图7.16(b)所 示。
t=[1 0 0 1 1]; >> snrfunction y=drz(x) t0=300; t=0:1/t0:length(x); for i=1:length(x)
if(x(i)==1) for j=1:t0/2 y(t0/2*(2*i-2)+j)=1; y(t0/2*(2*i-1)+j)=0; end
图7.15 Block paramenters选项
3.模块的连接
一般情况下,每个模块都有一个或者多个输入口或者输出口。输入口通常是模块 的左边的“>”符号;输出口是右边的“>”符号。
模块的连接方法:把鼠标指针放到模块的输出口,这时,鼠标指针将变为“+” 十字形;然后,拖运鼠标至其它模块的输入口,这时信号线就变成了带有方向箭头 的线段。此时,说明这两个模块的连接成功,否则需要重新进行连接。
(3)PCM编码及解码 非均匀量化:在小信号时采用较小的量化间
隔,在大信号时用大的量化间隔。 中国和欧洲的PCM数字电话系统采用A律压
扩方式。
编码时,每个养殖为8位二进制码表示。其 中最高比特位表示样值得正负极性,接下来 的3位比特表示样值得绝对值所在的8段折线 的段落号,最后四位是样值处于段落内16个 均匀间隔上的间隔序号。
(2)量化及编码
产生量化索引和量化输出值的函数quantiz( ) 格式1:indx=quantiz(sig, partition) 功能:根据判断向量partition,对输入信号sig产生量化索引indx,
indx的长度与sig矢量的长度相同。
例2:>> partition=[3,4,5,6,7,8,9]; >> index=quantiz([2 9 8],partition)
MATLAB/Simulink 在通信系统中的应用
数字通信系统建模仿真
掌握数字通信系统的基本模型 掌握各部分的建模仿真(采样、量化、
编码、调制等)
在MATLAB的Communication Toolbox(通信工具箱)中提供了许多仿真 函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信 函数命令和Simulink的Communications Blockset(通信模块集)仿真模块。用 户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用 Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱 中的函数名称和内容列表,其内容包含:
2FSK
2DPSK
Real-Imag to Complex 把两个数据合成一个复数,即两个数据分别作为实部与虚部
4.运行仿真
在运行仿真之前,首先保存已设置和连接的模型,然后就可以运行仿真。
Simulink应用模块集
通信模块集(Communications Blockset)
图7.31 通信模块集中的模块库
数字通信系统的基本模型
信信
信信
信 源
源 编 码
道 编 码
调 制 器
信道
解道源 调解解 器码码
信 宿
器器
if(x(i)==1) for j=1:t0 y((i-1)*t0+j)=1; end
else for j=1:t0 y((i-1)*t0+j)=0; end
end end y=[y,x(i)]; subplot(2,1,1) plot(t,y);grid on; axis([0,i,-0.2,1.2]);
例5 设计13折线近似的PCM编码器模型,使它能 够取值在[-1,1]内的归一化信号样值进行编码。
例6 设计一个对应于例3编码器的解码器。
二、基带传输码型设计 掌握以下概念: 二电平码、三电平码、多电平码 归零码,不归零码 双极性码,单极性码
单极性不归零码的matlab实现
function y=snrz(x) t0=300; t=0:1/t0:length(x); for i=1:length(x)
Simulink工作平台
启动Simulink,通常有两种方法: (1)在MATLAB命令窗口中直接输入Simulink命令; (2)在MATLAB工具栏上单击Simulink按钮,如图7.1所示。
图7.1 启动Simulink
这样就可打开了Simulink的Simulink Library Brower(库模块浏览器),如图7.2所示。 在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口,如图7.3 所示。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。
图7.2库模块浏览器
图7.3 新建的空白模块窗口
仿真模型的建立与模块参数与属性的设置
1. 仿真模块的建立
首 先 启 动 Simulink 命 令 , 建 立一个空的模块窗口“untitled” , 然 后 利 用 Simulink 提 供 的 模 块 库 , 在此窗口中创建自己需要的 Simulink模型。
0 0 1 2 2 2 3 3 >> quants quants = -1.0000 -1.0000 0.5000 2.0000 2.0000 2.0000 3.0000
3.0000
例3 用simulink实现
Simulink通信模块中的“Scalar quantizer”实现
例4 对8位A/D、D/A转换器进行仿真,转换值范围为0~255, 转换采样率为1次/s。
simulink实现
例7 仿真得出单极性不归零码、双极性归零码和 单极性归零码。
三、数字带通系统的调制与解调 ASK FSK PSK DPSK
2ASK
Bernoulli Binary Generator模块 贝努力二进制序列产生器,用来产生调制二进制信号.要设置的参数两个,一 个是Probability of a zero即二进制中”0”产生的概率,设置成0.5;另一个是 Sample time即每秒发送多少个脉冲, 这里设置成1,即一秒发送1个脉冲。
Signal Sources(信号源函数); Signal Analysis function(信号分析函数); Source Coding(信源编码); Error Control Coding(差错控制编码函数); Lower Level Function for Error Control Coding(差错控制编码的底层函数); Modulation/Demodulation(调制/解调函数) Special Filters(特殊滤波器设计函数); Lower Level Function for Specials Filters(设计特殊滤波器的底层函数); Channel Functions(信道函数); Galosi Field Computation(有限域估计函数); Utilities(实用工具函数)。
index =
0 6 5
格式2:[index,quants] = quantiz(sig,partition,codebook)
Index仍为量化索引,quants为量化索引所对应的每个量化后的值
例3: partition=[0,1,3]; %量化区间 codebook=[-1,0.5,2,3]; %输入值落到每个量化区间时所取的量化值 sig=[-2.4, -1, .2,1.2, 2.9,3,3.5,5]; %输入值 [index,quants]=quantiz(sig,partition,codebook); >> index index =
器器
噪声和干扰源
一、模拟信号数字化(取样、量化、编码)
(1) 取样 保证不失真传输的最小代价——取样定理。
(复习取样定理) 取样定理:如果对某一带宽有限的时间连续信 号(模拟信号)进行采样,且采样速率达到 两倍以上的最高工作频率,那么根据这些抽 样值就能还原出原始信号。
例1 将一个连续的正弦信号转换为离散样值信号。
end end y=[y,x(i)]; subplot(2,1,1) plot(t,y);grid on; axis([0,i,-1.2,1.2]);
>> t=[1 0 0 0 1 0 1 1 0 0 1]; drz(t)
具体方法:在模块库浏览器中找 到所需模块,选中该模块后右击 鼠标,把它加入到一个模型窗口 中即可完成模块的建立。
图7.14添加模块
2. 模块参数与属性的设置
方法:在所建立的模型窗口中,选 中相应的模块,单击右击鼠标,在弹出 的快捷菜单中单击“Block parameters” 选项(如图7.15所示),即可打开该模块的 参数设置对话框,如图7.16(a)所示。右 击鼠标,在弹出的快捷菜单中单击 “Block Properties”选项,即可打开该 模块的属性设置对话框,如图7.16(b)所 示。
t=[1 0 0 1 1]; >> snrfunction y=drz(x) t0=300; t=0:1/t0:length(x); for i=1:length(x)
if(x(i)==1) for j=1:t0/2 y(t0/2*(2*i-2)+j)=1; y(t0/2*(2*i-1)+j)=0; end
图7.15 Block paramenters选项
3.模块的连接
一般情况下,每个模块都有一个或者多个输入口或者输出口。输入口通常是模块 的左边的“>”符号;输出口是右边的“>”符号。
模块的连接方法:把鼠标指针放到模块的输出口,这时,鼠标指针将变为“+” 十字形;然后,拖运鼠标至其它模块的输入口,这时信号线就变成了带有方向箭头 的线段。此时,说明这两个模块的连接成功,否则需要重新进行连接。
(3)PCM编码及解码 非均匀量化:在小信号时采用较小的量化间
隔,在大信号时用大的量化间隔。 中国和欧洲的PCM数字电话系统采用A律压
扩方式。
编码时,每个养殖为8位二进制码表示。其 中最高比特位表示样值得正负极性,接下来 的3位比特表示样值得绝对值所在的8段折线 的段落号,最后四位是样值处于段落内16个 均匀间隔上的间隔序号。
(2)量化及编码
产生量化索引和量化输出值的函数quantiz( ) 格式1:indx=quantiz(sig, partition) 功能:根据判断向量partition,对输入信号sig产生量化索引indx,
indx的长度与sig矢量的长度相同。
例2:>> partition=[3,4,5,6,7,8,9]; >> index=quantiz([2 9 8],partition)
MATLAB/Simulink 在通信系统中的应用
数字通信系统建模仿真
掌握数字通信系统的基本模型 掌握各部分的建模仿真(采样、量化、
编码、调制等)
在MATLAB的Communication Toolbox(通信工具箱)中提供了许多仿真 函数和模块,用于对通信系统进行仿真和分析。主要包括两部分内容:通信 函数命令和Simulink的Communications Blockset(通信模块集)仿真模块。用 户既可以在MATLAB的工作空间中直接调用工具箱中的函数,也可以使用 Simulink平台构造自己的仿真模块,以达到扩充工具箱的内容。通信工具箱 中的函数名称和内容列表,其内容包含:
2FSK
2DPSK
Real-Imag to Complex 把两个数据合成一个复数,即两个数据分别作为实部与虚部
4.运行仿真
在运行仿真之前,首先保存已设置和连接的模型,然后就可以运行仿真。
Simulink应用模块集
通信模块集(Communications Blockset)
图7.31 通信模块集中的模块库
数字通信系统的基本模型
信信
信信
信 源
源 编 码
道 编 码
调 制 器
信道
解道源 调解解 器码码
信 宿
器器
if(x(i)==1) for j=1:t0 y((i-1)*t0+j)=1; end
else for j=1:t0 y((i-1)*t0+j)=0; end
end end y=[y,x(i)]; subplot(2,1,1) plot(t,y);grid on; axis([0,i,-0.2,1.2]);
例5 设计13折线近似的PCM编码器模型,使它能 够取值在[-1,1]内的归一化信号样值进行编码。
例6 设计一个对应于例3编码器的解码器。
二、基带传输码型设计 掌握以下概念: 二电平码、三电平码、多电平码 归零码,不归零码 双极性码,单极性码
单极性不归零码的matlab实现
function y=snrz(x) t0=300; t=0:1/t0:length(x); for i=1:length(x)
Simulink工作平台
启动Simulink,通常有两种方法: (1)在MATLAB命令窗口中直接输入Simulink命令; (2)在MATLAB工具栏上单击Simulink按钮,如图7.1所示。
图7.1 启动Simulink
这样就可打开了Simulink的Simulink Library Brower(库模块浏览器),如图7.2所示。 在菜单栏中执行File/New/Model命令,就建立了一个名为untitled的模型窗口,如图7.3 所示。在建立了空的模块窗口后,用户可以在此窗口中创建自己需要的Simulink模型。
图7.2库模块浏览器
图7.3 新建的空白模块窗口
仿真模型的建立与模块参数与属性的设置
1. 仿真模块的建立
首 先 启 动 Simulink 命 令 , 建 立一个空的模块窗口“untitled” , 然 后 利 用 Simulink 提 供 的 模 块 库 , 在此窗口中创建自己需要的 Simulink模型。
0 0 1 2 2 2 3 3 >> quants quants = -1.0000 -1.0000 0.5000 2.0000 2.0000 2.0000 3.0000
3.0000
例3 用simulink实现
Simulink通信模块中的“Scalar quantizer”实现
例4 对8位A/D、D/A转换器进行仿真,转换值范围为0~255, 转换采样率为1次/s。
simulink实现
例7 仿真得出单极性不归零码、双极性归零码和 单极性归零码。
三、数字带通系统的调制与解调 ASK FSK PSK DPSK
2ASK
Bernoulli Binary Generator模块 贝努力二进制序列产生器,用来产生调制二进制信号.要设置的参数两个,一 个是Probability of a zero即二进制中”0”产生的概率,设置成0.5;另一个是 Sample time即每秒发送多少个脉冲, 这里设置成1,即一秒发送1个脉冲。
Signal Sources(信号源函数); Signal Analysis function(信号分析函数); Source Coding(信源编码); Error Control Coding(差错控制编码函数); Lower Level Function for Error Control Coding(差错控制编码的底层函数); Modulation/Demodulation(调制/解调函数) Special Filters(特殊滤波器设计函数); Lower Level Function for Specials Filters(设计特殊滤波器的底层函数); Channel Functions(信道函数); Galosi Field Computation(有限域估计函数); Utilities(实用工具函数)。
index =
0 6 5
格式2:[index,quants] = quantiz(sig,partition,codebook)
Index仍为量化索引,quants为量化索引所对应的每个量化后的值
例3: partition=[0,1,3]; %量化区间 codebook=[-1,0.5,2,3]; %输入值落到每个量化区间时所取的量化值 sig=[-2.4, -1, .2,1.2, 2.9,3,3.5,5]; %输入值 [index,quants]=quantiz(sig,partition,codebook); >> index index =
器器
噪声和干扰源
一、模拟信号数字化(取样、量化、编码)
(1) 取样 保证不失真传输的最小代价——取样定理。
(复习取样定理) 取样定理:如果对某一带宽有限的时间连续信 号(模拟信号)进行采样,且采样速率达到 两倍以上的最高工作频率,那么根据这些抽 样值就能还原出原始信号。
例1 将一个连续的正弦信号转换为离散样值信号。