信号与系统课程设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 3 为系统的冲激响应和零极点图
由单位冲激响应图可以看出系统是发散的。 由系统的零极点图判断因果性的依据可以看出: (1)若 ROC 在最外面极点的外面一个圆的外 面,而易知 H(z)的多项式之比,其分子的阶次不大于分母的阶次,则该系统是因果的,此 时 ROC 不包括单位圆,所以该系统是不稳定的。 (2)若 ROC 位于最外层极点与最内层极点之间,此时 ROC 没有位于最外层极点外边的某个 圆的外面,因此该系统是非因果的,而系统 ROC 包括单位圆,所以该系统是稳定的。 (3)若 ROC 位于最内层极点的里面,此时 ROC 没有位于最外层极点外边的某个圆的外面, 因此该系统是非因果的,而系统 ROC 不包括单位圆,所以该系统是不稳定的。
指导教师评语:
成绩:
指导教师: 年 月 日
离散时间系统的分析
一、 设计目的和意义
1 使学生掌握利用信号分析的软件来完成数值计算、 信号与系统分析的可视化建模及仿真调试, 培养学生主动获取知识和独立解决问题的能力,加强信号与系统基本概念、基本原理和基本分 析方法。 2.巩固已经学过的知识,加深对知识的理解和应用, 加强学科间的横向联系, 学会应用 MATLAB 对实际问题进行仿真。 3 掌握离散序列信号的基本运算,如:相加,相乘,卷积等。 4 掌握 LTI 系统的系统函数复频域到频域的变换方法 5 理解并掌握系统冲激响应的求解方法用 filter 求系统冲激响应 6 理解并掌握零极点图的意义及如何根据零极点图判断因果性,稳定性 7 掌握 LTI 系统的系统函数复频域到频域的变换方法,掌握频率响应的算法,理解频率响应的 表示方法(幅度,相位) 8 用 Matlab 编程绘制离散时间系统的零极点图,脉冲响应曲线,频响曲线并对它们进行分析。 通过这一次的设计,进一步提高自己的实践动手能力。
m3 = 41 11 2.用 filter 命令求系统冲激响应, 用 zplane 求零极点图, 然后用 frepz 函数求频率响应, 再用 abs(),angle()f 分别求出频响曲线的幅度,相位,并将其画出来。 pulse=[1 zeros(1,50)]; fs=1000; b=[1 0.5]; a=[1 -0.7 -0.6 1]; h1=filter(b,a,pulse); figure(1) subplot(2,1,1),stem(h1); title('单位冲激响应'); zr=roots(b) %用 filter 求系统单位冲激响应 %产生单位采样序列 %采样频率
设计要求: 4.5 离散时间系统的分析
考察知识点:卷积和、Z 变换。 设计内容: (1) 自行设计产生两个离散序列信号,对其进行相加、乘及卷积运算。 (2) 利用 filter 命令求下面 LTI 系统的冲激响应: y(n)-0.7y(n-1)-0.6y(n-2) + y(n-3) = x(n) + 0.5x(n-1) 画出系统的零极点图,判断系统的稳定性、因果性。 (3)绘出系统的频响曲线。
图 4 为频响曲wk.baidu.com的幅度和相位 由频响曲线可以看出:该系统是频率选择器,只有在一定频率值处才有值。
五、 体会
在做课程设计的过程中,对书本上的理论知识有了进一步的理解,对于一些似懂非懂的部 分,通过再一次看书,编写程序,调试结果,并对结果进行分析,也理解了。但是,感觉自己 对与理论的实际运用还是比较欠缺。同时知道了学习知识的方法,学习理论不是一味的看书, 理论应该建立在实践的基础上,通过编写程序去实现某个功能, 对相应知识点有了更进一步 的了解,有助于理论的学习。 通过做这次课程设计,对 MATLAB 有了初步了解,知道了 MATLAB 的一些用途,虽然选 修了数学建模实验课,老师在课堂上也讲了一些简单的 MATLAB 的用法,但是在做设计的过 程中才知道那些远远不够,所以又花了很多时间去找那些函数怎么用,怎么画图啊等等,在理 论中求频率响应计算很麻烦,但是用 MATLAB 只需一个简单的函数就可以实现,但有许多细 节如一些语句等,由于时间关系还是不太明白,需要今后加以学习。在做课程设计过程中, 发 现什么事不能等别人,自己需要尽自己的努力去做,有不明白的地方要及时去问,还有要学会 利用身边各种资源比如图书馆,网络等 ,什么事情没有亲自去做,不要妄下结论,不要认为自 己不行,只有做了才知道其实一些事只要自己认真做了是可以办的的。同时课程设计培养了我
pk=roots(a) g=b(1)/a(1) subplot(2,1,2),zplane(b,a); title('系统的零极点图'); [h w]=freqz(b,a,100,fs); figure(2) subplot(2,1,1),plot(w,abs(h)); %画出频响曲线的幅度 title('频响曲线的幅度'); subplot(2,1,2),plot(w,angle(h));% 画出频响曲线的相位 title('频响曲线的相位'); 结果:zr = -0.5000 pk = -0.9730 0.8365 + 0.5728i 0.8365 - 0.5728i g = 1 由上面求出的零点、极点和系统零极点增益可初步得出系统的零极点表达式: %frepz 函数画出滤波器的频率响应 %用 roots 求解系统的零,极点值 % zplane(b,a)函数绘制系统零极点图
Columns 10 through 18 0.3791 -0.9958 Columns 19 through 27 0.0598 0.8783 Columns 28 through 36 -0.3970 0.4641 Columns 37 through 41 0.5164 -1.0892 0.5933 0.3882 -0.7097 -0.5579 0.8419 -0.0946 -0.8395 0.8961 -0.0334 -0.7192 0.1919 0.5987 -0.6398 -0.2285 0.9723 -0.7004 -0.2949 0.6576 -0.7862 -0.0153 0.6826 -0.3103 -0.7880 1.4438
整理后得:
H( z )
z ^ 2( z 0.5) z ^3 0.7 z ^ 2 0.6 z 1
(2)
与上试(1)比较可知 H(z)有两个重根零点,故 H(z)的表达式为(1)式
四、 设计结果及分析
图一、产生两个离散序列信号
图二、两个离散序列信号相加、乘、卷积
由图可以看出离散序列信号相加就是 两序列同序号的数值逐项对应相加,但是注意, 当序列 x1 和 x2 的长度不等或位置不对应时,首先应使两者的位置对齐,然后用 函数使其长度相等后相加。 离散序列信号相乘就是两序列同序号的数值逐项对应相乘。
课 程 设 计 学 生 日 志
时间 6月3日 4至7日 8至9日 10 至 11 日 12 日 查看题目,理解题意,明确目的 学习 MATLAB 软件及信号与系统中相应知识点 查阅资料,初步确定设计方案 进行设计,并在设计过程中查找方案中的不足,修改方案 整理并书写设计报告 设计内容
课 程 设 计 评 语 表
西南科技大学
课 程 设 计 报 告
课程名称: 设计名称: 姓 学 班 名: 号: 级:
信号与系统课程设计 离散时间系统的分析 吴庆锋 20084744 电子 0803 何燕玲 6 月 3 至 6 月 12
指导教师: 起止日期:
课 程 设 计 任 务 书
学生班级: 设计名称: 电子 0803 学生姓名: 吴庆锋 学号: 20084744 离散时间系统的分析 指导教师: 何燕玲 起止日期: 6 月 3 至 6 月 12
H ( z)
z ^ 2( z 0.5000) (z 0.9730)( z 0.8365 0.5728i)( z 0.8365 0.5728i )
(1)
又由题所给表达式两边取 Z 变换得:
Y(z) - 0.7Y(z)/z - 0.6Y(z)/z^2 Y ( z ) / z ^3 X ( z ) 0.5 X ( z ) / z
k
翻转并平移后与另一个函数的乘积的 求和,若是在连续时间情况下则为求积分 (2)MATLAB 中的实现 1 离散时间信号卷积使用 MATLAB 中的 conv 函数 2.在 MATLAB 中,filter 函数的作用是进行数字滤波,其实也就是系统的响应序列求解; y=filter(b,a,x); y=filter(b,a,x)表示向量 b 和 a 组成的系统对输入 x 进行滤波,系统的输 出为 y。 3.在 MATLAB 中,zplane 函数——绘制系统零极点图 4.在 MATLAB 中,有专门的 frepz()函数来求解。调用形式为 [h w]=freqz(b,a,,n,fs)其中 向量 b 和 a 为离散系统的系数,fs 为采样频率,n 为在区间[0 fs/2]频率范围内选取的频率点 数,f 记录频率点数。由于 freqz 函数是采用基 2 的 FFT 的算法,n 常取 2 的幂次方,以便提 高计算速度。 5.MATLAB 提供了如 abs(),angle()等基本函数用来计算 DTFT 幅度,相位。
二、 设计原理
(1)题目计算原理 1.离散时间信号相加:序列 f(n)与 h(n)相加,是指两序列同序号的数值逐项对应相加,构成 一个新的序列,即 y(n)=f(n)+h(n) 2.离散时间信号相乘:序列 f(n)与 h(n)相乘,是指两序列同序号的数值逐项对应相乘,构成 一个新的序列,即 y(n)=f(n).*h(n)。注意要用点乘 3.离散卷积和:离散函数 f(n)与 h(n) 的卷积记作 f (n)h(n k ) ,它是其中一个函数
独自处理问题的能力以及做事的态度。俗话说:态度决定一切。只有有端正的态度,才能尽心 的去做。才有可能成功。 总之,在做这次课程设计的过程中学到了很不单单是理论知识,动手能力,还用一些我们 学生已经遗失的精神,如独立,合作,帮助等等。这些也正是我们缺少的。
(3)利用零极点图判断因果性,稳定性的依据:
1.一个离散时间 LTI 系统当且仅当它的系统函数的 ROC 是在某一个圆的外边,且包括无限远
点,该系统就是因果的。
2.一个 LTI 系统当且仅当它的系统函数 H (z) 的 ROC 包括单位圆, |z|=1 时该系统就是稳定的。
三、 详细设计步骤
1. 阅读题目,明确题目中要考察的知识点,复习相应的知识点,读懂题目中要求设计的目的。 2. 查找相关知识点,如何用 MATLAB 实现,并理解相应程序。 3. 初步进行编程,不懂的地方及时解决。 (1)理解离散序列信号相加,相乘,卷积的运算方法,并用 MATLAB 编写程序,实现信号的相 加,相乘,卷积。 function f6(n1,n2) n=n1:n2; x1=sin(2*n); x2=cos(3*n); subplot(2,1,1);stem(n,x1);title(' x1=sin(2*n)'); subplot(2,1,2);stem(n,x2);title(' x2=cos(3*n)'); y1=x1+x2; m1=length(y1); y2=x1.*x2; m2=length(y2); y3=conv(x1,x2) m3=length(y3) figure(2) subplot(3,1,1);stem(0:m1-1,y1);title('y1=x1+x2'); subplot(3,1,2);stem(0:m2-1,y2);title('y1=x1*x2'); subplot(3,1,3);stem(0:m3-1,y3);title('y1=conv(x1,x2)') 运行 >> f6(0,20) y3 = Columns 1 through 9 0 -1.2388 0.9093 -1.6570 1.3429 -0.2892 -0.3349 -0.1229 1.0376 %两个信号卷积 %两个信号相乘 %两个信号相加