多语言展示
当前在线:541今日阅读:19今日分享:20

离散信号的基本运算

离散信号的基本运算包括延迟,相加,相减,相乘,求和,求积,卷积,翻转等等,本节就离散信号的这些基本运算进行讲解:
工具/原料
1

离散信号

2

基本运算

方法/步骤
1

信号延迟,给定一个离散信号x(n),假设y(n)=x(n-k),则信号y(n)表示离散信号x(n)沿着x周向右平移k个抽样序列得到的新的信号示例:将余弦序列y(n)=cos(100*n)向右平移3个抽样周期编写对应的m文件如下:n1=0:20;x1=cos(100*n1);subplot(1,2,1)stem(n1,x1,'r');title('原始信号');x=zeros(1,3);x2=[x x1];subplot(1,2,2)n2=0:length(n1)+2;stem(n2,x2,'b');title('平移后的信号');程序运行结果如下图:

2

信号的相加,如果信号x(n)=x1(n)+x2(n),首先两个离散信号x1和x2长度应该相同,如果两个离散信号长度不用,则需要将短的那个信号利用zeros函数将其补齐示例:计算两个离散序列的和编写对应的m文件如下:x1=[0 2 4 6 8 0 0 0 0];n=1:1:9;x2=[0 0 0 0 0 1 3 5 7];x=x1+x2;subplot(1,3,1)stem(n,x1,'r');title('离散序列1信号');subplot(1,3,2)stem(n,x2,'r');title('离散序列2信号');subplot(1,3,3)stem(n,x,'r');title('相加后的信号');程序运行结果如下图:

3

信号的相乘,信号x(n)=x1(n)*x2(n),则信号x(n)表示信号x1和x2的点乘运算,即信号x1和信号x2对应点相乘,因此也需要两个离散信号长度相同,否则需要补齐运算示例:用matlab实现两个序列的相乘编写对应的matlab程序如下:n1=1:6;x1=[0.5 3 5.5 8 2.5 6];n2=1:12;x2=[2 3 2 1 4 1 1 2 5 9 12 15];subplot(1,3,1)stem(n1,x1,'r');title('离散序列1');subplot(1,3,2)stem(n2,x2,'r');title('离散序列2');x1=[zeros(1,length(n2)-length(n1)),x1];%%补齐x1的长度%%x=x1.*x2;subplot(1,3,3)stem(n2,x,'r');title('点乘之后的序列');程序运行结果如下图:

4

信号翻转,信号的翻转是为了将信号中数据先后顺序调换,fliplr函数用于实现对信号进行翻转操作示例:对一个离散序列进行翻转操作编写对应的m文件如下:n1=1:20;y=sin(n1);y2=fliplr(y);subplot(1,2,1)stem(n1,y,'r');title('原始离散序列');subplot(1,2,2)stem(n1,y2,'r');title('翻转后的离散序列');程序运行结果如下图:

5

信号求和,实现对单个信号所有数据的相加,sum函数用于实现信号的求和示例:分别对信号1和信号2实现求和运算编写对应的m文件如下:clear all;clc;x1=[1 2.5 3 5.5 6 8.5 12 15.5];y1=sum(x1);x2=[-2.5 -5 -1 -3.5 -2 -7.5 -5 -4.5];y2=sum(x2);程序运行结果如下:

6

信号的积运算,实现信号内部所有数据的相乘,prod函数用于实现该运算示例:分别对序列1和序列2进行积运算编写对应的m文件如下:clear all;clc;x1=[1 2.5 3 5.5 6 8.5 12 15.5];y1=prod(x1)x2=[-2.5 -5 -1 -3.5 -2 -7.5 -5 -4.5];y2=prod(x2);程序运行结果如下图:

7

信号的卷积运算,conv函数用于实现信号的卷积运算示例:利用matlab实现信号的卷积运算编写对应的m文件如下:clear all;clc;x1=ones(1,5);x2=[1 2 5 6 8 10 12 15];y=conv(x1,x2);程序运行结果如下图:

注意事项

如果您喜欢,请支持一下

推荐信息