1D卷积入门:一维卷积是如何处理数字信号的

简介: 1D卷积入门:一维卷积是如何处理数字信号的

卷积是在科学、工程和数学中应用最广泛的运算符之一

卷积是对两个函数(f和g)进行的一种数学运算,它产生的第三个函数表示其中一个函数的形状如何被另一个函数修改。

image.png

离散时间信号的卷积

image.png

一种求解离散时间信号卷积的简单方法如下所示

输入序列x[n] ={1,2,3,4},其索引为{0,1,2,3}

脉冲响应h[n] ={5,6,7,8},其索引为{- 2,1,0,1}

蓝色箭头表示x[n]和h[n]的第0个索引位置。红色指针表示输出卷积索引的第零索引位置。我们可以构造一个表,如下所示。如图所示,将x和h的元素相乘,然后对角相加。

image.png

>> clc; % clears the command window
>> clear all; % clears all the variables in the workspace
>> close all; % closes all the figure window

从用户那里获取输入

>> % x[n] is the input discrete signal.
>> x=input('Enter the input sequence x =');
>> nx=input('Enter the index of the input sequence nx=');
>> % h[n] is the impulse response of the system.
>>h=input('Enter the impulse response of the system,second sequence h=');
>> nh=input('Enter the index of the second sequence nh=');

输出

Enter the input sequence x =[1 2 3 4]
Enter the index of the input sequence nx=[0 1 2 3]
Enter the impulse response of the system,second sequence h=[5 6 7 8]
Enter the index of the second sequence nh=[-2 -1 0 1]

计算卷积信号的索引

>> % Index of the convolved signal
 >> n=min(nx)+min(nh):max(nx)+max(nh);

卷积计算

>> y=conv(x,h);

显示

>> disp('The convolved signal is:');
>> y
>> disp('The index of convolved sequence is:');
>> n
>> The convolved signal is:y =5   16   34   60   61   52   32
>> The index of convolved sequence is:n =-2   -1     0     1     2     3     4

可视化

>> subplot(311);
>> stem(nx,x);
>> subplot(312);
>> stem(nh,h);
>> subplot(313);
>> stem(n,y);

image.png

时间序列信号的卷积

image.png

>> clc;
>> clear all;
>> close all;
>> t=-3:0.01:8;
>> x=(t>=-1 & t<=1); % pulse that exists for t>=-1 and t<=1
>> subplot(311);
>> plot(t,x);
>> h1=(t>=1 & t<=3); % pulse that exists for t>=1 & t<=3
>> h2=(t>3 & t<=4); % pulse that exists for t>3 & t<=4
>> h=h1+(2*h2);
>> subplot(312);
>> plot(t,h);
>> y=convn(x,h);
>> y=y/100;
>> t1=2*min(t):0.01:2*max(t);
>> subplot(313);
>> plot(t1,y);

image.png

卷积的属性

卷积是一个线性算子,具有以下性质。

交换律

x[n] * h[n] = h[n] * x[n] ( in discrete time )
x(t) * h(t) = h(t) * x(t) ( in continuous time )

结合律

x[n] * (h1[n] * h2[n]) = (x[n] * h1[n]) * h2[n] ( in discrete time )
x(t) * (h1(t) * h2(t)) = (x(t) * h1(t)) * h2(t) ( in discrete time )

分配律

x[n] * (h1[n] + h2[n]) = (x[n] * h1[n]) + (x[n] * h2[n]) ( in discrete time )
x(t) * (h1(t) + h2(t)) = (x(t) * h1(t)) + (x(t) * h2(t)) ( in discrete time )

标量乘法结合律

a(f * g) = (af) * g

乘法单位

image.png

复共轭性

image.png

与微分的关系

image.png

与积分的关系

image.png

应用程序

卷积在许多领域得到了应用,包括数字图像处理、数字信号处理、光学、神经网络、数字数据处理、统计学、工程学、概率论、声学等等。

目录
相关文章
|
机器学习/深度学习
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
1203 0
普通卷积、分组卷积和深度分离卷积概念以及参数量计算
|
3月前
|
机器学习/深度学习
神经网络各种层的输入输出尺寸计算
神经网络各种层的输入输出尺寸计算
156 1
|
3月前
|
机器学习/深度学习 Shell 计算机视觉
一文搞懂 卷积神经网络 卷积算子应用举例 池化 激活函数
这篇文章通过案例详细解释了卷积神经网络中的卷积算子应用、池化操作和激活函数,包括如何使用卷积算子进行边缘检测和图像模糊,以及ReLU激活函数如何解决梯度消失问题。
|
机器学习/深度学习 算法
什么是卷积?(含如何实现卷积源码)
什么是卷积?(卷积简单实现源码)
124 0
什么是卷积?(含如何实现卷积源码)
|
机器学习/深度学习 计算机视觉
卷积层提取特征
卷积层提取特征
135 1
|
机器学习/深度学习 编解码 数据可视化
深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例
深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例
深度学习基础入门篇[9.2]:卷积之1*1 卷积(残差网络)、2D/3D卷积、转置卷积数学推导、应用实例
|
机器学习/深度学习 编解码 数据可视化
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
深度学习基础入门篇9.1:卷积之标准卷积:卷积核/特征图/卷积计算、填充、感受视野、多通道输入输出、卷积优势和应用案例讲解
|
机器学习/深度学习 存储 编解码
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
深度学习基础入门篇[9.3]:卷积算子:空洞卷积、分组卷积、可分离卷积、可变性卷积等详细讲解以及应用场景和应用实例剖析
209 0
|
机器学习/深度学习 编解码 算法
【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该模型在ImageNet数据集上Top-1准确率达到82.9%,Top-5准确率达到96。2%,是目前最好的图片分类模型之一。
209 0
|
机器学习/深度学习 存储 算法
PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现
PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现
565 0
PyTorch中的傅立叶卷积:通过FFT有效计算大核卷积的数学原理和代码实现