我想要matlab使用一维高斯低通滤波器的代码
时间: 2024-05-20 19:15:41 浏览: 149
高斯低通滤波器算法matlab源代码
对于您关于使用一维高斯低通滤波器的代码的问题,我可以提供以下 Matlab 代码作为参考:
% 定义一维高斯函数
function y = gaussian(x, mu, sigma)
y = exp(-((x - mu) / sigma) .^ 2 / 2);
end
% 定义高斯低通滤波器
function filtered = gaussian_lowpass_filter(signal, sigma)
% 计算信号长度
n = length(signal);
% 计算高斯核
kernel = gaussian(-floor(n/2):ceil(n/2)-1, 0, sigma);
kernel = kernel / sum(kernel);
% 对信号进行滤波
filtered = conv(signal, kernel, 'same');
end
% 测试使用
x = linspace(-10, 10, 100);
y = sin(x);
y_filtered = gaussian_lowpass_filter(y, 1);
plot(x, y, 'b-', x, y_filtered, 'r-');
此代码中,我们首先定义了一个一维高斯函数,接着定义了一个高斯低通滤波器。在高斯低通滤波器中,我们首先计算了高斯核,然后使用 conv 函数将信号和高斯核进行卷积,从而得到滤波后的结果。最后,我们将代码进行了测试,并将原始信号和滤波后的结果进行了绘制。
阅读全文