我正在尝试生成一组点,当绘制为图形时,这些点代表 1 个周期的正弦波。要求是:

  • 1 个周期的正弦波
  • 下限 = 29491
  • 上限 = 36043
  • 点数 = 100
  • 振幅 = 3276
  • 零偏移 = 32767

  • 代码 :
    int main()
    {
        ofstream outfile;
        outfile.open("data.dat",ios::trunc | ios::out);
        for(int i=0;i<100;i++)
        {
            outfile << int(3276*sin(i)+32767) << "\n";
        }
        outfile.close();
        return 0;
    }
    

    我正在生成并将点存储在文件中。绘制这些点后,我得到下图。

    c&#43;&#43; - C&#43;&#43;中的正弦波生成-LMLPHP

    但我只需要一个周期。我怎样才能做到这一点?

    最佳答案

    考虑到 sine wave 的公式:



    将会:

    y[t] = AMPLITUDE * sin (2 * M_PI * 0.15 * t + 0) + ZERO_OFFSET;
                                       ^^^ f = 15 cycles / NUM_POINTS = 0.15 Hz
    

    要获得一个完整周期,请从 y[0:t) 循环,其中 t 是获得完整周期所需的时间或点数(即波长)

    关于c++ - C++中的正弦波生成,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50366146/

    10-13 08:48