我有一个与基础数学有关的“新手”问题。我正在尝试使用“不等弧度”制作正弦波(至少我相信这是我正在尝试的方法)。换句话说:我需要一个函数,当x接近无穷大时,前几个周期(x)会“更快”并逐渐变慢(“周期”更宽/更长)。这是我正在尝试做的代码和草图:
x <- seq(1, 30, by=0.1) # my x
z <- ifelse(x <= 10, 3, ifelse(x <= 20, 2, 1)) # discrete value to modify x
y <- sin(z*x) # my y(x)
plot(y, type="l") # plot y(x)
和草图(plot
的结果):
忽略“双峰”和其他失真,它们是z
是离散变量的事实的结果。我想使z
连续,并使每个周期平滑扩展。我应该在这里使用什么数学函数?我尝试了阻尼正弦波,但这并不是我想要的。
答案 0 :(得分:1)
这并不是一个完整的答案,因为我无法从头到尾给您代码,但是您在这里寻找的是a声。线性调频有几种不同类型,具体取决于您想要的相位变化率,但我猜您可能需要线性线性调频Wikipedia
R可能已经具有可以提供此功能的功能/模块。
答案 1 :(得分:1)
由@keziah链接的Wikipedia page的直接转录:这是一个函数
chirp <- function(t,phi0=0,f0=1,k=1) sin(phi0 + 2*pi*(f0*t+k*t^2/2))
par(las=1,bty="l",mfrow=c(1,2))
curve(chirp(x),from=0,to=5,n=501)
curve(chirp(x,k=-1,f0=5),from=0,to=5,n=501)