java - 如何创建振幅上下限的正弦波

标签 java audio signal-processing trigonometry

我一生都无法解决这个看似简单的问题。

我正在尝试创建一个具有振幅上下限的正弦波(即最高点为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]);
    }
  }

任何提示将非常感谢。

最佳答案

幅度(sin(x)值的倍数)是所需的最高和最低值之差的一半。就你而言

amplitude = (3 - 0.4)/2

这是1.3。然后零偏移是最小值加上振幅,这使它成为1.7

然后要绘制的方程式是
1.3 * sin(x) + 1.7

关于java - 如何创建振幅上下限的正弦波,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640887/

相关文章:

java - 运行 `mvn appengine:set_default_version` 而不重建?

java - 通过参数设置的用户定义变量

python-3.x - 如何使用python播放声音并且没有while循环

html - Shoutcast 流媒体和 HTML5 音频播放器

objective-c - 后台线程上的 AVAudioPlayer

c# - C# 中的快速傅立叶变换

image-processing - 推导图像卷积核的逆滤波器

java - 关于重写 SimpleUrlAuthenticationFailureHandler 的说明

java - Hibernate Search(Lucene 索引)如何工作?

python - 在离散时间采样 IIR 滤波器系统中从采样率/截止频率转换为 pi 弧度/采样