【信号处理工具箱】—信号基本运算

血红的双手。 提交于 2020-02-24 08:01:03

目录

 

1、信号相加与相乘

2、序列移位与周期延拓 

3、序列翻转与序列累加 

4、两序列卷积运算


1、信号相加与相乘

用数学描述为:

。然对于给定的序列不一定一样长,可以用补零法使得对应位相同,再进行运算,如下:

例1:当

=[1 2 3 4 5 6 7 8],取值范围为n=1:8,对于

=[5 6 7 8 9],取值范围为n=6:10。求相乘与相加的值。
clear
clc
n1=1:8;
x1=[1 2 3 4 5 6 7 8];
n2=6:10;
x2=[5,6,7,8,9];
n=1:10;
x11=[x1 zeros(1,10-length(n1))];
x22=[zeros(1,10-length(n2)),x2];
x33=x11+x22;x44=x11.*x22;
subplot(411),stem(n,x11);xlabel('x1');
subplot(412),stem(n,x22);xlabel('x2');
subplot(413),stem(n,x33);xlabel('x1+x2');
subplot(414),stem(n,x44);xlabel('x1*x2');

2、序列移位与周期延拓 

序列移位:

周期延拓:

,M为延拓周期。
clear
clc
N=24;M=8;m=3;
n=0:N-1;
x2=[(n>=0)&(n<M)];
x1=0.5.*n;
x=x1.*x2;
xm=zeros(1,N);
for k=m+1:m+M
    xm(k)=x(k-m);
end
xc=x(mod(n,M)+1);
subplot(311),stem(n,x);
subplot(312),stem(n,xm);
subplot(313),stem(n,xc);

3、序列翻转与序列累加 

序列翻转:

,由函数y=fliplr(x),左右翻转。

序列累加:

,由函数y=cumsum(x),来实现。
x=[1 2 3 4 5];
x1=fliplr(x)
x2=cumsum(x)
x1 =

     5     4     3     2     1


x2 =

     1     3     6    10    15

4、两序列卷积运算

卷积运算:

实现函数:y=conv(x1,x2),序列必须长度有限。对于这个函数的实现还可以自定义出解法。

x=[1 2 3 4 5];
x1=[1 1 1 1];
y=conv(x,x1)
y =

     1     3     6    10    14    12     9     5

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!