我有一个图形图像。就像一个轨迹。我想给图表添加噪音。 我尝试添加正常分布噪声。使用兰德。例如如何合适的噪声添加到图
x1=x+a*rand(size(x));
对于y也是类似的。
结果在下面附接。这不是我想要的。这给了我一个散点图或完全嘈杂的情节。如下图所示。第一行是我所做的,第三行是我想要的。
不同图表列代表不同标准偏差(的值)。
问:如何获取地块的第三类(行)?
P.S.第一行是当我使用情节(...,“。”,markersize,1);第二行为简单的矢量图。
我有一个图形图像。就像一个轨迹。我想给图表添加噪音。 我尝试添加正常分布噪声。使用兰德。例如如何合适的噪声添加到图
x1=x+a*rand(size(x));
对于y也是类似的。
结果在下面附接。这不是我想要的。这给了我一个散点图或完全嘈杂的情节。如下图所示。第一行是我所做的,第三行是我想要的。
不同图表列代表不同标准偏差(的值)。
问:如何获取地块的第三类(行)?
P.S.第一行是当我使用情节(...,“。”,markersize,1);第二行为简单的矢量图。
的问题是,你想要的噪音有一定的特点。沿着曲线你有很多样本,并且你希望它保持“连接”。你会喜欢相当平滑的结果,并且你希望曲线保持关闭状态。所以,按顺序:随机行走噪音将保持连接点。低通滤波噪声将保持曲线平滑。并将噪声终点固定为零(平滑)以确保结果为封闭。以下是一些产生16种不同噪声(4x4)的代码,改变了总体规模和总体过滤量。您必须根据数据的“采样率”和形状的整体比例来调整这两种选择。
% Generate sample data
[x,y] = pol2cart(0:0.01:2*pi, 1);
% Pick a set of 4 noise scale, and noise filter values
scales = [.01 .05 .1 .5];
filterstrength = [.1 .5 .9 .98];
% Plot a 4x4 grid, picking a different type of noise for each one
for i=1:4
for j=1:4
scale = scales(i);
f = filterstrength(j);
% Generate noise for x and y, by filtering a std 1 gaussian random
% walk
nx = filter(scale*(1-f), [1 -f], cumsum(randn(size(x))));
ny = filter(scale*(1-f), [1 -f], cumsum(randn(size(y))));
% We want a closed polygon, so "detrend" the result so that
% the last point is the same as the first point
nx = nx - linspace(0,1,length(nx)).*(nx(end)-nx(1));
ny = ny - linspace(0,1,length(ny)).*(ny(end)-ny(1));
subplot(4,4,4*(i-1)+j);
% Add the noise
plot(x+nx,y+ny);
end
end
其他东西你可以改变:你有几乎无限的滤波器形状的选择,这将影响变形的风格。
我正在寻找完美的答案。 – user2178841
它是一个轮廓?什么是x?什么是y?图表在哪里?哪些节点? – Eleanore
@Eleanore是的。坐标。坐标。图形有多种定义。[http://en.wikipedia.org/wiki/Graph_of_a_function]不只是带有节点和边的图形。但是,确切地说,它不是一个函数图。假设这是一个粒子的轨迹。 – user2178841
这很明显。但是,您没有指定x和y。这些是构成轮廓点的坐标吗?我是否应该假设情节中的所有点都以坐标(你想重新计算)为特征?而且,你没有指定什么是“噪音”。它只是轮廓的变形吗? – Eleanore