Matlab 消除一维卷积的零填充效应

Matlab 消除一维卷积的零填充效应,matlab,convolution,Matlab,Convolution,我已经写了一个简单的一维高斯滤波器,我正在与一些信号数据进行卷积,以产生一个平滑的轨迹。唯一的问题是,当我卷积数据时,我在平滑信号数据的起点和终点附近得到了较大的下降。当我绘制数据时,它只是扭曲了我的图形,因为它试图绘制的信号值在开始和结束时类似于10,而我的所有其他数据类似于10000-13000 有人知道有什么方法可以避免卷积的零填充吗 这是我的密码: 平滑信号=conv2(信号满,1d高斯,'same') 其中,我的输入signal\u full是一个1055x1双矩阵。使用nanconv

我已经写了一个简单的一维高斯滤波器,我正在与一些信号数据进行卷积,以产生一个平滑的轨迹。唯一的问题是,当我卷积数据时,我在平滑信号数据的起点和终点附近得到了较大的下降。当我绘制数据时,它只是扭曲了我的图形,因为它试图绘制的信号值在开始和结束时类似于10,而我的所有其他数据类似于10000-13000

有人知道有什么方法可以避免卷积的零填充吗

这是我的密码:

平滑信号=conv2(信号满,1d高斯,'same')


其中,我的输入
signal\u full
是一个1055x1双矩阵。

使用
nanconv.m
代替(),使用“edge”输入参数。这将边界以外的时间点处理为缺失值,而不是零,因此消除了边缘效应。

通常您只需要从输出中心采集
1055
样本。为什么
conv2
而不是
conv
?什么是1d高斯?似乎这个变量会影响结果,请尝试调整它。而且,我认为“零填充”不是术语,或者我没有理解你的问题。@BenVoigt我认为
相同的
属性应该自动正确地完成它。你看到另一个选项了吗?
“valid”只返回没有零填充边计算的卷积部分。
Ok所以
1d_gaus
只是1d gaussian函数的输出,基于-20:20的x和5的sigma,所以是41x1双矩阵。基本上,我现在得到的是一些噪声信号数据,需要对这些数据进行平滑处理,并与一些时间数据进行对比,这些时间数据从0秒开始,到1000秒结束。刚刚尝试了
conv
函数的
'valid'
选项(Adiel非常正确,我不需要执行
conv2
函数),但是这只输出990 x 1信号矩阵,我如何调整时间数据,使其与新的990元素平滑信号匹配?