matlab - 非等距数据的一维高斯滤波器

标签 matlab fortran90 gaussian convolution

我有一个分布在非等距一维空间中的数据,我需要用高斯滤波器对其进行卷积,

gaussFilter = sqrt(6.0/pi*delta**2)*exp(-6.0*x**2 /delta**2);

其中 delta 是一个常量,x 对应于空格。

任何人都可以提示如何执行良好的集成(二阶),因为数据不是等间距的以处理有限端吗?我打算用 Fortran 编写代码,但也欢迎使用 Matlab 示例。

最佳答案

使用这个:

function yy = smooth1D(x,y,delta)
    n = length(y);
    yy = zeros(n,1);
    for i=1:n;
        ker = sqrt(6.0/pi*delta^2)*exp(-6.0*(x-x(i)).^2 /delta^2);
        %the gaussian should be normalized (don't forget dx), but if you don't want to lose     (signal) energy, uncomment the next line
        %ker = ker/sum(ker); 
        yy(i) = y'*ker;
    end
end

关于matlab - 非等距数据的一维高斯滤波器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18674981/

相关文章:

python - 如何在 scipy.optimize 函数上强制执行更大的步骤?

matlab - 优化matlab for循环

matlab - 如何绘制图形但在任务栏中将它们最小化?

matlab - MATLAB 3D 图形中的透视控制

interface - 使用具有显式接口(interface) : Sometimes it compiles, 的外部过程的类型绑定(bind)过程有时不

linux - 错误 : 'b' argument of 'sign' intrinsic at (1) must be the same type and kind as 'a'

python - 将 f2py 与从模块内部调用的 LAPACK 一起使用

matlab - 使用 MATLAB 的 GPU 功能计算 sum(a.*exp(b.*c),1) 的有效方法

c++ - 在image-OpenCV和C++中添加高斯噪声然后去噪?

python - 使用 sklearn 通过类对字符串进行分类