尝试去除表面粗糙度数据中的噪声

3次查看(最近30天)
瑞安·加西亚
瑞安·加西亚 2021年9月5日
评论道: 图像分析 2021年9月6日
我目前试图从我的数据中去除波纹,也从它去除噪声,以得到我需要的数据集的表面粗糙度轮廓。在尝试使用趋势函数对数据进行处理后,我附上了图表,但数据集仍然有显著的波浪形。任何帮助都将不胜感激。下面是我目前正在使用的代码。我试图使用fft来去除噪声,但数据点不是等间距的。
clc
清晰的所有
关闭所有
%清除所有变量和打开数字,并清除命令窗口
dt = 0.001
t = 0: dt: 1;
(文件,路径)= uigetfile ();%打开文件浏览器选择所需的文件
imported_data = readtable (strcat(路径,文件));%读取。dat文件到表中
x_height = imported_data {: 2};%将数据的第一列保存到变量中
z_distance = imported_data {: 1};%将数据的第二列保存到变量中
x_height_corrected =去趋势(x_height);%删除数据的负斜率
% n = length(z_distance);查找数据集的长度
% fhat = fft(x_high_corrected, n);%计算数据集的快速傅里叶变换
% PSD = fhat.*conj(fhat)/n;%功率谱(每频率功率)
% freq = 1/(-1.96848491018642e-05*n)*(0:n);
% L = 1:floor(n/2);
% f = (0:n-1)/n;
%绘制导入和反趋势的数据
情节(z_distance x_height_corrected)
ylabel (的高度(毫米)
包含(的距离(毫米)
1评论
图像分析
图像分析 2021年9月6日
请附上截图PNG格式使用框架或回形针图标。如果它们是一个。fig文件,点击它就会启动一个全新的,单独的MATLAB第二个实例,这需要时间。如果你在这里直接放一张图片与框架图标,我们可以避免所有的麻烦。

登录评论。

答案(1)

马修•诺伊
马修•诺伊 2021年9月6日
你好
我喜欢平滑数据的函数是 smoothdata ,但还有其他选择
在下面的例子:
clc
关闭所有
Fs = 1000;
样品= 1000;
dt = 1 / f;
t = (0: samples-1) * dt;
Y = square(2*pi*3*t) + 0.1*randn(size(t));
% %%%%%%%%%%%%%%%%
图(1)
N = 25;
y = smoothdata (y,“高斯”N);
情节(t t y, y);传奇(“生”“平滑”);
标题(['数据样本在Fs = 'num2str(圆(Fs))“Hz / Smoothed with smoothdata”]);
% %%%%%%%%%%%%%%%%
图(2)
N = 25;
ys = medfilt1(y, N,“截断”);
情节(t t y, y);传奇(“生”“平滑”);
标题(['数据样本在Fs = 'num2str(圆(Fs))' Hz / Smoothed with medfilt1']);
网格
%%%%%%%%%%%%%%%%
图(3)
y = sgolayfilt (y, 1, 21);
情节(t t y, y);传奇(“生”“平滑”);
标题(['数据样本在Fs = 'num2str(圆(Fs))' Hz / Smoothed with sgolayfilt']);
网格
%%%%%%%%%%%%%%%%
NN = 2;
Wn = 0.25;
[B] =黄油(NN, Wn);
图(4)
y = filtfilt (B, A, y);
情节(t t y, y);传奇(“生”“平滑”);
标题(['数据样本在Fs = 'num2str(圆(Fs))“Hz / Smoothed with butterworth LP”]);
网格

下载188bet金宝搏

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

翻译的