实验1 离散时间信号的时域分析

一、实验目的

(1)了解MATLAB语言的主要特点及作用;

(2)熟悉MATLAB主界面,初步掌握MATLAB命令窗和编辑窗的操作方法;

(3)了解常用时域离散信号及其特点;

(4)掌握MATLAB产生常用时域离散信号的方法;

(5)掌握MATLAB中时域离散信号的基本运算方法;

(6)学习简单的数组赋值、数组运算、绘图的程序编写。

二、知识点提示

本章节的主要知识点是利用MATLAB产生数字信号处理的几种常用典型序列及数字序列的基本运算;重点是单位脉冲、单位阶跃、正(余)弦信号的产生;难点是MATLAB关系运算符“==、>=”的使用。

三、实验原理

1.时域离散信号的概念

在MATLAB中,时域的离散信号可以通过编写程序直接生成,也可以通过对连续信号等间隔抽样获得。离散序列的时域运算主要为信号的相加和相乘,信号的时域变换包括移位、反转及尺度变换。

2.用MATLAB生成离散信号需注意的问题

(1)有关数组与下标

MATLAB中处理的数组,其下标默认从1开始递增,例如x=[9 8 7],表示x(1)=9;x(2)=8;x(3)=7。要表示一个下标不从1开始的数组,一般需要采用两个矢量,如:

n=[-3:1:2],x=[9 8 7 6 5 4],则有x(-3)=9;x(-2)=8;x(2)=4。

(2)信号的图形绘制

从本质上来讲,MATLAB及其任何计算机语言处理的信号都是离散信号。当我们把信号的样点值取的足够密,作图时采用特殊的命令,就可以把信号近似看成连续信号。

在MATLAB中,离散信号与连续信号有时在程序编写上是一致的,只是在作图时选择不同的绘图函数而已。

连续信号作图用plot函数,绘制线形图;离散信号作图使用stem函数,绘制脉冲图。

3.常用时域离散信号

常用时域离散信号有单位脉冲序列、单位阶跃序列、实指数序列、复指数序列、正弦序列、矩形序列以及随机序列等。

下面以单位脉冲序列的产生为例做详细说明。其他函数类似。

单位脉冲序列

(1)用MATLAB的关系运算式来产生单位脉冲序列 。

n1=-5; n2=5; n0=0; %显示范围从n1到n2

n=n1:n2; %横坐标

x=[n==n0]; %生成离散信号x(n)//n=0 返回值为1

stem(n,x,’filled’); %绘制图形,且圆点处用实心圆表示//field 小圆点

(2)用zeros函数和抽样点直接赋值产生单位脉冲序列 。

n1=-5; n2=5; n0=0; %显示范围从n1到n2

n=n1:n2; %横坐标

nt=length(n); %序列的长度

x=zeros(1,nt); %先产生全零的序列,对应-5到5

x(n0-n1+1)=1; %将n=0处的序列值赋值为1,n=0就是第(n0-n1+1)个值

stem(n,x,’filled’); %绘制图形,且圆点处用实心圆表示

(3)如果用函数来实现,需要在.m文件里面完成,函数名为impseq(n0,n1,n2)//三个入口参数

function x=impseq(n0,n1,n2);//fun 函数引导词

n=n1:n2;

x=[n==n0];

stem(n,x,'filled');

(4)单位阶跃序列可以用关系运算>=或zeros和ones产生;正余弦用sin或cos产生;随机信号用rand函数产生。

4.常用时域离散信号的运算

为例

n1=0; n2=10; n01=2;n02=4 %显示范围从n1到n2,非零值位于2和4

n=n1:n2; %横坐标,写n=n1:1:n2也是一样的意思

x1=[(n-n01)==0]; %生成离散信号

x2=[(n-n02)==0]; %生成离散信号

x3=x1+x2;

subplot(3,1,1); stem(n,x1,’filled’); %绘制图形,x1子图,且圆点处用实心圆表示

subplot(3,1,2); stem(n,x2,’filled’); %绘制图形,x2子图,且圆点处用实心圆表示

subplot(3,1,3); stem(n,x3,’filled’); %绘制图形,x3子图,且圆点处用实心圆表示

四、实验内容

在MATLAB中实现

序列,显示范围

(函数命名为impseq(n0,n1,n2))。并利用该函数实现序列: ;

n1=-3; n2=10; n0=-3;

n=n1:n2;

n01=3;n02=6;

x1=[(n-n01)==0];

x2=[(n-n02)==0];

x3=2*x1+x2;

stem(n,x3,'filled' )

在MATLAB中实现

序列,显示范围

(函数命名为stepseq(n0,n1,n2))。并利用该函数实现序列:

函数文件

function x=stepseq(n0,n1,n2);

n=n1:n2;

x=[n>=n0];

stem(n,x,'filled');

程序

n1=-5;

n2=20;

n0=0;

n=n1:n2;

n01=-2;n02=2;

x1=[(n-n01)>=0];

x2=[(n-n02)>=0];

x3=x1+x2;

stem(n,x3,'filled')

在MATLAB中利用数组运算符“.^”来实现一个实指数序列。如:

函数文件

function y=zhishu(a,n1,n2)

n=n1:n2;

y=(a).^n;

程序

y=zhishu(0.3,0,50);

n=0:50;

stem(n,y)

在MATLAB中用函数sin或cos产生正余弦序列,如:

请用plot函数画出连续波形,用stem函数画出离散波形。

n=0:20;

x=11*sin(0.3*pi*n+0.2*pi)+5*cos(0.3*pi*n);

plot(n,x)

stem(n,x)

//下面的选作

实验报告:题目下面:函数+运行结果

实验报告命名格式:实验n+姓名+学号

函数文件

function y=yidong(a,n1,n2)

n=n1:n2;

y=3*cos(2*pi/10*(n-a));

程序

n=0:20;

y1=yidong(0,0,20);

y2=yidong(-3,0,20);

y3=yidong(3,0,20);

subplot(3,3,1);

stem(n,y1);

subplot(3,3,2)

stem(n,y2);

subplot(3,3,3);

stem(n,y3)

函数

function y=u(n0,n1,n2)

n=n1:1:n2;

y=[(n-n0)>=0];

程序

n1=-4:6;

n2=-5:8;

x1=u(-2,-4,6);

x2=u(4,-5,8);

y1=[0 x1 0 0];

y2=x2;

y=y1+y2;

stem(n2,y)

五、思考题

1.1 产生单位脉冲序列和单位阶跃序列各有几种方法?如何使用?

答:

各有两种方法。

1) 单位脉冲序列

①利用条件语句:y=[(n-n0)==0]

②利用if语句:

for i=n1:n2

if i==n0

x(i)=1;

end

end

2)单位序列u(n-no)表示方法:

①利用条件语句:y=[(n-n0)>=0];

②利用if语句

for n=1:20

if n<=n0

y=1;

end

end

1.2 进行序列的相乘运算时应注意什么问题?

答:进行序列的相乘运算时应注意:

(1)注意维数要相同,不同则会出错。

(2)元素与元素进行四则运算要用“点“的运算。例如:相乘要用点乘

1.3 MATLAB中画连续信号波形和离散信号波形有什么区别?

答:绘制连续信号波形与离散波形所用的函数不同,例如连续信号的函数有sin,cos等,

绘制离散波形的函数有stem等,还有就是绘制这两种信号波形所要编写的程序也不同。

对时域连续信号用matlab离散,数字信号处理上机实验一 离散时间信号的时域分析...相关推荐

  1. 数字信号处理上机实验一 离散时间信号的时域分析

    实验1 离散时间信号的时域分析 一.实验目的 (1)了解MATLAB语言的主要特点及作用: (2)熟悉MATLAB主界面,初步掌握MATLAB命令窗和编辑窗的操作方法: (3)了解常用时域离散信号及其 ...

  2. 基于matlab的心电信号处理毕业论文,浅议仿真基于MATLAB的“数字信号处理”仿真实验毕业论文范文...

    论文导读:),通过扬声器可以听到"重庆邮电大学,重庆邮电大学"声音,对原始语音信号进行FFT 频谱分析,程序关键代码如下: figure: t=(0:length(x)-1)/Fs ...

  3. 实验一熟悉matlab环境,数字信号处理报告实验一:熟悉MATLAB环境.doc

    数字信号处理报告实验一:熟悉MATLAB环境.doc 实验一熟悉MATLAB环境一 实验目的1. 熟悉MATLAB的主要操作命令.2. 学会简单的矩阵输入和数据读写.3. 掌握简单的绘图命令.4. 用 ...

  4. matlab中样本点用 表示,实验一离散时间信号在MATLAB中的表示

    实验一 离散时间信号的表示及运算 一.实验目的 1.学会运用MATLAB 表示的常用离散时间信号: 2.学会运用MATLAB 实现离散时间信号的基本运算. 二.实验原理及实例分析 2.1 离散时间信号 ...

  5. 基于MATLAB的数字信号处理(3) 用FFT对信号作频谱分析

    文章目录 一.实验目的 二.实验原理与方法 三.实验内容及步骤 1. 有限长序列 2. 周期序列 3. 模拟周期信号 四.回答思考题 五.实验总结 一.实验目的 学习用 FFT 对连续信号和时域离散信 ...

  6. 数字信号处理第一章:离散时间信号与离散时间系统

    参考书:<数字信号处理-理论. 算法与实现>第二版 胡广书 清华大学出版社 1. 离散时间信号的基本概念 1) 离散信号概述 a)连续时间信号x(t) -->离散时间信号 x(nTs ...

  7. matlab数字信号处理实验报告,【实验设计论文】Matlab的数字信号处理课程实验设计(共3490字)...

    摘要:本文设计了一个基于Matlab的"数字信号处理"课程综合性实验.该实验把"数字信号处理"课程中的许多离散的知识点串接了起来,包括采样.量化.滤波器设计.滤 ...

  8. 用MATLAB绘制国债NSS模型,Matlab在数字信号处理中的运用.ppt

    <Matlab在数字信号处理中的运用.ppt>由会员分享,可在线阅读,更多相关<Matlab在数字信号处理中的运用.ppt(68页珍藏版)>请在装配图网上搜索. 1.第七讲 M ...

  9. 用matlab画单位冲激序列,实验一 基于Matlab的数字信号处理基本操作.doc

    实验一 基于Matlab的数字信号处理基本操作 信号来表示,自变量必须是整数. 离散时间信号的波形绘制在MATLAB中一般用stem函数.stem函数的基本用法和plot函数一样,它绘制的波形图的每个 ...

最新文章

  1. 七位世界级Java大师的杰作
  2. Python文件处理
  3. Shell之awk常用用法
  4. 2015-03-18 header note creation in my Appointment
  5. 将2019拆分成三个整数的平方和
  6. Spring Boot细节挖掘(拦截器)
  7. 安居客 Android App 走向平台化 | CSDN 博文精选
  8. 欧拉定理、费马小定理及其拓展应用
  9. can not find Artifact XXX 的原因
  10. ————————————————素数的快速判断方法————————————————————...
  11. 【软考 系统架构设计师】案例分析① 解题技巧
  12. 好用的项目工时管理系统有哪些
  13. docker搭建MySQL集群
  14. dom影像图形成数字地形图_基于MapMatrix的数字正射影像图制作
  15. TSC2004 电阻式触摸屏控制器驱动问题
  16. 张德芬 如何自我成长
  17. explore exploit
  18. java 浏览器测试,【Java资源大全】Selenium:基于浏览器的测试套件
  19. (附源码)ssm校园交流网站 毕业设计 261624
  20. 180多个Web应用程序测试示例测试用例

热门文章

  1. Oracle11g创建表空间
  2. Spring Boot中使用JdbcTemplate访问数据库
  3. 微软职位内部推荐-SENIOR DEVELOPMENT LEAD
  4. |DataDirectory|的使用
  5. php异常处理技术,顶级异常处理器
  6. 企业做大的捷径:“复印”成功的商业模式
  7. Spark源码阅读03-Spark存储原理之共享变量
  8. python——画一个笑脸
  9. MySQL Processlist--常见线程状态
  10. 数据结构5: 链表(单链表)的基本操作及C语言实现