matlab实验 数据可视化方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四数据可视化方法

[实验内容]

一.仿照运行,体会数据可视化方法。

1已知n=0,1,……,12,y=,运行下面程序,体会离散数据可视化方法。

说明:

·plot和stem指令均可以实现离散数据的可视化,但通常plot更常用于连续函数中特殊点的标记;而stem广泛运行与数字信号处理中离散点的图示。·用户在运行上面例程时会发现在命令窗口出现警告:Warning: Divide by zero!即警告程序中出现非零数除以0的指令。MATLAB对于这种情况并不中止程序,只是给该项赋值为inf以做标记。

2.下面时用图形表示连续调制波形y=sin(t)sin(9t),仿照运行,分析表现形式不同的原因。

二.编程实现。

1.用图形表示连续调制波形y=sin(t)sin(9t),过零点及其包络线,如下图所示。

2. 编写函数[x,n]=stepseq(n0,n1,n2),实现:

u(n)=, n为整数

并编写脚本文件实现:

x(n)=n·[u(n)-u(n-10)]+10[u(n-10)-u(n-20)], 0≤n≤20要求在脚

本文件中调用stepseq 函数,最后绘出序列x(n)在给定区间的波形图。

3.编写一个函数文件[y,n]=sigadd(x1,n1,x2,n2),实现两个对应样本之间的相加,其中x1是长度为n1的序列,x2是长度为n2的序列,n1、n2分

别是x1、x2的位置信息(n1、n2均为整数),如:

n1={ -3,-2,-1,0,1,2,3,4},对应的

x1={ 2, 3, 1,4,1,3,1,2};

n2={-4,-3,-2,-1,0,1,2},对应的

x2={ 1, 3, 2, 5,1,3,4}。

当调用函数[y,n]=sigadd(x1,n1,x2,n2)时,我们应该得到:

n={-4,-3,-2,-1,0,1,2,3,4},对应的

y={ 1, 5, 5, 6,5,4,7,1,2}。

仔细观察 sigadd 函数的功能。编好函数文件程序后,请在命令窗口调用,验证正确性,记录验证结果。

[实验结果]

一.1.

2.

二.1. t=0:0.001:pi; t=0:pi/1000:pi;

y1=@(t) sin(t).*sin(9*t);

y2=sin(t);

plot(t,y1(t),t,y2'*[1 -1],'r--') hold on

t0=linspace(0,pi,10);

for i=1:length(t0)

t00=fzero(y1,t0(i));

plot(t00,0,'o')

end

plot(pi,0,'o')

分析:没有画出过零点时的图形。

用find函数画不出,没找到其他的函数。

2. function [x,n]=stepseq(n0,n1,n2);

if n1≥n≥n0

u(n)=1;

else if n2≤n≤n0

u(n)=0;

end

n=0:20

x(n)=n·[u(n)-u(n-10)]+10[u(n-10)-u(n-20)];

stem(x(n))

Error: Function definitions are not permitted at the prompt or in scripts. 分析: matalb函数function不能在工作空间执行,函数文件应保存在M文件中,并且函数执行时是在函数特有的函数空间内进行的,而不在工作空间。

3.function [y,n]=sigadd(x1,n1,x2,n2)

n=(min(n1(1),n2(1)):max(n1(end),n2(end))); y1=zeros(1,length(n));

y2=y1;

y1(find((n>=n1(1))&(n<=n1(end))==1))=x1;

y2(find((n>=n2(1))&(n<=n2(end))==1))=x2;

y=y1+y2;

end

相关文档
最新文档