ptpan 发表于 2012-3-5 18:30:42

正弦波采样分析

马老师, 
 您好,
 看了用AVR产生正弦波的例子,但有点搞不清,如何去计算正弦波的副值 与 频率? 如何去分析这个采样?

machao 发表于 2012-3-9 16:04:12

计算公式书上已经写了,分析和使用是基于数字信号处理中最基本的采样定理的

zhangsusu 发表于 2012-4-4 02:16:23

正弦波的参数(通常指四参数估计即振幅, 频率, 初相, 直流电平)也称单音(single-tone)的估计是测量学与参数估计中最基本的问题, 有丰富的算法可以解决问题, 具体的使用什么算法要根据需求(精度与实时性等)与嵌入式系统的性能综合考量来决定.

整个过程大致可以分为采样与估计两个阶段:

对于采样来讲,采样率要满足Shannon采样定理(即是待估单音频率的二倍以上), 而IEEE-1057则建议使用5倍以上的采样频率, 同时采样时间最好也超过5个周期, 否则引入的有限长效应你是无法克服的.同时, 采样器的字长, 也是你需要关注的, 不过在存储也采样设备告诉发展的今天, 这个问题可能不严重.

对于估计来讲, 有丰富的算法

文献提出的算法是最基础的算法(基于极大似然的), 能够达到估计下界, 但是复杂度太高, 文献在此基础上提出使用FFT结合二分法来估计单音, 不损失精度的同时很好的降低了时间复杂度. 如果系统有一定的计算能力(现在STM32都支持FFT,而二分法仅用一个while循环就能搞定). 上述算法都在集中精力估计频率, 因为已经指出, 频率搞定了, 相位啥的都很easy.

测量领域推荐的是迭代式最小二乘法,四个参数一起算, 精度很高, 算法在中描述的很清楚, 但是最小二乘牵扯到矩阵运算,c代码的实现有一定难度.

如果系统的硬件性能实在是很低(如51, AVR ), 则推荐使用过零法, 思想很简单, 网上也有代码, SNR较高的时候效果也不错.

还有的系统实时性要求非常高, 那就需要序贯算法了, 抽时间我会介绍的.

IEEE 1057-1994 standard (IEEE Standard for Digitizing Waveform Recorders)
Single tone parameter estimation from discrete-time observations
A modified dichotomous search frequency estimator
A modified dichotomous search frequency estimator

machao 发表于 2012-4-14 18:58:37

楼上纯是个书呆子。连LZ的问题都没有看明白。当然LZ问的问题也是概念不清楚。

xuanfong1 发表于 2014-4-27 21:10:07

路过路过了顺便看看
页: [1]
查看完整版本: 正弦波采样分析