资源描述
专业基础实践课程设计
课程设计名称:专业基础实践
课程设计题目:Matlab运算与含有受控源电路的戴维南定理应用分析
初始条件:
1. Matlab7.1以上版本软件;
2. 专业基础实践辅导资料:“Matlab语言基础及使用入门"、“Matlab及在电子信息课程中的应用”、“线性代数”及“信号处理类”相关书籍等;
3. 先修课程:高等数学、线性代数、电路、Matlab应用实践及信号处理类基础课程等。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1. 实践内容:根据指导老师给定的7套题目,按规定选择其中1套独立完成;
2. 本专业基础实践统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,完成针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表等),并对实验结果进行分析和总结。具体设计要求包括:
① 初步了解Matlab、熟悉Matlab界面、进行简单操作等;
② Matlab的数值计算:创建矩阵、矩阵运算、多项式运算、线性方程组、数值统计等;
③ 基本绘图函数:了解plot, plot3, mesh, surf等,要求掌握以上绘图函数的用法、简单图形标注、简单颜色设定等;
④ 使用文本编辑器编辑m文件,会函数调用等;
⑤ 能完成简单电路的Matlab编程分析;
⑥ 按要求参加专业基础实践的实验演示和答辩等.
3. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式"撰写,具体包括:
① 目录;
② 与设计题目相关的理论分析、归纳和总结;
③ 与设计内容相关的原理分析、建模、推导、可行性分析;
④ 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;
⑤ 课程设计的心得体会(至少500字);
⑥ 参考文献(不少于5篇);
⑦ 其它必要内容等。
时间安排:1。0周(分散进行)
目录
1.概述 1
2.理论及原理分析 2
2.1 设计内容要求 2
2.2 矩阵生成 4
2.3 plot()函数 5
2.4 Matlab中乘法使用 5
3.程序设计及实现 6
3.1第一题 6
3.2第二题 6
3.3第三题 7
3.4第四题 8
3.5第五题 12
3.6第六题 13
3.7第七题 14
3.8第八题 14
3.9第九题 16
3.10第十题 17
3.11第十一题 19
4.实验结果分析 22
5.心得体会 23
参考文献 24
1。概述
Matlab翻译为“矩阵实验室”,该技术手段在信号处理系统中得到了较为广泛地应用。Matlab 作为信号处理方法中的一种,能够对在信号处理过程中.对信号进行有效地检测和变换,并且在滤波和识别过程中,发挥着重要作用。将Matlab 应用于信号处理系统当中,对于提升系统性能,发挥Matlab 信号处理系统功能和作用来说,起到了至关重要的作用。
在进行信号处理过程中,Matlab发挥了重要的作用,这一过程中,需要对Matlab 滤波器、频域变换、图像显示功能进行应用。Matlab在信号处理过程中,主要通过对离散模块、信号系统模块等进行应用,对信息进行滤波、采集、输出、仿真测试等操作.
基于Matlab 的信号处理系统,能够在信号处理工作中得到广泛地应用,这与Matlab 技术本身的强大功能不可分割.同时,Matlab 信号处理系统应用过程中,需要注重对编程程序的有效应用,能够保证Matlab 在实际应用过程中,发挥应有作用.基于这一点,Matlab 需要进行不断完善,并且需要对Matlab 利用 的适应性问题进行慎重考虑,保证系统设计过程中,发挥Matlab 滤波器、图像显示、频域转换的功能。
2。理论及原理分析
2。1 设计内容要求
1. 已知t=linspace(0,2*pi,6),求t的正弦和正弦的绝对值.
2. 绘制函数在时的曲线。
3. 已知a=[1,3,0;2,0,1;4,6,5], a1=logical([1 0 1]),a2= logical([1 1 0]),b=a>1,求a(a1,a2)和a(b)。
4. 分析下面每条指令的功能并运行,观察执行结果.
(1)X=0:0.25:3;
Y=X。*exp(—X);
plot(X,Y),xlabel(‘x'), ylabel(‘y’),title(‘y=x*exp(—x)’);
(2)A=zeros(3,5)
A(:)=—4:5
L=abs(A)>4
islogical(L)
X=A(L)
(3)A=[1:5;6:10]
pow2(A)
(4)A=zeros(3,2)
A(:)=1:6
A=A*(1+i)
A1=A.’;
B1=A’;
(5)A=ones(2,3)
B=ones(2)
C=eye(4)
D=diag(C)
E=repmat(C,1,3)
5. 计算在x=0。1与10处的值。
6. 求函数, n=100的值。
7. 求1500个元素的随机数向量A中大于0。5的元素个数。
8。 用图形表示连续调制波形,运行下面的程序,观察结果,并简单说明。
t1=(0:11)/11*pi;
y1=sin(t1)。*sin(9*t1);
t2=(0:100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,’r.'),axis([0,pi,—1,1]),title('子图 (1)')
subplot(2,2,2),plot(t2,y2,’r。’),axis([0,pi,-1,1]),title('子图 (2)’)
subplot(2,2,3),plot(t1,y1,t1,y1,'r。')
axis([0,pi,-1,1]),title('子图 (3)’)
subplot(2,2,4),plot(t2,y2)
axis([0,pi,—1,1]),title(’子图 (4)')
9。 已知方程组,用矩阵除法来解线性方程组。
10.已知,其中t的范围是[0 10],计算y的微分和积分并给出曲线图。
11. 在如题图1所示的电路中,已知,,,,,,求(可任意变动)能获得的最大功率。
题图1 所需分析电路图
2。2 矩阵生成
〈1> 元素输入法
这是最简单,也是最常用的一种矩阵的生成方法。例如:
〉〉A=[1,2,3;4,5,6;7,8,9]
>〉B=[1 2 3;4 5 6;7 8 9]
注意:整个矩阵必须用”[]"括起来;矩阵的行与行之间必须用”;”或回车键”Enter”隔开;元素之间必须用逗号",”或空格分开。
<2〉 均匀采样生成
用法:linspace(x1,x2,N)
功能:linspace是Matlab中的均分计算指令,用于产生x1,x2之间的N点行线性的矢量.其中x1、x2、N分别为起始值、终止值、元素个数。若默认N,默认点数为100。
相关函数:logspace
用法:x=logspace(a, b, n)
功能:logspace(a, b, n)生成一个(1xn)数组,数据的第一个元素值为a,最后一个元素为b,n是总采样点数.需要注意的是,此时产生的数组元素在10^a 到10^b上并不是均匀分布的,而形成一个对数曲线。
〈3〉 几种特殊矩阵的生成方法
1、A=[] %空矩阵
2、A=zeros(2,3) %生成元素全为零的2x3矩阵
3、A=ones(2,3) %生成元素全为1的2x3矩阵
4、A=rand(2,4) %生成随机的2x4矩阵
5、矩阵的提取:
A=[1:5;6:10;3:7]
B=A(2:3,2:4) %提取矩阵A的第2,3行与第2,3,4列交叉处的元素.
6、A=magic(3) %创建魔方矩阵.
7、A=eye(3,4) %使用eye(m,n)可得到一个允许的最大单位矩阵,其余处补0。
2。3 plot()函数
1、plot(y)
当y为向量时,是以y的分量为纵坐标,以元素序号为横坐标,用直线依次连接数据点,绘制曲线。若y为实矩阵,则按列绘制每列对应的曲线。
2、plot(x,y)
若y和x为同维向量,则以x为横坐标,y为纵坐标绘制连线图.若x是向量,y是行数或列数与x长度相等的矩阵,则绘制多条不同色彩的连线图,x被作为这些曲线的共同横坐标.若x和y为同型矩阵,则以x,y对应元素分别绘制曲线,曲线条数等于矩阵列数。
3、plot(x1,y1,x2,y2,……)
在此格式中,每对x,y必须符合plot(x,y)中的要求,不同对之间没有影响,命令将对每一对x,y绘制曲线.
以上三种格式中的x,y都可以是表达式.plot是绘制一维曲线的基本函数,但在使用此函数之前,须先定义曲线上每一点的x以及y坐标.
2。4 Matlab中乘法使用
Matlab中乘法包括点乘和叉乘。
<1〉 数与矩阵的乘法:(m等价于m.)
m×A : m与A中各元素相乘
〈2> 矩阵与矩阵的乘法:
A×B: A、B矩阵按线性代数中矩阵乘法运算进行相乘(注意维数匹配)
A。*B: A、B对应元素相乘(注意维数相同)
3。程序设计及实现
3.1第一题
1。已知t=linspace(0,2*pi,6),求t的正弦和正弦的绝对值。
代码:
syms a b %定义两个符号变量
t=linspace(0,2*pi,6); %范围0~2pi,元素个数为6
a=sin(t),y=abs(t)
实验截图:
图 Error! Bookmark not defined. t的正弦和余弦
3。2第二题
2.绘制函数在时的曲线。
代码:
x=0:0.001:1;
y=x.*exp(—x);
plot(x,y)
title('电信1403—苏静’)
实验截图:
图 Error! Bookmark not defined. 函数图像
3。3第三题
3.已知a=[1,3,0;2,0,1;4,6,5], a1=logical([1 0 1]),a2= logical([1 1 0]),b=a〉1,求a(a1,a2)和a(b).
代码:
a=[1,3,0;2,0,1;4,6,5];
a1=logical([1 0 1]); %向量a1
a2= logical([1 1 0]); %向量a2
b=a>1; %a中大于1的元素=1,反之=0
a(a1,a2) %提取a1行,a2列的元素
a(b) %提取b矩阵对应位置为1的a矩阵元素
实验截图:
图 1 a(a1,a2)和a(b)结果图
3。4第四题
4.分析下面每条指令的功能并运行,观察执行结果。
(1)
X=0:0。25:3; %x取值设定0-3,步长0。25
Y=X.*exp(—X); % y=x∙e-x
plot(X,Y),
xlabel('x’),
ylabel(’y'),
title(’y=x*exp(-x) '); %显示图形
执行结果:
图 Error! Bookmark not defined. y=x*exp(—x)图像
(2)
A=zeros(3,5), %产生3*5的零矩阵
A(:)=—4:10, %给矩阵赋值,—4~5,步进1
L=abs(A)>4, %判断矩阵绝对值是否大于4
islogical(L), %若L为逻辑值,返回1,反之返回0
X=A(L) %提取L矩阵对应位置为1的A矩阵元素
执行结果:
图 2 执行过程A的变化及最终结果
(3)
A=[1:5;6:10] %产生【123678 45 910】
pow2(A) %返回数组,数组元素变成2原来A元素次方
执行结果:
图 6 矩阵A及A*A
(4)
A=zeros(3,2) % 生成3*2的0矩阵
A(:)=1:6 %给A赋值1~6,步进1
A=A*(1+i) %A的元素分别*(1+i)
A1=A.' %对A进行数组转置
B1=A' %对A进行矩阵转置
执行结果:
图 7 矩阵A的转置及共轭矩阵
(5)
A=ones(2,3) %生成2*3的1矩阵
B=ones(2) %生成2*2的1矩阵
C=eye(4) %生成4*4的单位矩阵
D=diag(C) %获取C的对角线元素矩阵
E=repmat(C,1,3) %将C变成1*3的新矩阵
执行结果:
图 8 各矩阵元素值
3.5第五题
5。计算在x=0。1与10处的值.
代码:
x=[2,0,0.1,0,0,—10];
y=polyval(y,0.1);
y=polyval(y,10);
实验截图:
图 9 x在0.1处y的值
图 10 x在10处y的值
3.6第六题
6。求函数, n=100的值。
代码:
n=100; %设置n的值
k=1:n; %循环变量直至k=n=100
f=k.^—3; %求(1k-3)值
y=sum(f) %求和
实验截图:
图 11 函数求解结果
3。7第七题
7.求1500个元素的随机数向量A中大于0.5的元素个数。
代码:
x=rand(1500,1); %产生随机数
y=x〉0。5; %判断是否大于0.5
n=sum(y) %累加计数
实验截图:
图 12 程序两次执行结果
3。8第八题
用图形表示连续调制波形,运行下面的程序,观察结果,并简单说明。
代码1:
syms t
y=sin(t)*sin(9*t); %显示的波形
ezplot(y)
xlabel(’x轴')
ylabel(’y轴')
title('y=sin(t)*sin(9*t) 电信1403—苏静') %设置标题
实验截图1:
图 13 函数图像
代码2:
t1=(0:11)/11*pi; %将t1在0~pi分成12段
y1=sin(t1)。*sin(9*t1); %调制波形
t2=(0:100)/100*pi; %将t2在0~pi分成101段
y2=sin(t2).*sin(9*t2); %调制波形
subplot(2,2,1), %将窗口分为四个
plot(t1,y1,'r.'), %描点
axis([0,pi,—1,1]), %设置x,y轴的数值
title('子图 (1)' %显示标题
subplot(2,2,2),plot(t2,y2,’r。'),axis([0,pi,-1,1]),title(’子图 (2)’)
subplot(2,2,3),plot(t1,y1,t2,y2,’r。’)
axis([0,pi,-1,1]),title('子图 (3)’)
subplot(2,2,4),plot(t2,y2)
axis([0,pi,—1,1]),title('子图 (4)')
实验截图2:
图 14 程序执行结果四个子图
3.9第九题
9。已知方程组,用矩阵除法来解线性方程组。
代码:
A=[3,—1,2;-5,1,3;1,—1,4]; %方程左边x的系数
b=[9;5;8]; %方程右边的值
xinv=inv(A)*b %求逆
实验截图:
图 15 求解结果
3。10第十题
10.已知,其中t的范围是[0 10],计算y的微分和积分并给出曲线图。
(1)微分
代码:
syms t;
y=exp(—1)*cos(t);
x=diff(y,t)
t=0:0。1:10;
x=subs(x,t); %用数值代替符号变量替换函数,将sym转化成为Double
plot(t,x);
title(’微分 电信1403-——苏静’)
实验截图:
图 16 微分值求解
图 17 微分图像
(2)积分
代码:
syms t;
y=exp(—1)*cos(t);
x=int(y,t,0,10) %定积分
s=int(y,t) %不定积分
t=0:0.1:10;
s=subs(s,t); %用数值代替符号变量替换函数,将sym转化成为Double
plot(t,s);
title(’积分 电信1403-—-苏静’)
实验截图:
图 18 积分值求解
图 19 积分图像
3。11第十一题
11。 在如题图1所示的电路中,已知,,,,,,求(可任意变动)能获得的最大功率.
题图1
解:据题意分析可知,为了能够输出最大功率,根据戴维南定理可知,当等效阻抗Zeq(从bc端往左看)等于ZL时,ZL上可以得到最大功率输出PLmax=Uoc24RL。所以我们要求出Zeq,而为了求Zeq,我们采取Zeq=开路电压/短路电流。
因为电路中含有受控源,所以,我们可以将ZL断开后加入一个电流源,然后以c为参考点,列写节点电压方程:
a点:1R1+1jwC+1jwL+1R2Ua-1R2Ub=UsR1+1jwC
b点:-1R2Ua+1R2Ub=Is+U1
开路电压:Uoc=Ub
解得:
短路电流:Is=1∠-45°V
此时:
Zeq=UocIs=Ub
最大功率:
PLmax=Uoc24RL,RL=ReZL
Matlab 程序代码:
R1=1;R2=2;C=1000/10^6;L=0。4/10^3;w=1000;
Y11=1/R2+1/(j*w*L)+1/(R1+1/(j*w*C));
A=[Y11,-1/R2,0;—1/R2,1/R2,-0.5;1,0,—1];
B=[1/(R1+1/(j*w*C)),0;0,1;0,0];
Us=10*exp(-j*45*pi/180);Is=0; %令Is=0,求Uoc=X1(2)
X1=A\B*[Us,Is]。';
Uoc=X1(2),absuoc=abs(Uoc) %解出Uoc
Us2=0;Is2=1; %令Is=1A,并将Us置0,求Zeq=Ub/Is=X2(2)
X2=A\B*[Us2,Is2]。';Zeq=X2(2) %解出Zeq
ZL=Zeq’,Pmax=(abs(Uoc))^2/(4*real(Zeq)) %计算最大功率
实验截图:
图 20 各个值结果
4。实验结果分析
l Matlab中的pi与不同。
l plot(Y)如果Y是m×n的数组,以1:m为X横坐标,Y中的每一列元素为Y坐标,绘制n条曲线;如果Y是n×1或者1×n的向量,则以1:n为横坐标,Y为坐标表绘制1条曲线;如果Y是复数,则plot(Y)等效于plot(real(Y),imag(Y));其它使用情况下,忽略坐标数据中的虚部.
l Matlab用法小节:①如果输入单行后直接按回车,则直接显示结果。②如果希望输入多行,则需要在行尾使用“Shift"+“Enter"组合键来换行。③如果输入多行,但只需显示最后一条结果,可以在之前的语句末尾使用“;”。
l 戴维南定理只对外电路等效,对内电路不等效.也就是说,不可应用该定理求出等效电源电动势和内阻之后,又返回来求原电路(即有源二端网络内部电路)的电流和功率.应用戴维南定理进行分析和计算时,如果待求支路后的有源二端网络仍为复杂电路,可再次运用戴维南定理,直至成为简单电路。而且它只适用于线性的有源二端网络。如果有源二端网络中含有非线性元件时,则不能应用戴维南定理求解.在对电路进行分析时适当的选取戴维南定理和诺顿定理将会大大化简电路,降低运算难度.
5。心得体会
这次的课程设计可以说让我学到了很多书本之外的知识,同时也认识到了Matlab在信号处和分析中占有的不可或缺的地位,Matlab作为信息技术发展到一定阶段的产物,能够对传统信号处理方式进行改进,保证信号处理具有较好的效率性和可靠性。
当初在知道有一个需要用Matlabl来做的课程设计的时候,有一种很茫然的感觉,就是当看到分配下来的题目要求时,我的第一感觉就是很简单,应为在《数字信号处理》课上已经做过太多类似这样的题,可是当我意识到要将这些要求在电脑上用Matlab上实现而不是在纸上用笔去算的时候,浑身上下突如其来的涌来一种无力感。仿佛自己原本好端端在一条熟悉的路上走着,突然发现自己踏入了一个完全陌生的世界,完全不知道接下去做什么,怎么做,连先迈哪只脚都不知道,犹如忘却了如何走路。
为了能够完成这次课程设计,当务之急就是掌握Matlab的使用方法,为此还跑了还几天的图书馆,在网上疯狂的搜索相关资料。最后感觉可能是那几天一直盯着电脑屏幕的缘故,视力都下降好多。就这样一步一步的把题目的要求完成,终于,功夫不负有心人,这此的课程设计终于完成了,心里的一块大石头也落地了,可以回家好好过年了.
在这个磨人的课程设计结束之后,现在回过头来,发现自己不知不觉中成长了许多,不单单是了解Matlab的基本使用,更为重要的是学会了如何去面对和解决问题,如何调整情绪,将身上的负能量转化为正能量。我想这些是单纯的看书学不来,换个角度去看世界,才会发现生活是这么的美。
参考文献
[1]于洋。基于Matlab的信号处理系统与分析[J]. 电子世界,2014(17):89。
[2]程佩青.数字信号处理[M]。北京:清华大学出版社,2010:20。
[3]刘泉,阙大顺,郭志强。数字信号处理[M]。北京:电子工业出版社,2009:23—25。
[4]肖伟,刘忠。 MATLAB程序设计与应用[M]。北京:清华大学出版社,2005
[5] Cleve Moler。 Experiments with MATLAB[M]。北京: 北京航空航天大学出版社,2013
12
展开阅读全文