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处理这样的函数时,总是把它看作是一个有限长序列,具体长度由编程者确定。实际上,在信号与系统分析中所遇到的无限函数,通常都是满足绝对可积条件的信号,因此,对信号采取这种截断处理尽管存在误差,但是通过选择合理的信号长度,能够将误差减小到可以接受的程度。