C语言 正玄波代码

#define PointLine 3
#define PointMax 512
#define PI 3.141592654f
float sinData[PointLine][PointMax] = {0};

void get_sin_tab(unsigned int point, unsigned int maxnum)
{
    unsigned int i = 0, j = 0, k = 0;
    float hd = 0.0f; //弧度
    float fz = 0.0f; //峰值
    float tem = 0;
    j = point / 2; //水平线位置,单片机没有负电压,水平线为点值数量的一半
    hd = PI / j;   //π/2内每一个点对应的弧度值
    k = maxnum / 2;//最大值一半
    for(i=0;i<point;i++)
    {
        fz = k * sin(hd * i) + k; //i=0时sin(0)=0 起始点为最大值一半,也就是起始点是水平线位置  弧度值为π/2内每个点对应的弧度值
        tem = fz * 1.0f; //通过系数可以调整输出有效值大小
        sinData[0][i] = tem;
    }
    for(i=0;i<point;i++)
    {
        fz = k * sin(hd * i) + k; //i=0时sin(0)=0 起始点为最大值一半,也就是起始点是水平线位置  弧度值为π/2内每个点对应的弧度值
        tem = fz * 1.0f + 1000; //通过系数可以调整输出有效值大小
        sinData[1][i] = tem;
    }
    for(i=0;i<point;i++)
    {
        fz = k * sin(hd * i) + k; //i=0时sin(0)=0 起始点为最大值一半,也就是起始点是水平线位置  弧度值为π/2内每个点对应的弧度值
        tem = fz * 1.0f + 2000; //通过系数可以调整输出有效值大小
        sinData[2][i] = tem;
    }
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值