数字信号||离散序列的基本运算(2)

news2024/11/15 10:59:40

实验二  离散序列的基本运算

一、实验目的

(1)进一步了解离散时间序列时域的基本运算。

(2)了解MATLAB语言进行离散序列运算的常用函数,掌握离散序列运算程序的编写方法。

二、实验涉及的MATLAB子函数

1.find

功能:寻找非零元素的索引号。

调用格式:find((n>=min(n1))&(n<=max(n1)));在符合关系运算条件的范围内寻找非零元素的索引号。

2.fliplr

功能:对矩阵行元素进行左右翻转。

调用格式:x1=fliplr(x);将x的行元素进行左右翻转,赋给变量x1。

三、实验原理

离散序列的时域运算包括信号的相加、相乘,信号的时域变换包括信号的移位、反折、倒相及信号的尺度变换等。

在MATLAB中,离散序列的相加等运算是两个向量之间的运算,因此参加运算的两个序列向量必须具有相同的维数,否则应进行相应的处理。

四、实验任务

(1)认真阅读实验原理,明确本次实验目的,复习有关离散时间序列运算的理论知识。

(2)在MATLAB中编写运行各例题程序,理解离散序列运算的性质,了解各条语句的意义。

(3)读懂各例题程序,了解基本的离散序列运算MATLAB中的程序编写方法。

(4)列写已调试通过的实验任务程序, 打印或描绘实验程序产生的曲线图形。

1.序列移位

将一个离散信号序列进行移位,形成新的序列:x1(n)=x(n-m)

当m>0时,原序列x(n)向右移m位,形成的新序列称为x(n)的延时序列;当m<0时,原序列x(n)向左移m位,形成的新序列称为x(n)的超前序列。

例3-1  x1(n)=u(n+6)  (-10<n<10)

x2(n)=u(n-4) (-10<n<10)

编写一个MATLAB程序,对u(n)序列进行移位,由图3-1比较三个序列之间的关系。

n1=-10;n2=10;

k0=0;k1=-6;k2=4;

n=n1:n2;            %生成离散信号的时间序列

x0=[n>=k0]; %生成离散信号x0(n)

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

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

subplot(3,1,1),stem(n,x0,¢filled¢,¢k¢);

axis([n1,n2,1.1*min(x0),1.1*max(x0)]);

ylabel(¢u(n)¢);

subplot(3,1,2),stem(n,x1,¢filled¢,¢k¢);

axis([n1,n2,1.1*min(x1),1.1*max(x1)]);

ylabel(¢u(n+6)¢);

subplot(3,1,3),stem(n,x2,¢filled¢,¢k¢);

axis([n1,n2,1.1*min(x2),1.1*max(x2)]);

ylabel(u¢(n-4)¢);

n1=-10;n2=10;

k0=0;k1=-6;k2=4;

n=n1:n2;            %生成离散信号的时间序列

x0=[ n >= k0];  %生成离散信号x0(n)

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

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

subplot(3,1,1),stem(n,x0,'filled','k');

axis([n1,n2,1.1*min(x0),1.1*max(x0)]);

ylabel('u(n)');

subplot(3,1,2),stem(n,x1,'filled','k');

axis([n1,n2,1.1*min(x1),1.1*max(x1)]);

ylabel('u(n+6)');

subplot(3,1,3),stem(n,x2,'filled','k');

axis([n1,n2,1.1*min(x2),1.1*max(x2)]);

ylabel('u(n-4)');

图3-1 u(n)及其位移序列u(n+6)和u(n-4)

例3-2 已知一正弦信号:

求其移位信号x(n-2)和x(n+2)在-2<n<10区间的序列波形。

  解 MATLAB程序如下:

n=-2:10;n0=2;n1=-2;

x=2*sin(2*pi*n/10);         %建立原信号x(n)

x1=2*sin(2*pi*(n-n0)/10); %建立x(n-2)信号

x2=2*sin(2*pi*(n-n1)/10);%建立x(n+2)信号

subplot(3,1,1),stem(n,x,¢filled¢,¢k¢);

ylabel(¢x(n)¢);

subplot(3,1,2),stem(n,x1,¢filled¢,¢k¢);

ylabel(¢x(n-2)¢);

subplot(3,1,3),stem(n,x2,¢filled¢,¢k¢);

ylabel(¢x(n+2)¢);

结果如图3-2所示。

n=-2:10;n0=2;n1=-2;

x=2*sin(2*pi*n/10);         %建立原信号x(n)

x1=2*sin(2*pi*(n-n0)/10);   %建立x(n-2)信号

x2=2*sin(2*pi*(n-n1)/10);%建立x(n+2)信号

subplot(3,1,1),stem(n,x,'filled','k');

ylabel('x(n)');

subplot(3,1,2),stem(n,x1,'filled','k');

ylabel('x(n-2)');

subplot(3,1,3),stem(n,x2,'filled','k');

ylabel('x(n+2)');

图3-2 正弦信号x(n)、x(n-2)和x(n+2)

2.序列相加

3.两个离散序列相加是指两个序列中相同序号n(或同一时刻)的序列值逐项对应相加,构成一个新的序列:x(n)=x1(n)+x2(n)

例3-3 求x(n)=d(n-2)+d(n-4)  (0<n<10)。

解 MATLAB程序如下:

n1=0;n2=10;n01=2;n02=4;         %赋初值

n=n1:n2;

x1=[(n-n01)==0]; %建立d(n-2)序列

x2=[(n-n02)==0]; %建立d(n-4)序列

x3=x1+x2;

subplot(3,1,1);stem(n,x1,¢filled¢);

axis([n1,n2,1.1*min(x1),1.1*max(x1)]);

ylabel(¢d(n-2)¢);

subplot(3,1,2);stem(n,x2,¢filled¢);

axis([n1,n2,1.1*min(x2),1.1*max(x2)]);

ylabel(¢d(n-4)¢);

subplot(3,1,3);stem(n,x3,¢filled¢);

axis([n1,n2,1.1*min(x3),1.1*max(x3)]);

ylabel(¢d(n-2)+d(n-4)¢);

  结果如图3-3所示。

n1=0;n2=10;n01=2;n02=4;%赋初值

n=n1:n2;

x1=[(n-n01)==0];%建立d(n-2)序列

x2=[(n-n02)==0];%建立d(n-4)序列

x3=x1+x2;

subplot(3,1,1);stem(n,x1,'filled');

axis([n1,n2,1.1*min(x1),1.1*max(x1)]);

ylabel('d(n-2)');

subplot(3,1,2);stem(n,x2,'filled');

axis([n1,n2,1.1*min(x2),1.1*max(x2)]);

ylabel('d(n-4)');

subplot(3,1,3);stem(n,x3,'filled');

axis([n1,n2,1.1*min(x3),1.1*max(x3)]);

ylabel('d(n-2)+d(n-4)');

图3-3 d(n-2)和d(n-4)序列相加

3.序列反折

离散序列反折是指离散序列的两个向量以零时刻的取值为基准点,以纵轴为对称轴反折。在MATLAB中提供了fliplr函数,可以实现序列的反折。

例3-6 已知一个信号:x(n)=e-0.3*n (-4<n<4)

求它的反折序列x(-n)。

  解 MATLAB程序如下:

n=-4:4;

x=exp(-0.3*n);

x1=fliplr(x);

n1=-fliplr(n);

subplot(1,2,1),stem(n,x,¢filled¢);

title(¢x(n)¢);

subplot(1,2,2),stem(n1,x1,¢filled¢);

title(¢x(-n)¢);

结果如图3-6所示。

n=-4:4;

x=exp(-0.3*n);

x1=fliplr(x);

n1=-fliplr(n);

subplot(1,2,1),stem(n,x,'filled');

title('x(n)');

subplot(1,2,2),stem(n1,x1,'filled');

title('x(-n)');

图3-6 序列x(n)和x(-n)反折序列

4.序列倒相

离散序列倒相是求一个与原序列的向量值相反,对应的时间序号向量不变序列。

例3-7 将例3-6中信号:x(n)=e-0.3*n (-4<n<4)倒相。

  解 MATLAB程序如下:

n=-4:4;

x=exp(-0.3*n);

x1=-x;

subplot(1,2,1),stem(n,x,¢filled¢);

title(¢x(n)¢);

axis([min(n),max(n),1.1*min(x1),1.1*max(x)]);

subplot(1,2,2),stem(n,x1,¢filled¢);

title(¢-x(n)¢);

axis([min(n),max(n),1.1*min(x1),1.1*max(x)]);

结果如图3-7所示。

n=-4:4;

x=exp(-0.3*n);

x1=-x;

subplot(1,2,1),stem(n,x,'filled');

title('x(n)');

axis([min(n),max(n),1.1*min(x1),1.1*max(x)]);

subplot(1,2,2),stem(n,x1,'filled');

title('-x(n)');

axis([min(n),max(n),1.1*min(x1),1.1*max(x)]);

图3-7 序列x(n)和倒相序列-x(n)

5.序列的尺度变换

对于给定的离散序列x(n),序列x(mn)是x(n)每隔m点取一点形成,相当于时间轴n压缩了m倍;反之,序列x(n/m)是x(n)作m倍的插值而形成的,相当于时间轴n扩展了m倍。

例3-8 已知信号x(n)=sin(2pn),求x(2n)和x(n/2)的信号波形。为研究问题的方便,取0<n<20,并将n缩小20倍进行波形显示。

  解 MATLAB程序如下:

n=(0:20)/20;

x=sin(2*pi*n);     %建立原信号x(n)

x1=sin(2*pi*n*2);%建立x(2n)信号

x2=sin(2*pi*n/2);%建立x(n/2)信号

subplot(3,1,1),stem(n,x,¢filled¢);

ylabel(¢x(n)¢);

subplot(3,1,2),stem(n,x1,¢filled¢);

ylabel(¢x(2n)¢);

subplot(3,1,3),stem(n,x2,¢filled¢);

ylabel(¢x(n/2)¢);

结果如图3-8所示。

n=(0:20)/20;

x=sin(2*pi*n);     %建立原信号x(n)

x1=sin(2*pi*n*2);%建立x(2n)信号

x2=sin(2*pi*n/2);%建立x(n/2)信号

subplot(3,1,1),stem(n,x,'filled');

ylabel('x(n)');

subplot(3,1,2),stem(n,x1,'filled');

ylabel('x(2n)');

subplot(3,1,3),stem(n,x2,'filled');

ylabel('x(n/2)');

图3-8 序列x(n)、x(2n)和x(n/2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1944647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(十九)原生js案例之h5地里位置信息与高德地图的初使用

h5 地里位置信息 1. 获取当前位置信息 window.onload function () {const oBtn document.querySelector("#btn");const oBox document.querySelector("#box");oBtn.onclick function () {window.navigator.geolocation.getCurrentPosition(function (…

STM32嵌入式人工智能边缘计算应用教程

目录 引言环境准备边缘计算系统基础代码实现&#xff1a;实现嵌入式人工智能边缘计算系统 4.1 数据采集模块 4.2 数据处理与推理模块 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;边缘计算与优化问题解决方案与优化收尾与总结 1. 引言 嵌入式人工智…

GD32相较于STM32的优劣势-完全总结

优势 1.更高的主频 GD32单片机的主频可以达到108MHz&#xff0c;‌而STM32的最大主频为72MHz&#xff0c;‌这意味着GD32在代码执行速度上具有优势&#xff0c;‌适合需要快速处理数据的场景 2.更低的内核电压 GD32的内核电压为1.2V&#xff0c;‌而STM32的内核电压为1.8V。…

SQL labs-SQL注入(三)

本文仅作为学习参考使用&#xff0c;本文作者对任何使用本文进行渗透攻击破坏不负任何责任。 引言&#xff1a; 盲注简述&#xff1a;是在没有回显得情况下采用的注入方式&#xff0c;分为布尔盲注和时间盲注。 布尔盲注&#xff1a;布尔仅有两种形式&#xff0c;ture&#…

golang语言 .go文件版本条件编译,xxx.go文件指定go的编译版本必须大于等于xxx才生效的方法, 同一个项目多个go版本文件共存方法

在go语言中&#xff0c;我们不关是可以在编译时指定版本&#xff0c; 在我们的xxx.go文件中也可以指定go的运行版本&#xff0c;即 忽略go.mod中的版本&#xff0c;而是当当前的go运行版本达到指定条件后才生效的xxx.go文件。 方法如下&#xff1a; 我们通过在xxx.go文件的头部…

【数据挖掘】词云分析

目录 1. 词云分析 2. Python 中的 WordCloud 库 1. 词云分析 词云&#xff08;Word Cloud&#xff09;是数据可视化的一种形式&#xff0c;主要用于展示文本数据中单词的频率和重要性。它具有以下几种主要用途和意义&#xff1a; 1. 文本分析 • 识别关键主题&#xff1a;通…

光伏模拟器应用

太阳能光伏 (PV) 模拟器是一种可编程电源&#xff0c;用于模拟太阳能电池板。模拟器具有快速瞬态响应&#xff0c;可响应负载条件的变化并保持电压-电流特性的输出。 用户可以根据系统规格定义太阳能电池板配置&#xff0c;并通过选择环境条件来选择适当的环境条件进行模拟。用…

Varjo XR-4系列现已获得达索3DEXPERIENCE平台官方支持

近日&#xff0c;全球领先的工业虚拟和混合现实解决方案提供商Varjo宣布&#xff0c;Varjo XR-4系列现已获得达索3DEXPERIENCE平台的本地支持。这种集成为工程师和设计师带来了先进的虚拟和混合现实功能&#xff0c;他们可以通过沉浸式技术创新并简化他们的3D工作流程。 在达索…

springcolud学习05Feign

Feign Feign是一个声明式的http客户端,我们知道,在不使用Feign之前,在微服务中,一个模块如果想要调用另一个模块中的某个功能,需要向其发起请求http请求,如果不使用Feign,我们就需要通过硬编码的形式去编写构建http请求 新建模型,建立一个和consumer一样的module,不…

数据结构经典测试题1

1. char a101; int sum200; a27;suma; printf("%d\n",sum); 上述代码运行结果是什么呢&#xff1f; A: 327 B: 99 C: 328 D: 72 答案为D。 char为有符号类型&#xff0c;占1个字节&#xff0c;也就是8位&#xff0c;其中最高位是符号位&#xff0c;取值范围为-…

面对海量网络请求,Tomcat线程池如何进行扩展?

面对海量网络请求&#xff0c;Tomcat线程池如何进行扩展&#xff1f; 上篇文章:深入浅出Tomcat网络通信的高并发处理机制说到Tomcat中EndPoint如何高效处理网络通信&#xff0c;其中离不开Tomcat线程池的大力支持 本篇文章就来聊聊Tomcat中的线程池与JUC下的线程池到底有何不…

80. 删除有序数组中的重复项 II【 力扣(LeetCode) 】

一、题目描述 给你一个有序数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使得出现次数超过两次的元素只出现两次 &#xff0c;返回删除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成…

谈一谈爬虫开发工程师

爬虫就只是抓数据的吗&#xff1f;并不是&#xff0c;爬虫工程师的工作不再仅仅是抓取数据&#xff0c;还需要处理其他各种复杂问题&#xff0c;今天我们就来聊聊爬虫开发工程师。 一、 爬虫开发工程师工作内容 爬虫开发工程师是负责编写和维护网络爬虫程序的专业人员。他们的…

计算机技术基础 (bat 批处理)Note4

计算机技术基础 &#xff08;bat 批处理&#xff09;Note4 本节主要讲解一些 bat 批处理文件中的一些特殊符号&#xff0c;包括 , %, > 和 >>, |, ^, & 和 && 和 ||, " ", ,, ;, ()。 回显屏蔽符 回显屏蔽符 : 这个字符在批处理中的意思是关…

Redis一致性与分布式锁

Redis一致性 何为redis一致性 即在项目中&#xff0c;redis缓存中的数据要与数据库当中的数据保持一致。 那么这里&#xff0c;就会有小伙伴要问了&#xff0c;redis缓存中的数据不就是从数据库当中查询出来的吗&#xff1f;怎么会不一致呢&#xff1f; 笔者在这里解答一下…

数字信号||离散系统的冲激响应和阶跃响应(3)

实验三 离散系统的冲激响应和阶跃响应 一、实验目的 (1)加深对离散线性移不变(LSI)系统基本理论的理解&#xff0c;明确差分方程与系统函数之间的关系。 (2)初步了解用MATLAB语言进行离散时间系统研究的基本方法。 (3)掌握求解离散时间系统冲激响应和阶跃响应程序的编写方…

Proxmox8基于PC物理机/服务器安装,初始化,挂载磁盘,安装虚拟机

目录 安装文件 开始安装Proxmox 选择启动菜单&#xff0c;F11 后进入启动菜单选择 按需选择是否关闭RAID 选择对应的U盘 进入安装界面 进入安装启动过程 选择系统盘 设置相关信息 设置IP和开启root远程登录 设置dns 设置网卡ip 设置 ssh 远程登录 开机合并local-l…

Java---String类

乐观学习&#xff0c;乐观生活&#xff0c;才能不断前进啊&#xff01;&#xff01;&#xff01; 我的主页&#xff1a;optimistic_chen 我的专栏&#xff1a;c语言 &#xff0c;Java 欢迎大家访问~ 创作不易&#xff0c;大佬们点赞鼓励下吧~ 前言 在C语言中已经涉及到字符串了…

四、GD32 MCU 常见外设介绍 (6) ADC 模块介绍

6.1.ADC 基础知识 12 位逐次逼近式模数转换器模块&#xff08;ADC&#xff09;&#xff0c;可以采样来自于外部输入通道、内部输入通道的模拟信号&#xff0c;采样转换后&#xff0c;转换结果可以按照最低有效位对齐或最高有效位对齐的方式保存在相应的数据寄存器中。 6.2.GD…

go语言Gin框架的学习路线(十)

目录 GORM的CRUD教程 查询 普通查询 定义 User 结构体 查询所有用户 查询第一个用户 总结 条件查询 内联条件 额外查询选项 高级查询 链式操作 Scopes 多个立即执行方法 GORM的CRUD教程 CRUD 是 "Create, Read, Update, Delete"&#xff08;创建、查询…