当前位置: 首页 > 知识库问答 >
问题:

C语言中的无穷正弦生成

秦跃
2023-03-14
double time;
void control_loop() {
    time += 30e-6;
    double sine = sin(2 * M_PI * 280 * time);
    ...
}
    null

共有1个答案

景鹏飞
2023-03-14
static const double dx = cos(2 * M_PI * 280 * 30e-6);
static const double dy = sin(2 * M_PI * 280 * 30e-6);
double x = 1, y = 0; // complex x + iy
int counter = 0;

void control_loop() {
    double xx = dx*x - dy*y;
    double yy = dx*y + dy*x;
    x = xx, y = yy;

    // renormalize once in a while, based on
    // https://www.gamedev.net/forums/topic.asp?topic_id=278849
    if((counter++ & 0xff) == 0) {
        double d = 1 - (x*x + y*y - 1)/2;
        x *= d, y *= d;
    }

    double sine = y; // this is your sine
}
xx = cos((n+1)*a) = cos(n*a)*cos(a) - sin(n*a)*sin(a) = x*dx - y*dy
yy = sin((n+1)*a) = sin(n*a)*cos(a) + cos(n*a)*sin(a) = y*dx + x*dy
double d = 1/sqrt(x*x + y*y);
x *= d, y *= d;
d = 1 - (x*x + y*y - 1)/2
 类似资料:
  • 我试图生成一组点,当绘制成一个图表示1个周期的正弦波。要求是: 1个周期的正弦波 下限=29491 上限=36043 点数=100 振幅=3276 零偏移量=32767 代码: 我正在生成并存储一个文件中的点。当这些点被绘制出来时,我得到了下面的图。 但我只需要一个循环。我怎么能这么做?

  • 我试图在C中实现正弦函数,但我得到了奇怪的结果。下面是我用来计算正弦的三个函数:

  • 本文向大家介绍C语言中计算正弦的相关函数总结,包括了C语言中计算正弦的相关函数总结的使用技巧和注意事项,需要的朋友参考一下 C语言sin()函数:正弦函数 头文件:  sin() 函数用来求给定值的正弦值,其原型为: 【参数】给定的值(弧度)。 【返回值】返回-1 至1 之间的计算结果。 弧度与角度的关系为: 弧度 = 180 / π 角度 角度 = π / 180 弧度 使用 rtod( ) 函

  • 本文向大家介绍C语言中求余弦值的相关函数总结,包括了C语言中求余弦值的相关函数总结的使用技巧和注意事项,需要的朋友参考一下 C语言cos()函数:求余弦值 头文件: cos() 函数用来求余弦值,即求角的临边长度除以斜边长度的比值,其原型为:     【参数】x 为一个弧度。 【返回值】返回-1 至1 之间的计算结果。 弧度与角度的关系为: 弧度 = 180 / π 角度 角度 = π / 180

  • 我如何建立一个方程来产生扫频正弦波。我是信号处理新手,在网上找不到太多关于生成扫描正弦波的话题。请告诉我一些我可以用来生成方程式并在代码中使用的源代码。非常感谢。

  • 问题内容: 在Java中以任何频率生成正弦波声音的最简单方法是什么?样本大小大于2个字节会有所帮助,但这并不 重要。 问题答案: 见一个自包含的例子。 也许更简单? 如链接答案顶部所示,这51行代码段(在下面重复-分隔为单行和行内注释)大约与 生成音调一样简单(好的,您可以取出5行以上用于谐波)。 人们似乎认为这应该是工具包中内置的一种产生 纯净音调的方法。并非如此,要花一点时间就可以做到。