2015-08-20 29 views
3

我对整个R-thing仍然很陌生。R:如何产生嘈杂的正弦函数

我有以下目的;我有一个正弦函数,描述随时间变化的钙颗粒数量: 类似于y = a * sin(b * t)+ c

因为实际上随机事件中描述了钙的生成和去除,喜欢为我的功能添加随机噪声项(最好在平均噪声幅度中可缩放)。

类似于z = y + random *振幅

你能帮我吗?

最佳

回答

1

y <- jitter(a*sin(b*t) + c)使用jitter()功能将随机噪声添加到您的功能。您可以指定jitter()中的“量”参数来控制幅度。

+1

是不是'抖动()'意为了可视化的目的而产生小的噪音(避免重复的数据点混淆彼此)? – ecerulm

8

这里有一个方法,我会用 - 我提供了关于如何可能产生的误差(均匀分布VS高斯分布)两个选项:

### Equation: y=a*sin(b*t)+c.unif*amp 
# variables 
n <- 100 # number of data points 
t <- seq(0,4*pi,,100) 
a <- 3 
b <- 2 
c.unif <- runif(n) 
c.norm <- rnorm(n) 
amp <- 2 

# generate data and calculate "y" 
set.seed(1) 
y1 <- a*sin(b*t)+c.unif*amp # uniform error 
y2 <- a*sin(b*t)+c.norm*amp # Gaussian/normal error 

# plot results 
plot(t, y1, t="l", ylim=range(y1,y2)*c(1,1.2)) 
lines(t, y2, col=2) 
legend("top", legend=c("y1", "y2"), col=1:2, lty=1, ncol=2, bty="n") 

enter image description here