OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9492|回复: 12

求助计算离散信号周期的方法

[复制链接]

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
发表于 2014-5-13 17:47:49 | 显示全部楼层 |阅读模式
5金钱

具体有一串AD采样得到数字信号,已经做了数字滤波处理,那么有什么好的方法能从这一串序列得到信号的周期呢?
我用的过零检测法,效果不太好!老测不准-------------------
求好的方法!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-13 22:52:08 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2014-5-14 08:59:23 | 显示全部楼层
可以用  FFT
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2014-5-14 09:18:29 | 显示全部楼层
用自相关测,任意周期都OK,还具备强大的抗干扰性能(抗白噪声,所以你用这个方法根本不用事先滤波)。
FFT只能测单色信号。
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2014-5-14 09:18:53 | 显示全部楼层
任意周期信号都OK。
回复

使用道具 举报

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
 楼主| 发表于 2014-5-14 14:28:31 | 显示全部楼层
回复【4楼】lsj9383:
---------------------------------
我已经用了自相关处理了,现在是要求精确一点的数数方法啊,找不到好的数周期的方法,因为是实时采样,采样率44.1K,要求精度控制在一个Hz以内
回复

使用道具 举报

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
 楼主| 发表于 2014-5-14 14:30:46 | 显示全部楼层
回复【4楼】lsj9383:
---------------------------------
还有一点,信号必须要滤波,因为音频信号中有多种频率成分,首先通过选频,然后统计各个频率的周期
回复

使用道具 举报

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
 楼主| 发表于 2014-5-14 14:31:12 | 显示全部楼层
回复【3楼】aleda303:
---------------------------------
FFT怎么处理,能具体点吗
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2014-5-14 18:12:40 | 显示全部楼层
回复【7楼】草尼玛:
---------------------------------
1.什么是数数方法?如果你的信号是周期信号,那么直接求自相关的峰值位置即可。
2.音频信号本身就是非周期、非平稳信号,没有周期可言。(除非自己人为弄个周期性波形这种特殊的声音)。
3.不懂你表述的各个频率的周期是什么意思?据我所知,频率的倒数就是周期。
回复

使用道具 举报

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
 楼主| 发表于 2014-5-15 10:45:12 | 显示全部楼层
回复【9楼】lsj9383:
---------------------------------
音频信号是非周期信号,首先通过滤波器滤波处理得到近似周期的序列,然后就是要统计这个近似周期的周期,剩下的问题就是怎么统计它的周期了,也就是数点的个数问题了,由于是近似周期,因此要比较准确得到信号的周期,必须用好的方法吧?要求要达到精度误差控制在一个HZ以内,常规的测峰值和过零点似乎不太准确啊,有没有好的数学统计方法?
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2014-5-15 12:50:09 | 显示全部楼层
回复【10楼】草尼玛:
---------------------------------
1、你测的是什么的峰值?
2、音调时常变化,音频是非平稳的,你确定通过滤波已经得到良好的周期序列了吗?
就举个简单的例子,一个信号,0-1秒是10Hz, 1-2秒是20H在,2-3秒是30Hz,3-4秒是10Hz, 4-5秒是60Hz, 5-6秒是10Hz。
通过滤波器,取10Hz信号,得到很明显是个一个0-6秒的非周期信号。
语音信号还可以看做短时平稳,进行基音周期检测(而这个周期检测方法通常就是自相关法、倒谱法、线性预测等等,后两者方法是根据语音特点来进行处理的)
对于任意音频信号更是复杂,无法保证其短时平稳,滤波得到周期序列也更说不通了,除非是某些特殊的音频。
回复

使用道具 举报

25

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
231
金钱
231
注册时间
2012-8-7
在线时间
1 小时
 楼主| 发表于 2014-5-15 13:48:09 | 显示全部楼层
回复【11楼】lsj9383:
---------------------------------
不是任意音频信号,是特定的一个或几个混在一起再加上噪声的混合信号(当然这个特定是指某个范围段),现在要检测里面的频率成分,准确测出周期
回复

使用道具 举报

108

主题

1433

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2234
金钱
2234
注册时间
2012-4-30
在线时间
7 小时
发表于 2014-5-15 13:57:30 | 显示全部楼层
回复【12楼】草尼玛:
---------------------------------
说实话,实在不太明白你到底要实现什么。特定的一个或几个信号混合在一起,这个信号指的是什么信号,是固定频率的音频信号还是非固定频率的音频信号混合?噪声又是什么噪声,白噪声还是单色噪声?
要检测频率成分也单纯就是个FFT,和滤波不滤波没有关系。
而且频率成分和周期,关系也是不可知的。比如   cos(2*pi*t)+0.5*cos(3*pi*t)+0.1*cos(4*pi*t),这是个周期信号,那么它的周期是多长不是单看频率成分就可以算出来的。

——————————————————————————————————————————————————————————————————

http://tieba.baidu.com/p/2935993509?pid=47723628155&cid=#47723628155

正好我前段时间在贴吧里面讨论过一点周期检测的,不过是针对任意周期信号,而非类周期信号。
你看看,能不能满足你的要求。这招对于周期信号的精度很高,类周期信号,要看到底有多类。计算量有点大而且时间比较长,如果要坐在单片机里面的,要优化才行。

(另:最好先在matlab里面把方法仿真好了,再做下去)。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-8 03:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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