信号与系统实验指导书2014版(2)

2019-08-03 11:18

10.90.80.70.60.50.40.30.20.10-3-2-10123⑵ 离散信号的MATLAB表示 ① 指数序列

指数序列Aak可用MATLAB中的数组幂运算a.?k实现。 【例6】 衰减指数序列的MATLAB表示如下:(取A?1,a??0.6) % program exa_6.m, exponential sequence k=0:10;A=1;a=-0.6; fk=A*a.^k; stem(k,fk)

10.80.60.40.20-0.2-0.4-0.6012345678910② 正弦序列

正弦序列的MATLAB表示与连续信号相同,只是用stem(k,f)画出序列的波形。 【例7】 正弦序列sin(?0k)的MATLAB实现如下:(取?0??/6)

5

% program exa_7.m, discrete-time sinusoidal signal k=0:39;

fk=sin(pi/6*k); stem(k,fk)

10.80.60.40.20-0.2-0.4-0.6-0.8-10510152025303540③ 单位脉冲序列

单位脉冲序列可借助MATLAB中的零矩阵函数zeros表示。函数zeros(1,N)产生一个由N个零组成的列向量。

【例8】 有限区间的单位脉冲序列?[k]的MATLAB实现如下:(取区间:?1010)

% program exa_8.m, delta sequence

k=-10:10;

delta=[zeros(1,10),1,zeros(1,10)]; % 或者: delta=[(k-0)==0]; stem(k,delta)

10.90.80.70.60.50.40.30.20.10-10-8-6-4-20246810④ 单位阶跃序列

单位阶跃序列可借助MATLAB中的单位矩阵函数ones表示。函数ones(1,N)产

6

生一个由N个1组成的列向量。

【例9】 有限区间的单位阶跃序列u[k]的MATLAB实现如下:(取区间:?1010)

% program exa_9.m, unit step sequence

k=-10:10;

uk=[zeros(1,10),ones(1,11)]; % 或者: uk=[k>=0]; stem(k,uk)

3.实验内容

⑴ 运行以上九个例子程序,掌握一些常用基本信号的特点及其MATLAB实现方法;改变有关参数,进一步观察信号波形的变化。 ⑵ 在 k?[?10:10] 范围内产生并画出以下信号:

a) f1[k]??[k]; b) f2[k]??[k+2]; c) f3[k]??[k-4];

d) f4[k]?2?[k+2]??[k-4]。

⑶ 在 k?[0:31]范围内产生并画出以下信号:

a) f1[k]?sin??4k?cos??4k?; b) f2[k]?cos2??4k?; c) f3[k]?sin??4k?cos??8k?。

请问这三个信号的基波周期分别是多少?

10.90.80.70.60.50.40.30.20.10-10-8-6-4-202468107

实验二 信号的基本运算

1.实验目的

? 学会使用MATLAB完成信号的一些基本运算;

? 了解复杂信号由基本信号通过尺度变换、翻转、平移、相加、相乘、差

分、求和、微分及积分等运算来表达的方法;

? 进一步熟悉MATLAB的基本操作与编程,掌握其在信号分析中的运用特

点与使用方式。

2.实验原理

⑴ 信号的尺度变换、翻转、平移

信号的尺度变换、翻转、平移运算,实际上是函数自变量的运算。在信号的尺度变换f(at)和f[Mk]中,函数的自变量乘以一个常数,在MATLAB中可用算术运算符“﹡”来实现。在信号翻转f(?t)和f[?k]运算中,函数的自变量乘以一个负号,在MATLAB中可以直接用负号“-”写出。翻转运算在MATLAB中还可以利用fliplr(f)函数实现,而翻转后信号的坐标则可由?fliplr(k)得到。在信号时移f(t?t0)和f[k?k0]运算中,函数自变量加、减一个常数,在MATLAB中可用算术运算符“+”或“-”来实现。

【例10】 对图示三角波f(t),试利用MATLAB画出f(2t)和f(2?2t)的波形。

10.90.80.70.60.50.40.30.20.10-3-2-101238

解:实现f(2t)和f(2?2t)的MATLAB程序如下:

% program exa_10.m, Changed triangular pulse signal t=-3:0.001:3;

ft1=tripuls(2*t,4,0.5); subplot(2,1,1) plot(t,ft1) title('f(2t)')

ft2=tripuls((2-2*t),4,0.5); subplot(2,1,2) plot(t,ft2)

title('f(2-2t)')

程序运行结果如下图所示。

1

0.8

0.6 0.4 0.2

0-3-2

1

0.5

0 -3-2

⑵ 离散序列的差分与求和

离散序列的差分?f[k]?f[k]?f[k?1],在MATLAB中用diff函数来实现,其调用格式为:

y?diff(f)

f(2t)-10f(2-2t)123-10123离散序列的求和?f[k]与信号相加运算不同,求和运算是把k1和k2之间的所有

k?k1k2样本f[k]加起来,在MATLAB中用sum函数来实现,其调用格式为:

9


信号与系统实验指导书2014版(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:公务员考试判卷老师讲申论很有道理

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: