5. 离散信号的时域分析及波形绘制

5. 离散信号的时域分析及波形绘制

一、实验目的

1.1、 实现离散信号的时域运算编程算法。

1.2、 实现离散信号的卷积运算编程算法。

1.3、 理解Matlab或Python代码的具体意义并熟练使用。

二、 实验内容

2.1、 离散信号相加和相乘的Matlab或Python编程及波形表示方法。

2.2、 序列差分与部分和的Matlab或Python编程及波形表示方法。

2.3、 离散信号卷积和的Matlab或Python编程及波形表示方法。

三、实验仪器

3.1、 电脑 1台

3.2、 Matlab或Python软件 1套

四、实验代码及结果

4.1、离散信号相加和相乘的Matlab或Python编程及波形表示方法。

离散信号的相加和相乘

在这里插入图片描述

MATLAB编程

f1=[2,1,0,1,2];
n1=[-2:2];								    %描述序列f1(n)
f2=[1,2,3,4,5,6];
n2=[0:5];								        %描述序列f2(n)
n=min(min(n1),min(n2)):max(max(n1),max(n2));		%构造和(积)序列的长度
s1=zeros(1,length(n));                           %
s2=s1;						                %初始化新向量
s1(find((n>=min(n1))&(n<=max(n1))==1))=f1;		%扩展f1的向量长度
s2(find((n>=min(n2))&(n<=max(n2))==1))=f2;		%扩展f2的向量长度
f3=s1+s2;										%和运算
f4=s1.*s2;									%积运算
subplot(2,2,1)
stem(n1,f1)
title('f1')
subplot(2,2,2)
stem(n2,f2)
title('f2')
subplot(2,2,3)
stem(n,f3)
title('f1+f2')
subplot(2,2,4)
stem(n,f4)
title('f1*f2')

波形表示:

在这里插入图片描述

4.2、序列差分与部分和的Matlab或Python编程及波形表示方法。

序列的差分与部分和*

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
MATLAB编程

n=0:9
fn=[1,2,3,4,5,6,7,8,9,10] 
diff(fn) 
y=sum(fn)

运行结果为:

ans =1  1  1  1  1  1  1  1  1

y=55

4.3、离散信号卷积和的Matlab或Python编程及波形表示方法。

离散信号的卷积和定义为:

在这里插入图片描述
MATLAB中用conv函数来求离散信号的卷积和,其调用格式为:

y=conv(f1,f2)

其中,f1,f2表示离散时间信号值的向量;y表示卷积结果。

其中,a,v表示离散时间信号的向量,mode的可选项有“full”、“same”和“valid”,默认选项为“full”,该项可以省略。

在这里插入图片描述
MATLAB编程

f1=[1,2,3,4];
f2=[1,1,1,1,1];
f=conv(f1,f2)
N=length(f);
stem(0:N-1,f);

波形表示:
在这里插入图片描述

五、实验心得及体会

通过本次实验实现离散信号的时域运算、卷积运算编程算法。熟练使用Matlab代码的具体意义。参与卷积运算的两个函数,可能有一个或者两个都很长,甚至是无限长,MATLAB处理这样的函数时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限函数,通常都是满足绝对可积条件的信号,因此,对信号采取这种截断处理尽管存在误差,但是通过选择合理的信号长度,能够将误差减小到可以接受的程度。

猜你喜欢

转载自blog.csdn.net/weixin_44908159/article/details/106899035
今日推荐