首  页  |  神经网络  |  人工智能  |  遗传算法  |  模式识别  |  开发设计  |  数据库  |  zigbee  |  数学算法  |  其  他
当前位置:智能优化 >> 人工智能 >> 浏览文章

数字信号处理序列运算——信号相加

来源:互联网 作者:佚名 日期:2010年01月06日 访问次数:
      信号相加:这是一种对应的样本与样本之间的相加,表示为: {x1(n)}+{x2(n)}={x1(n)+x2(n)} 

      在MATLAB中它可用算术运算符“+”实现。然而x1(n)和x2(n)的长度必须相等。如果序列长度不等,或者长度虽然相等但采样的位置不同,就不能用运算符“+”了。我们必须首先给x1(n)和x2(n)以适当的参数使他们有相同的位置向量n(因而也有同样的长度)。这需要非常注意MATLAB的下标运算。特别是逻辑与运算“&”,关系运算入“<=”和“=”,以及要用find函数来使x1(n)和x2(n)具有相同的长度,下面称为sigadd的函数演示了这些运算。 

      Function[y,n]=sigadd(x1,n1,x2,n2
      %实现y(n)=x1(n)+x2(n) 
      %[y,n]=sigadd(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)的长度的x
      y2(find((n>=min(n2)) &(n<=max(n2))==1))=x2;%具有y(n)的长度的x
      y=y1+y2;%序列相加
发表评论