收藏 分销(赏)

simulink仿真实验设计报告样本.doc

上传人:精**** 文档编号:11178672 上传时间:2025-07-04 格式:DOC 页数:35 大小:1.14MB 下载积分:12 金币
下载 相关 举报
simulink仿真实验设计报告样本.doc_第1页
第1页 / 共35页
simulink仿真实验设计报告样本.doc_第2页
第2页 / 共35页


点击查看更多>>
资源描述
资料内容仅供您学习参考,如有不当之处,请联系改正或者删除。 实验总成绩: ——————————————————————————装 订 线————————————————————————————————— 报告份数: 1份 西安邮电大学 通信与信息工程学院 《基于Simulink的通信系统仿真》报告 专业班级: 学生姓名: 学号(班内序号): 年 月 日 摘要 Simulink是一对动态系统建模和仿真分析的软件包, 为信号与系统仿真实验提供了很好的平台。作为功能强大的数学工具软件和动态系统仿真软件, 在涉及信号处理、 控制系统、 虚拟现实等领域已得到了广泛的应用。Simulink采用基于时间流的链路级仿真方法, 将仿真系统建模与工程通用的方框图设计方法统一起来, 能够更加方便的对系统进行可视化建摸, 而且仿真结果能够近乎实时的经过可视化模块, 使得系统设计、 仿真调试和模型检验工作大为方便。 关键词: Simulink 系统仿真 系统建模 Abstract Simulink is an analysis on the modeling and Simulation of dynamic system software, provides a good platform for signal and system simulation experiment. Mathematical tool software and dynamic simulation software system as a powerful, has been widely used in relating to the signal processing, control system, virtual reality etc.. Simulink uses link level simulation method based on the flow of time, the block diagram design method for modeling and general engineering simulation system to unify, can be more convenient for visual model of the system, and the simulation results can be near real-time through visualization module, which makes system design, simulation and model checking work is convenient. Key word: simulink system simulation system modeling 引言 Simulink是MATLAB最重要的组件之一, 它提供一个动态系统建模、 仿真和综合分析的集成环境。在该环境中, 无需大量书写程序, 而只需要经过简单直观的鼠标操作, 就可构造出复杂的系统。Simulink具有适应面广、 结构和流程清晰及仿真精细、 贴近实际、 效率高、 灵活等优点, 并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。同时有大量的第三方软件和硬件可应用于或被要求应用于Simulink。Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。对各种时变系统, 包括通讯、 控制、 信号处理、 视频处理和图像处理系统, Simulink提供了交互式图形化环境和可定制模块库来对其进行设计、 仿真、 执行和测试。为了创立动态系统模型, Simulink提供了一个建立模型方块图的图形用户接口, 这个创立过程只需单击和拖动鼠标操作就能完成, 它提供了一种更快捷、 直接明了的方式, 而且用户能够立即看到系统的仿真结果。 实验一 MATLAB基础实验 一、 实验目的 l 了解MATLAB 程序设计语言的基本特点, 熟悉MATLAB软件运行环境 l 掌握创立、 保存、 打开m文件及函数的方法 l 掌握变量等有关概念, 具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力 二、 实验内容及步骤 1.在Command Window里面计算 ①; ②; ③, , 计算: ; ④, 求; ⑤, 输入复数矩阵; 2.建立.m文件, 用for循环语句生成50×50的矩阵A: ,将A矩阵进行水平和垂直翻转得到矩阵B和C。将A矩阵的前10行, 10列变成0并赋值给D。 3.建立.m文件, 随机产生一个50×50的矩阵, 元素值为从0到255, 要求用0和255对该矩阵进行标记, 元素值大于128的标记为255, 元素值小于128的标记为0。 4.产生一个均值为2.4方差为0.2大小为3×4的随机矩阵。 三、 实验代码及仿真结果 1.( 1) 、 ( 3+5+8) /5*10 ( 2) 、 sin(3*pi)/exp(9/5) (3)A=[1,2,3;4,5,6;7,8,9],B=[7,8,9;4,5,6;1,2,3],C=A*B,D=A+B,A\C,C/B ( 4) 、 A=[3,1.2,4;7.5,6.6,3.1;5.4,3.4,6.1],A',inv(A),det(A) ( 5) 、 Z=[1+2i,3+4i;5+6i,7+8i] 2、 程序代码: for i=1:1:50 for j=1:1:50 A(i, j)=i+j-1; end end disp(A); B=flipud(A); disp(B); C=fliplr(A); disp(C); for i=1:1:10 for j=1:1:10 A(i, j)=0; end end D=A; disp(D); 3、 程序代码 A=255*rand(50); for i=1:1:50 for j=1:1:50 if A(i,j)>128 A(i,j)=255; else A(i,j)=0; end end end disp(A); 4、 程序: A=2.4+sqrt(0.2)*randn(3,4) 实验二 Simulink仿真平台的基本操作 一、 实验目的 l 了解SIMULINK程序设计的基本特点, 熟悉MATLAB软件运行环境 l 掌握创立、 保存、 打开SIMULINK文件及S函数的方法 l 掌握变量等有关概念, 具备初步的将一般数学问题转化为对应的计算机模型并进行处理的能力 二、 实验内容及步骤 1.用Simulink建模的方法实现一个求绝对值模块, 输入为幅度为3, 频率为1Hz的正弦信号。正弦信号由sine wave输入, scope同时观测输入信号和求绝对值后的两路信号。 2.为了看清楚Simulink调用S函数的内部过程, 可修改S函数以便被调用时能够在Matlab命令窗口中显示出调用时刻的函数变量值的情况。将S函数文件ch2example5fun.m修改并另存为ch2example5funB.m, 修改的部分内容如下: 〔程序代码〕ch2example5funB.m function[sys,x0,str,ts]=ch2example5funB(t,x,u,flag) % 连续系统状态方程; % x’=Ax+Bu % y=Cx+Du % 定义A,B,C,D矩阵 A=[010;001;-4-6-3]; B=[0;0;1]; C=[040]; D=0; %------显示调用该S函数时, 调用标志,仿真时间,系统状态,输入信号 flag t x u %-----以下程序代码和ch2example5fun.m中的对应部分相同( 略) 同时, 还需要把ch2example5.mdl中的S函数模块参数中设置关联S函数文件名相应修改为ch2example5funB, 仿真时间段设定为0秒到1秒, 为了显示调用简明, 可选择仿真算法为固定步长的, 步长为0.1秒。仿真执行完成后, 在命令窗口中将显示出Simulink每次调用S函数时的调用标志、 仿真时间、 系统状态和输入信号的当前值。 仿真完成后记录Simulink每次调用S函数时的调用标志、 仿真时间、 系统状态和输入信号的当前值并分析显示结果。 三、 实验代码及仿真结果 1、 2、 程序代码: function[sys,x0,str,ts]=ch2example5funB(t,x,u,flag) A=[0 1 0;0 0 1;-4 -6 -3]; B=[0;0;1]; C=[0 4 0]; D=0; flag t x u switch flag, case 0 [sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D); case 1 sys=mdlDerivatives(t,x,u,A,B,C,D); case 3 sys=mdlOutputs(t,x,u,A,B,C,D); case {2,4,9} sys=[]; otherwise error(['Unhandled flag=',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D) sizes=simsizes; sizes.NumContStates =3; sizes.NumDiscStates =0; sizes.NumOutputs =1; sizes.NumInputs =1; sizes.DirFeedthrough =0; sizes.NumSampleTimes =1; sys=simsizes(sizes); str=[]; x0=[0;0;0]; ts=[0 0]; function sys=mdlDerivatives(t,x,u,A,B,C,D) sys=A*x+B*u; function sys=mdlOutputs(t,x,u,A,B,C,D) sys=C*x; 实验结果: flag =0 t =[] x =[] u =[] flag =3 t =0 x =0 0 0 u =NaN flag =2 t =0 x =0 0 0 u =-3 flag =1 t =0 x =0 0 0 u =-3 flag =3 t =0.1000 x =-0.0005 -0.0135 -0.2565 u =NaN flag =2 t =0.1000 x =-0.0005 -0.0135 -0.2565 u =-3 flag =1 t =0.1000 x =-0.0005 -0.0135 -0.2565 u =-3 flag =3 t =0. x =-0.0035 -0.0485 -0.4328 u =NaN flag =2 t =0. x =-0.0035 -0.0485 -0.4328 u =-3 flag =1 t =0. x =-0.0035 -0.0485 -0.4328 u =-3 flag =3 t =0.3000 x =-0.0107 -0.0976 -0.5393 u =NaN flag =2 t =0.3000 x =-0.0107 -0.0976 -0.5393 u =-3 flag =1 t =0.3000 x =-0.0107 -0.0976 -0.5393 u =-3 flag =3 t =0.4000 x =-0.0233 -0.1544 -0.5870 u =NaN flag =2 t =0.4000 x =-0.0233 -0.1544 -0.5870 u =-3 flag =1 t =0.4000 x =-0.0233 -0.1544 -0.5870 u =-3 flag =3 t =0.5000 x =-0.0417 -0.2134 -0.5868 u =NaN flag =2 t =0.5000 x =-0.0417 -0.2134 -0.5868 u =-3 flag =1 t =0.5000 x = -0.0417 -0.2134 -0.5868 u =-3 flag =3 t =0.6000 x =-0.0660 -0.2704 -0.5490 u =NaN flag =2 t =0.6000 x =-0.0660 -0.2704 -0.5490 u =-3 flag =1 t =0.6000 x =-0.0660 -0.2704 -0.5490 u =-3 flag =3 t =0.7000 x =-0.0957 -0.3221-0.4833 u =NaN flag =2 t =0.7000 x =-0.0957 -0.3221 -0.4833 u =-3 flag =1 t =0.7000 x =-0.0957 -0.3221 -0.4833 u =-3 flag =3 t =0.8000 x =-0.1302 -0.3663 -0.3987 u =NaN flag =2 t =0.8000 x =-0.1302 -0.3663 -0.3987 u =-3 flag =1 t =0.8000 x =-0.1302 -0.3663 -0.3987 u =-3 flag =3 t =0.9000 x =-0.1686 -0.4014 -0.3029 u =NaN flag =2 t =0.9000 x =-0.1686 -0.4014 -0.3029 u =-3 flag =1 t =0.9000 x =-0.1686 -0.4014 -0.3029 u =-3 flag =3 t =1 x =-0.2101 -0.4267 -0.2025 u =NaN flag =2 t =1 x =-0.2101 -0.4267 -0.2025 u =-3 flag =9 t =1 x =-0.2101 -0.4267 -0.2025 u =-3 实验三 S函数编写Simulink基本模块 一、 实验目的 l 了解SIMULINK程序设计的基本特点, 熟悉MATLAB软件运行环境。 l 掌握用S函数编写SIMULINK基本模块的方法。 l 掌握reshape模块的转换功能。 二、 实验内容及步骤 1. 用S函数实现一个信号切换开关, 对两路输入信号进行选择并输出。 信号切换开关有三个输入端, 其中二个是传输信号输入端, 一个是切换控制信号端。切换开关经过控制信号电平与设计门限值相比较来判断选择其中一个输入信号作为输出。显然, 信号切换开关是一个无记忆系统。在S函数中的输出方程计算部分, 经过条件语句或逻辑语句即可实现该功能。 在信号切换开关模型中, 首先以Mux模块将三个输入信号复用到一条信号在线, 再传入S函数, 设S函数的传入信号为u(1), u(3), 控制信号为u(2), 比较门限参数为threshold, 也可采用条件语句实现。请参照实例2.9完成S函数的编写, 测试系统和仿真结果可参照下图, 并将自行完成的S函数与Simulink的原有模块Switch加以对比。 2. 以2×2维矩阵信号为例掌握reshape模块的转换功能, 测试模型如下图所示。仿真时间从0到4秒, 固定步长为1秒, 则总共仿真5个时间点。仿真完毕后, 在Matlab的命令窗口下, 用whos查看变量结果。完成仿真后, 分析下面测试模型的转换过程及生成的变量结果。 三、 实验代码及仿真结果 1、 源代码: function [sys,x0,str,ts]=ch3xitilfun(t,x,u,flag) switch flag, case 0 sizes=simsizes; sizes.NumContStates=0; sizes.NumDiscStates=0; sizes.NumOutputs=1; sizes.NumInputs=-1; sizes.DirFeedthrough=1; sizes.NumSampleTimes=1; sys=simsizes(sizes); str=[]; x0=[]; ts=[-1 0]; case 3 sys=u(1)*(u(2)>=0)+u(3)*(u(2)<0); case {1,2,4,9} sys=[]; otherwise error(['Unhandled flag=',num2str(flag)]); end 2、 实验四 通信模块建模仿真( 一) 一、 实验目的 l 了解SIMULINK程序设计的基本特点, 熟悉SIMULINK环境。 l 掌握通信基本模块滤波器、 信源模型、 信号统计参数的建模仿真方法。 二、 实验内容及步骤 1. 采用Simulink基本模块Discrete Filter以及Signal Processing Blockset工具箱的Digital Filter两个模块实现实例3.3。仿真模型中用Repeating Sequence模块作为输入信号源, 设置系统采样时间为1秒, Digital Filter模块的初始状态设置为零。仿真采用固定步长类型, 算法采用离散(discrete)算法。滤波器模块的分子分母分别设置为a和b, 并在命令窗口输入a和b的值。 执行仿真, 并分析两个模块实现的结果是否相同? 2. 产生一信号秒。用统计库( Statistics) 中的模块估计该信号的直流功率、 交流功率、 最大值和最小值, 并与理论计算的结果比较。统计库模块是针对离散时间信号的, 因此需要对输入信号进行采样, 设采样率为10000Hz。 三、 实验代码及仿真结果 1、 结果: 2、 实验五 通信模块建模仿真( 二) 一、 实验目的 l 了解SIMULINK程序设计的基本特点, 熟悉SIMULINK环境。 l 掌握信号统计参数、 信道模型的建模仿真方法。 二、 实验内容及步骤 1.试用MATLAB编程方式产生一个100Hz的方波, 并用FFT指令计算其频谱, 作出功率谱密度, 并与理论结果进行对比。并用Simulink方式重做上题, 并用统计模块在时域和频域同时计算信号的功率, 看两者计算结果是否一致?验证帕斯瓦尔定理。 2.对实例3.7的模型, 请修改其中AWGN Channel的加入噪声参数模式, 如以SNR模式或方差模式加入等, 再仿真观察检测输出的SNR结果。说明AWGN Channel模块中不同噪声加入模式之间的关系。 三、 实验代码及仿真结果 1、 S函数代码: ① % ch5xiti1A.m % 方波功率谱理论结果作图 clear; f=100; % Hz T=1/f; % 方波周期 A=1; % 方波幅度 Omega=2*pi*f; idx=1;% 功率谱数组下标 m=7; %作图谐波数 for n=-m:m psd(idx)=4*A^2/(n+eps)^2*(cos(n*pi)-1)^2; idx=idx+1; end stem([-m*f:f:m*f],psd/(2*pi)^2,'^');%以频率为单位的功率谱 axis([(-m-1)*f (m+1)*f -0.1 0.5]);grid on; xlabel('频率 Hz');ylabel('PSD'); % ch5xiti1B.m % 方波功率谱数值分析结果作图 ② clear; f=100; % Hz T=1/f; % 方波周期 A=1; % 方波幅度 Omega=2*pi*f; fs= ; % Hz 采样频率 Ts=1/fs; % 采样时间间隔 T_end=2; % 计算结束时间 t=0:1/fs:T_end; squarewave=A*sign(sin(2*pi*f*t)); N= ;% FFT变换点数 squarewavefft=fftshift(fft(squarewave,N)); PowerSpectrum=(Ts*abs(squarewavefft)).^2; plot([-1000:1:999],PowerSpectrum,'-^'); axis([-1000 1000 -0.1 0.5]);grid on; xlabel('频率 Hz');ylabel('PSD '); simulink建模: 结果: 2、 参考文献 ( 1) 《通信原理》 第六版 樊昌信编 国防工业出版社 8月出版 ( 2) 《信号分析仿真》课程指导书 潘若禹编 通信与信息工程学院电科实验室 5月 ( 3) 《基于Simulink的通信系统仿真》 庞胜利 潘若禹编 通信与信息工程 2月 ( 4) 《MATLAB基础教程》 薛山编 清华大学出版社 8月出版 ( 5) 《通信原理》 李易峰编 清华大学出版社 3月出版 ( 6) 《simulink与信号处理》 丁亦农编 北京航空航天大学出版社 8月出版 课程实验心得 本次实验使我有了一定的认识, 认识到了Simulink的强大功能和广泛应用。Simulink是MATLAB最重要的组件之一, 它提供一个动态系统建模、 仿真和综合分析的集成环境。在该环境中, 无需大量书写程序, 而只需要经过简单直观的鼠标操作, 就可构造出复杂的系统。Simulink具有适应面广、 结构和流程清晰及仿真精细、 贴近实际、 效率高、 灵活等优点。无论是学习信号与系统, 通信原理, 数字信号处理, 数字图像处理, 发现这些课程的应用都要大力借助于Simulink来实现。能够说没学好Simulink对于我这种准备往信息发面发展的人来说就跟没有轮子的汽车一样, 是个摆设。经过这次学习, 我熟悉了Simulink的使用, 对信号处理常见的函数和基本的编程思想有了一定的认识和提高。总体来说, 本次课程设计是比较成功的, 收益比较大的。 ——————————————————————————装 订 线————————————————————————————————— 指导教师评语: 实 验 成 绩: 指导(辅导)教师 :
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服