suifeng654456 2020-06-10 10:03 采纳率: 0%
浏览 168

C语言for语句累加怎么提高效率?

我写了一个求128点数据均方根的函数,测试发现太耗时间,大家看看能否有什么可优化的地方。

程序运行在TI的DSP芯片28335上面,主频150MHz,测试出运行时间大概20多us,这个时间是根据程序运行情况估算出来的,不是很准确,但时间肯定不会太短。

函数代码如下

float32 rms_calculate_window_128(Float32 data)
{
    static uint16 n=0;
    static Float32 sum=0;
    static Float32 rms_out;
    static Float32 rms_window_square[128];
    static uint16 flag = 0;
    uint16 nn;

    if(flag==0)
    {
        flag = 1;
        for(nn=0;nn<128;nn++)
        {
            rms_window_square[nn] = 0;
        }
    }

    sum = 0;
    for(nn=0;nn<128;nn++)
    {
        sum += rms_window_square[nn];
    }

    rms_window_square[n] = data * data;
    rms_out = sqrt(sum/128);

    if(n++>=127)
        n = 0;

    return rms_out;
}
  • 写回答

1条回答 默认 最新

  • 指针的值是地址 2020-06-10 13:57
    关注
    /*
        这个代码可能需要C++11支持,低版本编译器可能不行。
        for (auto m : score) {
            sum += m;
        }*/
    

    我猜是用auto?

    评论

报告相同问题?

悬赏问题

  • ¥15 ffmpeg如何安装到虚拟环境
  • ¥188 寻找能做王者评分提取的
  • ¥15 matlab用simulink求解一个二阶微分方程,要求截图
  • ¥30 乘子法解约束最优化问题的matlab代码文件,最好有matlab代码文件
  • ¥15 写论文,需要数据支撑
  • ¥15 identifier of an instance of 类 was altered from xx to xx错误
  • ¥100 反编译微信小游戏求指导
  • ¥15 docker模式webrtc-streamer 无法播放公网rtsp
  • ¥15 学不会递归,理解不了汉诺塔参数变化
  • ¥15 基于图神经网络的COVID-19药物筛选研究