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

目录

 

1、信号相加与相乘

2、序列移位与周期延拓 

3、序列翻转与序列累加 

4、两序列卷积运算


1、信号相加与相乘

用数学描述为:y(n)=x_{1}(n)+x_{2}(n)y(n)=x_{1}(n)x_{2}(n)。然对于给定的序列不一定一样长,可以用补零法使得对应位相同,再进行运算,如下:

例1:当x_{1}(n)=[1 2 3 4 5 6 7 8],取值范围为n=1:8,对于x_{2}(n)=[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、序列移位与周期延拓 

序列移位:y(n)=x(n-m)

周期延拓:y(n)=x((n))M,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(n)=x(-n),由函数y=fliplr(x),左右翻转。

序列累加:y(n)=\sum_{i=1}^{n}x(i),由函数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(n)=x_{1}(n)*x_{2}(n)=\sum_{M}^{}} x_{1}(n)x_{2}(n-M)

实现函数: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
发布了64 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/104463357