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

相关文档
最新文档