노이즈가 특정 특성을 갖기를 원합니다. 커브를 따라 많은 샘플을 가지고 있으며, "연결됨"상태를 유지하고 싶습니다. 꽤 매끄러운 결과를 원하고 커브를 닫아두기를 원합니다. 그래서, 순서대로 : 랜덤 워크 소음은 포인트를 연결 상태로 유지합니다. 로우 패스 필터링 된 노이즈는 곡선을 부드럽게 유지합니다. 그리고 닫힌 결과를 보장하기 위해 잡음 종점을 제로 (smoothly)로 고정하십시오. 여기에는 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
변경 될 수있는 다른 것들 : 변형의 스타일에 영향을주는 필터 모양에 거의 무한한 선택 사항이 있습니다.
윤곽선입니까? x는 무엇입니까? y는 무엇입니까? 그래프는 어디에 있습니까? 노드는 무엇입니까? – Eleanore
@Eleanore 예. 동등 어구. 동등 어구. 그래프의 정의는 여러 가지가 있습니다. [http://en.wikipedia.org/wiki/Graph_of_a_function] 노드와 가장자리 만있는 그래프가 아닙니다. 그러나 정확하게 함수의 그래프가 아닙니다. 입자의 궤적이라고합시다. – user2178841
이것은 분명합니다. 그러나 x와 y는 무엇인지 명시하지 않았습니다. 윤곽을 구성하는 점의 좌표입니까? 플롯의 모든 점들이 좌표로 특징 지어 질 것이라고 가정해야합니까? (재 계산하고 싶습니까?) 또한, 당신은 당신을 위해 "소음"이 무엇인지를 지정하지 않았습니다. 그것은 단지 당신의 윤곽의 변형입니까? – Eleanore