实验三序列的运算
一、实验内容
1、序列的乘积:仿真并完成例题1.22
2、序列的移位:编写seqshift()函数,实现序列的移位,并作图验证。
3、序列的卷积:编写convwthn()函数,实现具体序列的卷积,并且进行理论计算,比较结果。
4、序列的相关:仿真并完成例题1.24
二、MATLAB仿真
1、序列的乘积
解:
function [y,n] = seqadd(x1,n1,x2,n2)
n=min((n1),min(n2)):max((n1):max(n2));
y1=zeros(1,length(n));y2=y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
y=y1+y2;
function [y,n] = seqmult(x1,n1,x2,n2);
n=min((n1),min(n2)):max((n1):max(n2));
y1=zeros(1,length(n));y2=y1;
y1(find((n>=min(n1))&(n<=max(n1))==1))=x1;
y2(find((n>=min(n2))&(n<=max(n2))==1))=x2;
y=y1.*y2;
代码:
clc;clear all;
x1=[1,3,5,7,6,4,2,1];ns1=-3;
x2=[4,0,2,1,-1,3];ns2=1;
nf1=ns1+length(x1)-1;
nf2=ns2+length(x2)-1;
n1=ns1:nf1;
n2=ns2:nf2;
n=min(ns1,ns2):max(nf1:nf2);
y1=zeros(1,length(n));y2=y1;
y1(find((n>=ns1)&(n<=nf1)==1))=x1;
y2(find((n>=ns2)&(n<=nf2)==1))=x2;
ya=y1+y2;
ym=y1.*y2;