数字信号处理序列运算——信号相乘
来源:互联网 作者:佚名 日期:2010年01月06日 访问次数:
信号相乘:这是对应采样值之间的相乘(即“点”乘),表示为: {x1(n)}.{x2(n)}= {x1(n)x2(n)}
在MATLAB中,它有数组运算符“*”实现。但它受到“+”运算符同样的限制。因此必须建立一个新的与sigadd相仿得sigmult函数:
Function[y,n]=sigmult(x1,n1,x2,n2)
%实现y(n)=x1(n)*x2(n)
%[y,n]=sigmult(x1,n1,x2,n2)
%y=在包括n1和n2的n上求和序列
%x1=长为n1的第一个序列
%x2=长为n2的第二个序列(n2可与n1不等)
n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的长度
y1=zeros(1,length(n));y2=y1;%初始化
y1(find((n>=min(n1)) &(n<=max(n1))==1))=x1;%具有y(n)的长度的x1
y2(find((n>=min(n2)) &(n<=max(n2))==1))=x2;%具有y(n)的长度的x2
y=y1.*y2;%序列相乘
在MATLAB中,它有数组运算符“*”实现。但它受到“+”运算符同样的限制。因此必须建立一个新的与sigadd相仿得sigmult函数:
Function[y,n]=sigmult(x1,n1,x2,n2)
%实现y(n)=x1(n)*x2(n)
%[y,n]=sigmult(x1,n1,x2,n2)
%y=在包括n1和n2的n上求和序列
%x1=长为n1的第一个序列
%x2=长为n2的第二个序列(n2可与n1不等)
n=min(min(n1),min(n2)):max(max(n1),max(n2));%y(n)的长度
y1=zeros(1,length(n));y2=y1;%初始化
y1(find((n>=min(n1)) &(n<=max(n1))==1))=x1;%具有y(n)的长度的x1
y2(find((n>=min(n2)) &(n<=max(n2))==1))=x2;%具有y(n)的长度的x2
y=y1.*y2;%序列相乘
上一篇:数字信号处理序列运算——信号相加
下一篇:快速傅里叶变换(FFT)
发表评论
