MATLAB离散时间信号的实现和时域基本运算(九)

news/2024/10/17 18:26:07/

1、实验目的:

1)了解时域离散信号的特点;

2)掌握MATLAB在时域内产生常用离散时间信号的方法;

3)熟悉离散时间信号的时域基本运算;

4)掌握离散时间信号的绘图命令。

2、实验内容:

2-1)、编程实现单位阶跃延迟序列u(n-2)图形。(注:图形的起点为0,终点为6,加注图名称)。

n0=0; nf=6; ns=2;   %起点为0,终点为6,在2出有单位阶跃序列
n=n0:nf;  %生成离散信号的时间序列
f=[zeros(1,ns-n0),ones(1,nf-ns+1)]; %生成离散信号f(n)
%也可用逻辑运算方法产生,f=[(n-ns)>=0]
stem(n,f,'filled'), axis([n0, nf, -0.1, 1.1]) %散点图
title('u(n-2)');  %加标题

2-2)、已知复指数序列,按照其实部和虚部分别绘图,其中取α=-(1/12),ω=π/6,n取[0,30]。 

n0 = 0; nf = 30; n = n0:nf; 
a = -1/12; b = pi/6
f = exp((a + j)*n);	%表达式 记得用
subplot(1,2,1), stem(n,real(f),'filled'); 
xlabel('n'); ylabel('实部'); grid    
subplot(1,2,2), stem(n,imag(f),'filled'); 
xlabel('n'); ylabel('虚部'); grid  

 

2-3)、已知一时域周期性余弦信号的频率为2 Hz,振幅值幅度为2。在窗口上显示1个周期的信号波形,并对该信号的一个周期进行50点采样获得离散信号。试显示原连续信号和其采样获得的离散信号波形。

% 正余弦序列
f=2; Um=2; nt=1;   %输入信号频率、振幅和显示周期数
N=50; T=1/f; 	   %N为信号一个周期的采样点数,T为信号周期
dt=T/N 	    %采样时间间隔
n=0: nt*N;  %建立离散信号的时间序列
tn=n*dt; 	%确定时间序列样点在时间轴上的位置
y=Um*cos(2*f*pi.*tn); 
subplot(2,1,1); plot(tn,y); %显示原连续信号
axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(t)'); %限制范围 一个周期
subplot(2,1,2); stem(tn,y); %采样获得的离散信号波形
axis([0 max(tn) -1.1*max(y) 1.1*max(y)]); ylabel('y(n)');  

2-4)、已知离散时间信号,用MATLAB绘出x(n)、x(-n)、x(n+2)、x(n-2)的波形。

x = [1 2 3 3 3 3];      %离散时间信号
n = [-2 -1 0 1 2 3];    %确定采样点的序号
subplot(221); stem(n,x,'filled');
subplot(222); stem(-n,x,'filled');
subplot(223); stem(n+2,x,'filled');
subplot(224); stem(n-2,x,'filled');

2-5)、已知序列f1(n)={-6 2 0 -5 8 4 3 -1 7},-6≤n≤2;f2(n)={1 -2 3 0 -3 2 -1},-2≤n≤4,求f3(n)=f1(n)+f2(n),并绘制出f1、f2、f3三者的图形。

n1 = -6:2; f1 = [-6 2 0 -5 8 4 3 -1 7]; %序列f1(n)
n2 = -2:4; f2 = [1 -2 3 0 -3 2 -1];     %序列f2(n)
new_n=min([n1,n2]):max([n1,n2])         %构造和序列 n=[-6:4]
x1=zeros(1,length(new_n)); x2=x1;       %初始化新向量
x1(find((new_n>=min(n1))&(new_n<=max(n1))))=f1;   %在新序列中放置f1,其中find函数找到索引位置[1 2 3 4 5 6 7 8 9]
x2(find((new_n>=min(n2))&(new_n<=max(n2))))=f2;   %在新序列中放置f2,其中find函数找到索引位置[4 5 6 7 8 9 10]
f=x1+x2;    %序列相加
subplot(1,3,1), stem(new_n,x1,'filled'),title('序列f1');
subplot(1,3,2), stem(new_n,x2,'filled'),title('序列f2');
subplot(1,3,3), stem(new_n,f, 'filled'),title('序列相加');

2-6、已知一正弦信号: ,试编程实现截取该信号的[-5 5]区间的波形(注:加窗截取方式,在同一窗口下显示三个图形)。

n = -10:10; x = 2*sin(2*pi*n/10);
f1=[(n+5)>=0];
f2=[(n-5)>0];
f=f1-f2;
x1=x.*f;%x是一个行向量所以要点乘
subplot(3,1,1); stem(n,x,'filled'); title('正弦信号'); 
subplot(3,1,2); stem(n,f,'filled'); title('截取信号'); 
subplot(3,1,3); stem(n,x1,'filled');title('截取图形');

 l

 


http://www.ppmy.cn/news/51158.html

相关文章

学系统集成项目管理工程师(中项)系列03_职业道德规范

1. 职业道德 1.1. 涵盖了从业人员与服务对象、职业与职工、职业与职业之间的关系 1.2. 是所有从业人员在职业活动中应该遵循的行为准则 1.3. 包括爱岗敬业、诚实守信、办事公道、服务群众和奉献社会 2. 道德 2.1. 通常与法律相对应&#xff0c;具有非强制性 2.2. 指人们依…

windows下网络聊天室项目(C++、SQLite、计算机网络)——思路+源码+解析

这里只是在windows系统下用C++做的简易聊天室,其界面比较low,不过该有的功能已基本实现。至于带界面的,QT里有封装好的QTcpSocket套接字,会在下一篇博客里予以介绍。主要的功能主要包含的功能有:查看当前在线人数、进入群聊界面、进入私聊界面、查看聊天记录、文件传输、更…

前端canvas截图酷游地址的方法!

前情提要 想在在JavaScript中&#xff0c;酷游专员KW9㍠ㄇEㄒ提供用HTML5的Canvas元素来剪取画面并存成SVG或PNG。 程式写法(一) 首先&#xff0c;需要在HTML中创建一个Canvas元素<canvas id"myCanvas"></canvas> 在JavaScript中&#xff0c;使用canv…

Notion AI 胜于 ChatGPT ?

去年&#xff08;2022年&#xff09;12 月初&#xff0c;在社区中 OpenAI 的 ChatGPT 刚出来就火了一把&#xff0c;当时一度因为访问量太大导致崩溃宕机&#xff1b;最近&#xff08;2023 年1 月底&#xff09; ChatGPT 又火了&#xff0c;资本市场新增 ChatGPT 概念&#xff…

ios客户端学习笔记(八):iOS客户端的推送通知

iOS客户端的推送通知是指通过苹果的推送通知服务&#xff08;APNs&#xff09;向已安装应用程序的设备发送通知消息。这些通知可以在设备的锁屏屏幕、通知中心和应用程序内展示&#xff0c;以提醒用户有新的消息或事件需要处理。 推送通知通常包括标题、正文、图标等信息&…

「OceanBase 4.1 体验」|大厂开始接入的国产分布式数据库,不来了解了解?

OceanBase 4.1 体验 前言OCP Express在线升级功能租户级物理备库TP&#xff08;事务处理&#xff09;和AP&#xff08;分析处理&#xff09;优化TP 性能优化AP 性能优化 结尾 前言 上次我们讲了本人自己亲自上手OceanBase 4.1的初体验&#xff0c;国产的分布式数据库也太太太太…

TCP 与 bufferbloat

说到既能降低成本&#xff0c;又能降低时延&#xff0c;总觉得这在 pr&#xff0c;兜售自己或卖东西。毕竟哪有这么好的事&#xff0c;鱼与熊掌兼得。可事实上是人们对 buffer 的理解错了才导致了这种天上掉馅饼的事发生。 人们总觉得 buffer 越大越好&#xff0c;buffer 越大…

实战项目:手把手带你实现一个高并发内存池

项目介绍 1.这个项目做的是什么&#xff1f; 当前项目是实现一个高并发的内存池&#xff0c;他的原型是google的一个开源项目tcmalloc&#xff0c;tcmalloc全称Thread-Caching Malloc&#xff0c;即线程缓存的malloc&#xff0c;实现了高效的多线程内存管理&#xff0c;用于替…