2013-07-25 36 views
1

我有一個圖形圖像。就像一個軌跡。我想給圖表添加噪音。 我嘗試添加正常分佈噪聲。使用蘭德。例如如何合適的噪聲添加到圖

x1=x+a*rand(size(x)); 

對於y也是類似的。

結果在下面附接。這不是我想要的。這給了我一個散點圖或完全嘈雜的情節。如下圖所示。第一行是我所做的,第三行是我想要的。

enter image description here

不同圖表列代表不同標準偏差(的值)。

問:如何獲取地塊的第三類(行)?

P.S.第一行是當我使用情節(...,「。」,markersize,1);第二行爲簡單的矢量圖。

+1

它是一個輪廓?什麼是x?什麼是y?圖表在哪裏?哪些節點? – Eleanore

+0

@Eleanore是的。座標。座標。圖形有多種定義。[http://en.wikipedia.org/wiki/Graph_of_a_function]不只是帶有節點和邊的圖形。但是,確切地說,它不是一個函數圖。假設這是一個粒子的軌跡。 – user2178841

+0

這很明顯。但是,您沒有指定x和y。這些是構成輪廓點的座標嗎?我是否應該假設情節中的所有點都以座標(你想重新計算)爲特徵?而且,你沒有指定什麼是「噪音」。它只是輪廓的變形嗎? – Eleanore

回答

4

的問題是,你想要的噪音有一定的特點。沿着曲線你有很多樣本,並且你希望它保持「連接」。你會喜歡相當平滑的結果,並且你希望曲線保持關閉狀態。所以,按順序:隨機行走噪音將保持連接點。低通濾波噪聲將保持曲線平滑。並將噪聲終點固定爲零(平滑)以確保結果爲封閉。以下是一些產生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 

其他東西你可以改變:你有幾乎無限的濾波器形狀的選擇,這將影響變形的風格。

+0

我正在尋找完美的答案。 – user2178841