算法讨论 - TMS320C6748 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4145|回复: 2

[未解决] 算法讨论

[复制链接]

11

主题

16

帖子

77

积分

注册会员

Rank: 2

积分
77
发表于 2018-4-21 22:20:34 | 显示全部楼层 |阅读模式
在AD8568采样应用中,为了计算输入正弦信号的频率和幅值,写了下面这个函数。但是结果是在输入正弦信号频率低的时候(<360HZ)结果显示正确,但是频率加高后,显示的频率就上不去了,而且还会下降,不知道为什么?从算法上感觉没有问题,算法思路是找找到一个大于0的值,然后再找到小于0的值,最后再找到一个大于0的值,则频率值加1;不知道和DSP的程序运行方式有没有关系。

Para GetParameter(float Input[]){
   Para p;
   float max=1;
   int i,flag=1,num=0;
   double yuzhi=0.1;
   for(i=1;i<800;i++)
   {
       if (Input>max)
           max=Input;
       if(Input>yuzhi&&flag==1)  //Input[i-1]<阈值且Input>阈值,则num++
       {
           num=num+1;               // num代表波峰数目,即条纹数目
           flag=0;
       }
       if(Input<yuzhi)
        flag=1;
    }
   p.freq=num;
   p.amp=max;
   return p;

而且采样率不同,显示的波形和频率也不同.下图分别是采样率为1024和10240时的结果输入正弦波频率为100hz.采样点数为1024.
而且为了调试程序我在main函数的第一行就加了printf("sdfsd");但是debug的时候控制台里并没有打印信息啊

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

12

主题

169

帖子

731

积分

QQ游客

积分
731
发表于 2018-4-27 21:53:52 | 显示全部楼层
您好,请问只是这句printf指令没有生效吗?
回复 支持 反对

使用道具 举报

11

主题

16

帖子

77

积分

注册会员

Rank: 2

积分
77
 楼主| 发表于 2018-5-8 11:29:40 | 显示全部楼层
当输入正弦波的频率提高后,DSP显示的频率值没有提高到一定程度后显示频率还会下降
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2024-3-19 16:15 , Processed in 0.038922 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表