电子信息系统仿真设计
课程设计报告
课 题:电子信息系统仿真设计 姓 名:
学 号:成 绩:班 级:指导教师:
开课时间: 2013-2014学年第1学期
目录
一、设计题目…………………………………………………………………………………………
二、主要内容…………………………………………………………………………………………
三、具体要求…………………………………………………………………………………………
四、进度安排…………………………………………………………………………………………
五、成绩评定…………………………………………………………………………………………
六、正文…………………………………………………………………………………………
1.三维绘图…………………………………………………………………………………………
2.信号的时域和频域表示……………………………………………………………………
3.simulink仿真…………………………………………………………………………………
4.生日蛋糕问题……………………………………………………………………………………
5.项目投资问题……………………………………………………………………………………
6.附加题…………………………………………………………………………………………
七、心得体会…………………………………………………………………………………………
八、参考文献…………………………………………………………………………………………
一、设计题目
1.三维绘图
2.信号的时域和频域表示
3.simulink仿真
4.生日蛋糕问题
5.项目投资问题
6.附加题
二、主要内容
1、巩固MATLAB基础理论知识,查阅相关资料
2、利用两周时间认真完成上述题目
3、题目完成后认真撰写报告
三、具体要求
1、熟悉MATLAB的工作环境;
2、掌握MATLAB的基本操作
3、掌握MATLAB的一些函数及调用格式;
4、熟练掌握MATLAB的基本应用。
5、熟练掌握MATLAB的simulink仿真
四、进度安排
五、成绩评定
平时考勤占20%,每天完成情况占30%,答辩占30%,设计报告占20%。
六、正文
题目及解题过程:
1.三维绘图
用三维绘图函数直观地显示函数:
z(x,y)?sin(ax)sin(by) ?axby
x在(-4*pi,4*pi),y在(-2*pi,2*pi)之间的图形,其中a=[1 2],b=[2 3]。 运行程序:
syms x y z a b
i=0;
for a=1:2
for b=2:3
i=i+1;
z=abs(sin(a*x)/(a*x))*abs(sin(b*y)/(b*y));
subplot(2,2,i);ezmeshc(x,y,z,[-4*pi,4*pi,-2*pi,2*pi]);
end
end
2.信号的时域和频域表示
模拟产生一段通信接收信号,表达式为:S(t)=sin(2*pi*30*t)+randn(1,1024),要求画S(t)幅频特性图和相频特性图
运行程序:
T=1;N=1024;
t = 0:T/N:(T-T/N);
s = sin(2*pi*30*t)+randn(1,1024);
ffts = fft(s,N);
f=0:1/T:(N-1)/T;
subplot(211),plot(f,abs(ffts));
xlim([0,1023]);title('幅频');
subplot(212),plot(f,angle(ffts));
xlim([0,1023]);title('相频
');
3.simulink仿真
应用4阶龙格-库塔法和使用simulink软件包仿真程序,求如下系统的响应。 d6yd5yd4ud3u?a5?5??a0?y?b4?4?b3?3??b0?u6dtdtdtdt
a0?186.5,a1?840,a2?904.4,a3?237.3,a4?76.1,a5?8.8
b0??0.2,b1?1187.6,b2?3699.6,b3?327,b4?65.0
(2)y0?y0?y0?(5)?y0?0,u?1
仿真结果:
4.生日蛋糕问题
一个数学家即将要迎来他90岁生日。有很多学生要来祝寿,所以要做一个特大的蛋糕。为了纪念他提出的一项重要成果——口腔医学的悬链线模型,他的弟子要求蛋糕店老板将蛋糕边缘圆盘的半径做成下列悬链线函数:
r?2?(exp(2h)?exp(?2h))/5,0?h?1 (单位:m)
由于蛋糕店从来没有做过这么大的蛋糕,蛋糕店老板必须要计算一下成本。这主要涉及两个问题的计算,一个是蛋糕的重量,由此可以确定需要多少鸡蛋和面粉,另一个是蛋糕表面积(除底面之外),由此确定需要多少奶油。如果是你该如何计算呢?
解:问题分析
对于一个圆盘形的单层蛋糕,如图2(a)绕水平中心轴旋转而成,若高为H(m), 半径为r(m),密度为k(kg/m3),则蛋糕的质量W(kg)和表面积S(m2)为: W=k?r2H
S=2?rH+?r2
如果蛋糕是双层圆盘的,如图2(b)绕水平中心轴线旋转而成,每层高H/2,下层蛋糕半径为r1,上层蛋糕半径为r2,此时蛋糕的质量和表面积为:
W=k?r12H/2+k?r22H/2
=k?(r12+r22)H/2
S=2?r1H/2+2?r2H/2+?r22
=?(r1+r2)H+?r12
r2
(a) (b) (c)
图3.2 不同层数的生日蛋糕
依次类推,如果蛋糕是n层的,每层高为H/n,半径分别为r1,…,r2,rn,则蛋糕的质量和表面积为
Hn2 W=k?ri ?ni?1
Hn
S=2?ri+?r12 ?ni?1
事实上,蛋糕边缘圆盘半径
r=r(h)=2-(exp(2h)+exp(?2h))/5, 0<h<1
那么当n??,H=1时
1Hn22k W=k?r??r?i?0(h)dh ni?1
1Hn2S=2?ri+?r1?2??r(h)dh+?r(0)2 ?0ni?1
由此,数学家的生日蛋糕问题转化为求上面两个数值积分
运行程序:
syms h
r=2-(exp(2*h)+exp(-2*h))/5;
quadl('pi*(2-(exp(2*h)+exp(-2*h))/5).^2',0,1)
r1=subs(r,h,1);
quadl('2*pi*(2-(exp(2*h)+exp(-2*h))/5)',0,1)+pi*r1^2
ans =
5.4171
ans =
pi*(exp(-2)/5 + exp(2)/5 - 2)^2 + 1127127617496109/140737488355328
5.项目投资问题
某部门在今后五年内考虑给下列项目投资,已知:项目1从第一年到第四年每年年初需要投资,并于次年末回收本利115%;项目2第三年年初需要投资,到第五年末能回收本利125%,但规定最大投资额不超过4万元;项目3第二年年初需要投资,到第五年末能回收本利140%,但规定最大投资额不超过3万元;项目4五年内每年年初可购买公债,于当年末归还,并加利息6%。
该部门现有资金10万元,问它应如何确定给这些项目每年的投资额,使到第5年末拥有的资金的本利总额为最大?
解:
(1) 符号规定:
XiA ———— 第i年初向A项目的投资额
XiB ———— 第i年初向B项目的投资额
XiC ———— 第i年初向C项目的投资额
XiD ———— 第i年初向D项目的投资额
(i = 1,2,3,4,5)
Z ———— 第5年末拥有的资金的本利总额
(2)投资机会表格分析
(3) 约束条件
X1A + X1D = 100000
X2A + X2C + X2D = 1.06 X1D
X3A + X3B + X3D =1.15 X1A + 1.06 X2D
X4A + X4D = 1.15 X2A + 1.06 X3D
X5D = 1.15 X3A + 1.06 X4D
X2C ≤ 30000
X3B ≤ 40000
XiA、XiB、XiC、XiD ≥ 0 (i = 1,2,3,4,5)
(4) 目标函数
Max Z=1.15 X4A +1.40 X2C + 1.25 X3B + 1.06 X5D
(5)运行程序:
clear;
Z=-[0,0,0,1.4,0,0,1.25,0,1.15,0,1.06];
A=[1,1,0,0,0,0,0,0,0,0,0;0,1.06,-1,-1,-1,0,0,0,0,0,0;1.15,0,0,0,1.06,-1,-1,-1,
0,0,0;0,0,1.15,0,0,0,0,1.06,-1,-1,0;0,0,0,0,0,1.15,0,0,0,1.06,-1;0,0,0,1,0,0,0,0,0,0,0;0,0,0,0,0,0,1,0,0,0,0];
b=[10,0,0,0,0,3,4]';
Aeq=[-0.15,-0.06,-0.15,1,-0.06,-0.15,1,-0.06,1,-0.06,1];
beq=10;
lb=zeros(1,11);
ub=[];
[x,fmin]=linprog(Z,A,b,Aeq,beq,lb,ub);
Z=-fmin
X1A=x(1),X1D=x(2),X2A=x(3),X2C=x(4),X2D=x(5),X3A=x(6),X3B=x(7),X3D=x(8),X4A=x(
9),X4D=x(10),X5D=x(11)
(6)运行结果:
Optimization terminated.
Z =
14.3750
X1A =
6.3566
X1D =
3.6434
X2A =
0.8620
X2C =
3.0000
X2D =
9.1002e-014
X3A =
1.8431
X3B =
4.0000
X3D =
1.4670
X4A =
2.5463
X4D =
6.9553e-014
X5D =
2.1195
6.附加题
设计一个15阶(长度为16)的低通线性相位FIR滤波器,采用布莱克曼窗函数设计,截止频率为500Hz,采样频率为2000Hz;将其m文件转化为VHDL语言文件代码,并在QusrtusII软件中调试并仿真通过后,采用相应的FPGA实现,并实现为全穿行结构的滤波器,系数的量化位数为12比特,输入数据位宽为12比特,输出数据位宽为29比特,系统时钟为16kHz。
布莱克曼窗函数设计:
wc=500/2000;
N=16;
W=blackman(N);
b=fir1(N-1,wc ,W);
freqz(b)
将系数的位数量化为12比特:
round(b*2^12)
ans =
Columns 1 through 3
0 -3 -17
Columns 4 through 6
-23 58 314
Columns 7 through 9
706 1014 1014
Columns 10 through 12
706 314 58
Columns 13 through 15
-23 -17 -3
Column 16
七、心得体会
通过这次MATLAB的课程设计,让我对MATLAB有了一个更深的理解,matlab具有数值分析.矩阵计算.科学数据可视化以及非线性动态系统的建模和仿真等诸多功能。
这次的Matlab课程设计对我来说是一次挑战,之前课上学的知识都忘得差不多了,再加上对语言不怎么熟悉,想要编写复杂的代码,难度不是一点点,所以只有通过上网查资料,请教同学,巩固之前学的理论知识,回忆前面所做过的程序代码,也许能完成这次任务。
第一天老师给了五个题目和一道附加题,刚刚上手觉得还行,自己琢磨琢磨也能出结果,但后面几道题目压根没有思路,所以只好通过查资料,与同学讨论,一起研究分析题目。虽然有两周时间,但每天只有两个小时呆在机房,所以还得利用课后的时间继续加工。题目对于我来说比较难,自己编的代码运行不断地出错,经过修改N次后有的也能出现正确的结果,有点成就感,像生日蛋糕问题,自己想的形状和老师的不一样,也难以计算,即使这样也不放弃,继续和同学研究。
在这期间,我们也查找了不少资料,发现很多知识是我们从没有接触过的,我们并不了解,所以借此增长了自己的见识,了解了更多关于它的应用。在编写程序代码时,需要什么函数,需要什么模块得一步一步的来,慢慢地研究,每天积累点,不能急于求成,有问题就应该去查资料,讨论,如果想要把所有东西都学到,那是比登天还难。
总之,通过这次的课程设计,体验到了真正的难度,不过也让我收获不少,虽然过程很艰辛,但自己坚持不懈,最后还是会得到自己想要的答案。从这次课程设计中也可以看出自己的理论知识不牢固,所以得加强理论知识的学习,才能更好地理论联系实践。
八、参考文献
[1]薛山.matlab基础教程[M].北京:清华大学出版社,2007.
[2]王正林.matlab7.0[M].北京:电子工业出版社,2007.
[3]张志勇.matlab与仿真(2010a)[M].北京:北京航空航天大学出版社,2010.
[4] 《matlab7.0基础教程》,孙祥编著,清华大学出版社
第二篇:太原理工大学MATLAB课程设计报告
一、 设计目的
通过该设计,理解傅里叶变换的定义及含义,掌握对信号进行频域分析 的方法。
二、 设计内容
1. 信号的离散傅里叶变换
从连续到离散:
连续时间信号以及对应的连续傅里叶变换都是连续函数。由于数字系统只能处理有限长的离散信号,因此必须将x和都离散化,并且建立对应的傅里叶变换。
假设x(t)时限于[0, L],再通过时域采样将离散化,就可以得到有限长离散信号,记为。设采样周期为T,则时域采样点数N=L/T。
它的傅里叶变换为
这就是在时域采样后的连续傅里叶变换,也就是离散时间傅里叶变换,它在频域依然是连续的。
下面将频域信号转化为有限长离散信号。与对时域信号的处理类似,假设频域信号是带限的,再经过离散化,即可得到有限长离散信号。依据采样定理,时域采样若要能完全重建原信号,频域信号应当带限于(0,1/T)。由于时域信号时限于[0, L],由采样定理以及时频对偶的关系,频域的采样间隔应为1/L。故,频域采样点数为:
即频域采样的点数和时域采样同为N,频域采样点为在DTFT频域上采样:
令T=1,将其归一化,就得到离散傅里叶变换。因此,DFT就是先将信号在时域离散化,求其连续傅里叶变换后,再在频域离散化的结果。
离散傅里叶变换:
离散傅里叶变换(Discrete Fourier Transform,缩写为DFT),是傅里叶变换在时域和频域上都呈离散的形式,将信号的时域采样变换为其DTFT的频域采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT,也应当将其看作其周期延拓的变换。在实际应用中通常采用快速傅里叶变换计算DFT。
有限长序列的离散傅里叶变换公式
MATLAB函数:fft功能是实现快速傅里叶变换,fft函数的格式为: y=fft(x),返回向量x的不连续fourier变化。ifft功能是实现快速反傅里叶变换,ifft函数的格式为: y=ifft(x),返回向量x的不连续inverse fourier变化。
若是一个N=12的有限序列,利用MATLAB计算它的傅里叶变换并画出图形,然后再对进行离散傅里叶反变换,并求出画出其波形。
2. 频率分辨率与DFT参数的选择
在DFT问题中,频率分辨率是指在频率轴上所能得到的最小频率间隔,即最小频率间隔反比于数据的长度N。若在中的两个频率分别为和的信号,对用矩形窗截断,要分辨出这两个频率,N必须满足
通过下面实验,验证上面的结论:设一序列中含有两种频率成分,,,采样频率取为,表示为
根据上面结论,要区分出着两种频率成分,必须满足N>400。
1)取时,计算的DFT;
2)取时,计算的DFT。
三、 总体方案设计
1. 信号的离散傅里叶变换
有限长序列的离散傅里叶变换公式
MATLAB函数:fft功能是实现快速傅里叶变换,fft函数的格式为: y=fft(x),返回向量x的不连续fourier变化。ifft功能是实现快速反傅里叶变换,ifft函数的格式为: y=ifft(x),返回向量x的不连续inverse fourier变化。
若是一个N=12的有限序列,利用MATLAB计算它的傅里叶变换并画出图形(见仿真结果中图1和图2),然后再对进行离散傅里叶反变换,并求出画出其波形(见仿真结果中 图3和图4)。
2. 频率分辨率与DFT参数的选择
在DFT问题中,频率分辨率是指在频率轴上所能得到的最小频率间隔,即最小频率间隔反比于数据的长度N。若在中的两个频率分别为和的信号,对用矩形窗截断,要分辨出这两个频率,N必须满足
通过下面实验,验证上面的结论:设一序列中含有两种频率成分,,,采样频率取为,表示为
根据上面结论,要区分出着两种频率成分,必须满足N>400。
1)取时,计算的DFT,并画出和的DFT的图形(见仿真结果中图5、图6和图7);
2)取时,计算的DFT并画出和的DFT的图形(见仿真结果中图8、图9和图10);
试比较两次实验是否能区分出两种频率成分。
注:图7和图8为放大后离散傅里叶变换X(k)
四、主要参数
1.是一个N=12的有限序列。
2. 其中,,采样频率取为;
1)取;
2)取。
五、源程序
1. 离散傅里叶变换及反变换的验证:
N=12;n=0:N-1;xn=cos(pi*n/6);
k=0:N-1;Wn=exp(-j*2*pi*n'*k/N);
xk=xn*Wn;
figure,subplot(1,2,1),stem(n,xn)
subplot(1,2,2),stem(k,abs(xk));
y=fft(xn);figure,stem(k,abs(y))
Pn=exp(j*2*pi*n'*k/N);
xn=xk*Pn/N;
figure,subplot(1,2,1),stem(n,xk)
subplot(1,2,2),stem(k,abs(xn))
y1=ifft(xk);figure,stem(k,abs(y1))
2. 频率分辨率与DFT参数的选择:
f1=2;f2=2.05;fs=10;N=128;n=0:N;
xn=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)
figure plot(n,xn)
figure y=fft(xn); plot(n,abs(y))
N=512;n=0:N;xn=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs);
figure
plot(n,xn)
figure
y=fft(xn);plot(n,abs(y))
六、 仿真结果
图1
图2
图3
图4
图5
图6
图7
图8
图9
图10
七、 设计总结
通过本次课程设计,让我对信号的离散傅里叶变换、离散傅里叶反变换、频率分辨率及DFT参数的选择有了更深的认识,明白了这一软件的强大,可以将专业课《信号与系统》里的问题简单化、形象化,是一个好的辅助工具。
另外,对MATLAB这一软件的许多专业领域的功能有了认识,强化了对这一软件的操作及其想要实现的功能的编程。与其不断的翻看课本,不如进行实际的演练,增加了学习的趣味性。