【问题标题】:R: How to generate a noisy sine functionR:如何生成嘈杂的正弦函数
【发布时间】:2015-11-13 17:21:47
【问题描述】:

我对整个 R 事物还是很陌生。

我有以下目标;我有一个正弦函数,可以描述随时间变化的钙粒子数: 像 y = a * sin (b*t) + c

由于实际上钙的生成和去除是在随机事件中描述的,我想在我的函数中添加一个随机噪声项(最好在平均噪声幅度上进行扩展)。

类似于 z = y + random*Amplitude

你能帮帮我吗?

最好的

【问题讨论】:

    标签: r noise trigonometry stochastic


    【解决方案1】:

    这是我将使用的一种方法 - 我提供了两种关于如何生成错误的选项(均匀分布与高斯分布):

    ### 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")
    

    【讨论】:

      【解决方案2】:

      y &lt;- jitter(a*sin(b*t) + c) 使用 jitter() 函数会给你的函数添加随机噪声。您可以在 jitter() 中指定“数量”参数来控制幅度。

      【讨论】:

      • jitter() 不就是为了可视化目的而设计的小噪音吗(避免重复的数据点相互混淆)?
      • 不熟悉jitter,但在任何情况下它都不能如上所示工作给Error in a * b + c : non-numeric argument to binary operator
      • 您不再需要 +c 部分,即只需 jitter(asin(bt)) - 如果您删除 @javadba 它将起作用。
      • 谢谢@NickCotter
      猜你喜欢
      • 2019-12-08
      • 2019-07-28
      • 2017-01-25
      • 1970-01-01
      • 2021-02-26
      • 2018-06-11
      • 2012-07-11
      • 2016-02-21
      • 2018-10-26
      相关资源
      最近更新 更多