【发布时间】:2014-02-08 01:49:49
【问题描述】:
我一辈子都无法解决这个看似简单的问题。
我正在尝试创建一个正弦波,其幅度的上限和下限(即最高点为 3,最低点为 0.4)
使用常规数学,我能够得到一个从 1 到 -1 的数组中的正弦波,但我不知道如何更改这些界限。
static int MAX_POINTS = 100;
static int CYCLES = 1;
static double[] list = new double[100];
public static void SineCurve()
{
double phaseMultiplier = 2 * Math.PI * CYCLES / MAX_POINTS;
for (int i = 0; i < MAX_POINTS; i++)
{
double cycleX = i * phaseMultiplier;
double sineResult = Math.sin(cycleX);
list[i]= sineResult;
}
for(int i=0;i<list.length;i++){
System.out.println(list[i]);
}
}
任何提示将不胜感激。
【问题讨论】:
-
您将使用简单的数学运算,只不过是加法和乘法 - 将范围扩大或缩小到所需值的乘法以及将其转换为所需中心的加法。如果你先用铅笔在纸上画出来,你就可以做到这一点。
-
事实上,如果您使用纸和铅笔并使用乘法器,您可能会解决这个问题,并更好地了解您在做什么。
标签: java audio signal-processing trigonometry