华工实验一 基本信号的产生和实现

一、实验目的:

\qquad学习使用MATLAB产生基本信号、绘制信号波形、实现信号的基本运算,为信号分析和系统设计奠定基础。

二、实验原理:

\qquadMATLAB提供了许多函数用于产生常用的基本信号:如阶跃信号、脉冲信号、指数信号、正弦信号和周期矩形波信号等。这些基本信号是信号处理的基础。

1.连续信号的产生:

(1)连续阶跃信号的产生:

\qquad产生阶跃信号的MATLAB程序如下:

  t= -2: 0.02: 6;x=(t>=0);plot(t,x);axis([-2,6,0,1.2]);

(2)连续指数信号的产生

\qquad产生随时间衰减的指数信号的MATLAB程序如下:

t = 0: 0.001: 5;
x = 2*exp(-1*t);
plot(t,x);

(3)连续正弦信号的产生

\qquad利用MATLAB提供的函数cos和sin可产生正弦和余弦信号。产生一个幅度为2,频率为4Hz,相位为p/6的正弦信号的MATLAB程序如下:

f0=4;
w0=2*pi*f0;
t = 0: 0.001: 1;
x = 2*sin(w0*t+ pi/6);
plot(t,x);

(4)连续矩形脉冲信号的产生

\qquad函数rectpulse(t,w)可产生高度为1、宽度为w、关于t=0对称的矩形脉冲信号。 产生高度为1、宽度为4、延时2秒的矩形脉冲信号的MATLAB程序如下:

t=-2: 0.02: 6;
x=rectpuls(t-2,4);
plot(t,x);

(5)连续周期矩形波信号的产生

\qquad函数square(w0*t)产生基本频率为w0 (周期T=2p/w0)的周期矩形波信号。
\qquad函数square(w0*t, DUTY)产生基本频率为w0 (周期T=2p/w0)、占空比DUTY= t/T*100的周期矩形波。
\qquadt为一个周期中信号为正的时间长度。t=T/2,DUTY=50,square(w0*t, 50)等同于square(w0*t)。
\qquad产生一个幅度为1, 基频为2Hz,占空比为50%的周期方波的MATLAB程序如下:
f0=2;

t = 0:.0001:2.5;
w0=2*pi*f0;
y = square(w0*t, 50); %duty cycle=50%
plot(t,y);
axis([0,2.5,-1.5,1.5]);

(6)连续抽样信号的产生

\qquad可使用函数sinc(x)计算抽样信号 ,函数sinc(x)的定义为 。产生信号 的MATLAB程序如下:

t= -10:1/500:10;
x=sinc(t/pi);
plot(t,x);

2.离散信号的产生

(1)单位脉冲序列的产生

\qquad函数zeros(1,n) 可以生成单位脉冲序列。
\qquad函数zeros(1,n)产生1行n列的由0组成的矩阵。
\qquad产生成单位脉冲序列的MATLAB程序如下:

k= -4: 20;
x=[zeros(1,7),1,zeros(1,17)];
stem(k,x)

(2)单位阶跃序列的产生

\qquad函数ones(1,n) 可以生成单位阶跃序列。
\qquad函数ones(1,n)产生1行n列的由1组成的矩阵。
\qquad产生单位阶跃序列的MATLAB程序如下:

k= -4:20;
x=[zeros(1,7),ones(1,18)];
stem(k,x)

(3)指数序列的产生

\qquad产生离散序列的MATLAB程序如下:

k = -5:15;
x = 0.3*(1/2).^k;
stem(k,x);

(4)正弦序列的产生

\qquad产生正弦序列的MATLAB程序如下:

k=-10:10;
omega=pi/3;x = 0.5*sin(omega*k+ pi/5);
stem(k,x);

(5)白噪声序列的产生

\qquad白噪声序列在信号处理中是常用的序列。
\qquad函数rand可产生在[0,1]区间均匀分布的白噪声序列,
\qquad函数randn可产生均值为0,方差为1的高斯分布白噪声。

N=20;k=0:N-1;
x=rand (1,N)
stem(k,x);

(6)离散周期矩形波序列的产生

\qquad产生幅度为1、基频rad、占空比为50%的周期方波的MATLAB程序如下:

omega=pi/4;
k=-10:10;
x = square(omega*k,50);
stem(k,x);

3.序列的基本运算

离散序列: x[k]=[1,2,1,1,0,−3;k=0,1,2,3,4,5]x[k]=[1,2,1,1,0,-3;k=0,1,2,3,4,5]x[k]=[1,2,1,1,0,−3;k=0,1,2,3,4,5],h[k]=[1,−1,1;k=0,1,2]h[k]=[1,-1,1;k=0,1,2]h[k]=[1,−1,1;k=0,1,2]
(1)计算离散卷积和y[k]=x[k]∗h[k]y[k]=x[k]*h[k]y[k]=x[k]∗h[k]
(2)计算离散自相关函数:Rxy[n]=∑k=−∞+∞x[k]y[k+n]\displaystyle R_{xy}[n]=\sum_{k=-∞}^{+∞}x[k]y[k+n]Rxy​[n]=k=−∞∑+∞​x[k]y[k+n]
MATLAB程序如下:

x=[1,2,1,1,0,-3];
h=[1,-1,1];
%计算离散卷积和
y=conv(x,h);
subplot(2,1,1);
stem([0:length(y)-1],y);
title('y[k]');xlabel(' k');
%计算离散自相关函数
y=xcorr(x,x);
subplot(2,1,2);
m=(length(y)-1)/2;
stem([-m:m],y);
title('Rxx[n]');xlabel('n');

三、实验内容:

1.利用Matlab产生下列连续信号并作图。
(1) x(t)=−2u(u−1),−1<t<5x(t)=-2u(u-1),\qquad -1<t<5x(t)=−2u(u−1),−1<t<5

% 产生x(t)=-2u(t-1)的图像
t= -1: 0.01: 5;
x=-2*((t-1)>=0);
plot(t,x);
axis([-1,5,-2.5,0]);

(2) x(t)=cos⁡(0.1πt)cos⁡(0.8πt),0<t<200x(t)=\cos(0.1\pi t)\cos(0.8\pi t),\qquad 0<t<200x(t)=cos(0.1πt)cos(0.8πt),0<t<200

% x(t)=cos(0.1pi*t)cos(0.8pi*t)
t = 0: 0.01: 200;
x = cos(0.1*pi*t).*cos(0.8*pi*t);
plot(t, x);
axis([0, 200, -2, 2]);

2.利用Matlab产生下列离散序列并作图。
(1) {1,−5≤k≤50,其他\begin{cases}1,-5\le k\le5\\0,其他\end{cases}{1,−5≤k≤50,其他​, 设−15<k≤15-15<k\le 15−15<k≤15 。

k = -15: 1: 15;
x = ( k >= -5)&( k <= 5);
stem(k, x);

(2)x[k]=(0.9)k[sin⁡(0.25πk)+cos⁡(0.25πk)]x[k]=(0.9)^k[\sin(0.25\pi k)+\cos(0.25\pi k)]x[k]=(0.9)k[sin(0.25πk)+cos(0.25πk)] ,设−20<k≤20-20<k\le20−20<k≤20。

% x[k]=(0.9)^k[sin(0.25*pi*k)+cos(0.25*pi*k)]
k = -20: 20;
x = (0.9).^k.*(sin(0.25*pi*k)+cos(0.25*pi*k));
stem(k, x)

3.已知序列x[k]=[1,2,0,−1,4,2;k=−2,−1,0,1,2,3]x[k]=[1,2,0,-1,4,2;k=-2,-1,0,1,2,3]x[k]=[1,2,0,−1,4,2;k=−2,−1,0,1,2,3],h[k]=[1,−1,1;k=0,1,2]h[k]=[1,-1,1;k=0,1,2]h[k]=[1,−1,1;k=0,1,2]。
(1)计算离散序列的卷积和y[k]=x[k]∗h[k]y[k]=x[k]*h[k]y[k]=x[k]∗h[k],并绘出其波形。

% y[k]=x[k]*h[k]
x = [1, 2, 0, -1, 3, 2];
kx = -2: 3;
h=[1, -1, 1];
kh = 0: 2;
y=conv(x, h);
stem((kx(1)+kh(1)):(kx(end)+kx(end)-1), y);

(2)计算离散序列的相关函数Rxy[n]=∑k=−∞+∞x[k]y[k+n]\displaystyle R_{xy}[n]=\sum_{k=-∞}^{+∞}x[k]y[k+n]Rxy​[n]=k=−∞∑+∞​x[k]y[k+n],并绘出其波形。

x = [1, 2, 0, -1, 3, 2];
kx = -2: 3;
h=[1, -1, 1];
kh = 0: 2;
y=conv(x, h);
R=xcorr(x,y);
m=(length(R)-1)/2;
stem(-m:m-2,R(1:13));

\qquad由于xcorr函数会自动补零进而使两个信号长度相等,所以我把零给去掉了,得到了如上的实际图像。
(3) 序列相关与序列卷积有何关系?
\qquad序列相关表示的是两个离散信号之间相似度,用如下公式计算:Rxy[n]=∑k=−∞+∞x[k]y[k+n]\displaystyle R_{xy}[n]=\sum_{k=-∞}^{+∞}x[k]y[k+n]Rxy​[n]=k=−∞∑+∞​x[k]y[k+n]
\qquad序列卷积则是通过分解离散信号来计算线性时不变系统中的响应的,采用如下公式计算:y[n]=x[n]∗h[n]=∑k=−∞+∞x[k]h[n−k]\displaystyle y\left[n\right]=x\left[n\right]\ast h\left[n\right]=\sum_{k=-∞}^{+∞}x[k]h[n-k]y[n]=x[n]∗h[n]=k=−∞∑+∞​x[k]h[n−k]。序列卷积不能直接反应两个信号的相关性。

四、实验思考题:

(1)两个连续信号的卷积定义是什么?两个序列的卷积定义是什么?卷积的作用是什么?conv函数只输出了卷积结果,没有输出对应的时间向量,如何使时间向量和卷积结果对应起来?

答:

  • 两个连续信号的卷积定义是什么?
    y(t)=x(t)∗h(t)=∫−∞+∞x(τ)h(t−τ)dτy\left(t\right)=x\left(t\right)\ast h\left(t\right)=\int_{-\infty}^{+\infty}x\left(\tau\right)h\left(t-\tau\right)d\tauy(t)=x(t)∗h(t)=∫−∞+∞​x(τ)h(t−τ)dτ
    可以理解为:其中一个连续信号定义为输入信号,另一个连续信号可定义为一个线性时不变系统的影响的表征,这两个连续信号的卷积表示的便是这个线性时不变系统对该输入信号的处理。

  • 两个序列的卷积定义是什么?
    y[n]=x[n]∗h[n]=∑k=−∞+∞x[k]h[n−k]\displaystyle y\left[n\right]=x\left[n\right]\ast h\left[n\right]=\sum_{k=-∞}^{+∞}x[k]h[n-k]y[n]=x[n]∗h[n]=k=−∞∑+∞​x[k]h[n−k]
    其中一个序列定义为输入信号,另一个序列可定义为一个线性时不变系统的影响的表征,这两个序列的卷积表示的便是这个线性时不变系统对该输入信号的处理。

  • 卷积的作用是什么?
    卷积表示了一种分解分析信号的方法。它把输入信号x[n]x[n]x[n](以离散信号为例)分解成一组加权幅值的基本函数的叠加,其中基本函数是移位单位脉冲δ(n−k)\delta(n-k)δ(n−k),这些移位单位仅有在相对于k上的单一时刻点上非零,即,x[n]=∑k=−∞+∞x[k]δ[n−k]\displaystyle x[n]=\sum_{k=-∞}^{+∞}x[k]\delta[n-k]x[n]=k=−∞∑+∞​x[k]δ[n−k]。由于分解信号后,时间仅与移位单位脉冲有关,当其输入到一个线性时不变系统中,我们可以仅考虑移位单位脉冲的响应h[n]h[n]h[n],然后由于线性,我们可以得到原来输入信号通过该线性时不变系统的响应,y[n]=∑k=−∞+∞x[k]h[n−k]\displaystyle y[n]=\sum_{k=-∞}^{+∞}x[k]h[n-k]y[n]=k=−∞∑+∞​x[k]h[n−k]

  • 如何使时间向量和卷积结果对应起来?
    可以用卷积结果的特点,如果一个信号的卷积区域为[a,b],另一个信号的卷积区域为[c,d],则卷积结果的区域则是[a+c,b+d]\left[a+c,b+d\right][a+c,b+d]。所以,我们可以将两个信号的区域最大值和最小值分别相加构成卷积结果最大值和最小值,便可以用该时间区域与conv函数的结果一一对应。

(2)两个连续信号相关的定义是什么?两个序列相关的定义是什么?相关的作用是什么?

答:

  • 两个连续信号相关的定义是什么?
    Rxy(t)=∫−∞+∞x(τ)y(t+τ)dτ\displaystyle R_{xy}\left(t\right)=\int_{-\infty}^{+\infty}x\left(\tau\right)y\left(t+\tau\right)d\tauRxy​(t)=∫−∞+∞​x(τ)y(t+τ)dτ
    两个连续信号相关定义:表征着这两个连续时间信号之间的相关程度。即,互相关函数就是描述连续时间信号x(t)和y(t)在任意两个不同时刻t1,t2t_1,t_2t1​,t2​的取值之间的相关程度。

  • 两个序列相关的定义是什么?
    Rxy[n]=∑k=−∞+∞x[k]y[k+n]\displaystyle R_{xy}[n]=\sum_{k=-∞}^{+∞}x[k]y[k+n]Rxy​[n]=k=−∞∑+∞​x[k]y[k+n]
    两个序列相关定义:表征着这两个序列之间的相关程度。即,互相关函数就是描述两个序列x[n]和y[n]在任意两个不同位置n1,n2n_1,n_2n1​,n2​的取值之间的相关程度。

  • 相关的作用是什么?
    相关表征的是两个信号在相对时间上的相似程度,通过相关的计算,我们可以获得两个时间坐标不同信号之间的相似度,借此我们可以用已知信号对未知信号求相关,来获取未知信号的特点。

(3)能够利用MATLAB产生单位冲激信号吗?

答:能。对于连续信号,可以用标准差趋近于零的高斯函数模拟。对于离散信号则可以直接令单个位置为1即可。

(4)产生连续信号时,首先要定义时间向量t = 0:T:Tp。 其中T和Tp是什么意思?

答:T代表步长;Tp代表终止时间。

五、实验收获

\qquad通过这次的实验,我学会了matlab的基本用法,能够用matlab产生一些简单的信号波形。同时,在此过程中,在写思考题的时候,积极思考,回忆书中内容,不仅加固了脑中的课本知识,而且理解离散信号和连续信号的卷积和互相关也更加透彻。

信号与系统实验一:基本信号的产生和实现相关推荐

  1. 信号与系统实验感想 matlab,信号与系统MATLAB实验报告.doc

    信号与系统MATLAB实验报告.doc 成绩 信号与系统实验报告 课 程 名 信号与系统 学 部 机械与电子信息学部 专 业 电子信息工程 学 号 姓 名 曹 禹 指导教师 吴国平 日 期 2013/ ...

  2. 基于MATLAB的信号与系统实验指导,《信号与系统及MATLAB实现》实验指导书

    内容简介: <信号与系统及MATLAB实现>实验指导书 前 言 长期以来,<信号与系统>课程一直采用单一理论教学方式,同学们依靠做习题来巩固和理解教学内容,虽然手工演算训练了计 ...

  3. 信号与系统matlab课设报告,MATLAB信号与系统实验报告

    <MATLAB信号与系统实验报告>由会员分享,可在线阅读,更多相关<MATLAB信号与系统实验报告(9页珍藏版)>请在装配图网上搜索. 1.信号与系统实验报告(5)MATLAB ...

  4. matlab用lism求零输入响应,信号与系统实验报告

    信号与系统实验报告 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 信号与系统实验信号与系统实验一.实验目的一.实验目的1. 通过 ...

  5. matlab已知ft求f2t,基于Matlab的信号与系统实验指导2

    基于Matlab 的信号与系统实验指导 实验一 连续时间信号在Matlab 中的表示 一.实验目的 1.学会运用Matlab 表示常用连续时间信号的方法 2.观察并熟悉这些信号的波形和特性 二.实验原 ...

  6. matlab对正弦采样信号采样重建,信号与系统实验报告4

    实验报告 课程名称:信号与系统 实验项目名称:实验4 信号抽样及抽样定理 实 验 目 的: 学会运用MATLAB完成信号抽样及对抽样信号的频谱进行分析:学会运用 MATLAB改变抽样间隔,观察抽样后信 ...

  7. 离散信号内插matlab,离散信号和系统实验报告.doc

    离散信号和系统实验报告 三.实验效果分析(包括仪器设备等使用效果) 实验中注意中英文的切换是应注意,特别是标点符号,括号等需要注意.需要仔细键入程序. 教 师 评 语 指导老师 年 月 日 江西师范大 ...

  8. matlab卷积实验原理,信号与系统实验报告——卷积(含程序)

    信号与系统实验报告--卷积 电 子 科 技 大 学 实 验 报 告 学生姓名:苏晓菁 学 号:2804301026 指导教师:张鹰 一.实验室名称:信号与系统实验室 二.实验项目名称:离散系统的冲激响 ...

  9. 无失真传输matlab原理,信号与系统实验(MATLAB版)实验23综合实验4——无失真传输系统.ppt...

    一.实验目的 在掌握相关基础知识的基础上,学会自己设计实验,学会运用MATLAB语言编程,并具有进行信号分析的能力.在本实验中学会利用所学方法,加深了解和掌握无失真的概念和条件. 二.实验内容 1 ...

  10. 信号与系统 实验一:连续信号的基本运算

    一.实验目的 掌握信号与系统中基本运算单元的构成: 掌握基本运算单元的特点: 掌握对基本运算单元的测试方法: 1.学习"信号的运算"一节: 2.复习matlab软件的使用方法. 二 ...

最新文章

  1. python的虚拟环境
  2. 如何编写项目总结报告(转)
  3. FD.io/VPP — ACL
  4. 计算机专业的求职信英文作文,计算机专业本科英文求职信范文
  5. 全面介绍Windows内存管理机制及C++内存分配实例(六):堆栈
  6. android studio 图表,Android Studio——记账本以及图表可视化实现
  7. 编程是使用计算机的什么部位,第一章 编程语言及计算机介绍
  8. docker 中文文档_Kubernetes将弃用Docker,不必恐慌
  9. n卡驱动登录不上去_鲜牛加速器:PubgLite报错问题解决方法汇总(附N卡优化及滤镜)...
  10. python遗传算法解简单整数规划与原理探究
  11. 企业运用通兑吧数字会员卡进行营销的优势
  12. UI设计必掌握的软件之一:Axure!
  13. 生活手机必备5款APP,一用就会上瘾,简直就是生活中的好帮手
  14. 易岸公考:国考公务员高频常识
  15. [评论送书 ]手撕源码,实现一个Koa。
  16. unity在打包时设置手机屏幕横屏竖屏的方法
  17. 保姆级在自己电脑搭建我的世界服务器教程
  18. ubuntu系统界面卡死解决方案记录
  19. 自定义Paging分页
  20. elixir 教程_认识Elixir,Laravel编译资产的方式

热门文章

  1. 软件工程总结笔记——软件详细设计(五)
  2. libaio介绍和使用
  3. 在python中用os模块实现批量移动文件
  4. C++独立游戏存档模块设计
  5. 简述 矩阵-DirectX 原理,并详解世界坐标转屏幕坐标,附C++实现。
  6. 蓝湖 Figma 插件被下架了怎么办?蓝湖的替代品列表
  7. 微信小程序常见面试题及答案
  8. 学号密码错误的计算机流程图,自学考试管理信息系统练习题及答案
  9. 2月1日:成都力争3年建237个养老院全覆盖社区养老
  10. 基于FPGA的DS18B20数字温度传感器测温实例