现在的普通一个CPU或DSP处理时间与采集时间相比已经到了忽略不计的程度了,比如采集一帧时间200毫秒,数据处理时间小于1毫秒,你那个图还有什么意义和价值呢!:@)
[ 本帖最后由 hcharlie 于 2007-4-12 16:16 编辑 ]
回复 #16 hcharlie 的帖子
本帖最后由 wdhd 于 2016-8-11 10:00 编辑此图片不就是要说明实时处理的时间要等于或短于采集数据的时间嘛,请看清楚图片下面的说明!
[ 本帖最后由 loren_xia 于 2007-4-12 16:34 编辑 ] 原帖由 hcharlie 于 2007-4-12 16:14 发表
现在的普通一个CPU或DSP处理时间与采集时间相比已经到了忽略不计的程度了,比如采集一帧时间200毫秒,数据处理时间小 ...
其他我比较认同,但是这几句我非常不认同。。。。
真的到了忽略不计的程度了吗?如果到了这个程度,DSP技术可以慢慢发展了。。。 本帖最后由 wdhd 于 2016-8-11 10:00 编辑
处理时间本人测试过,不是冒说的。所以早就是实时的了。
DSP可用于除振动外,很多需要更高速度的情况,我没有说DSP没有用。
[ 本帖最后由 hcharlie 于 2007-4-12 20:42 编辑 ] 原帖由 hcharlie 于 2007-4-12 20:38 发表
处理时间本人测试过,不是冒说的。所以早就是实时的了。
DSP可用于除振动外,很多需要更高速度的情况,我没有说DSP没有用。
我不太清楚你是怎么测试的,你的分析处理作了些什么工作。
我也认同目前可以做到实时处理或者是实时控制。
但是 DSP+外围器件 进行振动方面的试验或者是信号处理,在大多数情况下,其总的处理时间与帧采样时间之比并不可能达到忽略不计的地步,只能说还有不少冗余时间而已。如果你的处理任务较多的话,也非常可能出现处理时间不够的情况。所以我认为你比喻为可忽略不计是非常不恰当的。 分析处理工作内容,不外乎加窗,FFT,谱计算,等等,以FFT占时最长。现在做一个1024点FFT不到1毫秒,还有什么疑问吗?我过去用4.7M的IBM-PC用了700毫秒,现在CPU最少也是3G的!
为什么老对忽略不计的话特别在意。
尤其现在WINDOWS下是多用户系统,我不用DSP,直接用CPU分析,采集,分析,其他画图等各人在各自不同的线程内工作,全部是并行工作,谁也不占用谁的时间,总耗时=最慢的工作耗时,对于振动控制,采集是最慢的,说分析处理时间忽略不计有什么不对呢?
[ 本帖最后由 hcharlie 于 2007-4-13 07:09 编辑 ] 原帖由 hcharlie 于 2007-4-13 07:04 发表
分析处理工作内容,不外乎加窗,FFT,谱计算,等等,以FFT占时最长。现在做一个1024点FFT不到1毫秒,还有什么疑问吗?我过去用4.7M的IBM-PC用了700毫秒,现在CPU最少也是3G的!
为什么老对忽略不计的话特别在意 ...
我为什么会对这句话非常在意,因为对于做过相关工作的人来说,能够正确理解你所说的忽略不计的大致范围。但是对于没有做过相关工作的人来说,就不一定能正确理解它的意思,甚至会错误理解和在以后的工作中错误应用。
现在做FFT的时间,DSP的处理时间经过优化以后,可以做到100~200us以内,通用的CPU可以做到70~120us左右,的确是很少,但是目前的系统都不是仅仅做一次FFT就够了,对于多通道系统,可能要做很多次FFT,还有其他如滤波、采样率变换,随机相位的产生等,这些加起来,不会是忽略不计的。
另外再纠正一下你的说法,“尤其现在WINDOWS下是多用户系统,我不用DSP,直接用CPU分析,采集,分析,其他画图等各人在各自不同的线程内工作,全部是并行工作,谁也不占用谁的时间,总耗时=最慢的工作耗时“,多线程并不等于并行,如果你是一个单核的处理器,总的耗时并不等于最慢的工作耗时,而是你的所有工作的时间累加,除非你的是多CPU系统,或者是多核的CPU,你的处理才可能分配到多个CPU核心中去并行运算。即使这样,我相信你也不可能有那么多CPU核并行处理每个线程,因此,总的耗时不是你这么计算的。 本帖最后由 wdhd 于 2016-8-11 10:01 编辑
现在市场流行的PC机都还采用32位的CPU,当然现在64位的CUP也开始运用起来,但是还没有普及。你会认为计算机的工作速度慢吗?
DSP的处理速度比起以前的技术有了质的飞跃,而且现在多数生产动态信号分析仪与振动控制仪的厂家也都采用了最先进的分布式系统结构、低噪声设计技术,采用32位的高速DSP,对于处理实时采集、分析、存储这些工作,时间上完全已经足够。关键还可能要考虑与计算机接口部分的技术,好多的计算机接口速度的理论传输速率都比较高,只是好多生产动态信号分析仪与振动控制仪的厂家的开发能力有限,可能开发了其中的1/10。这样,好多使用者对于几十个测试通道,甚至上百个测试通道的实时处理产生疑问,其实这都可以用理论去解释的。
单通道,采集平均100次,采集时间100*0.2=20秒,加最后一次处理1ms,=20.001秒,我将最后一个一毫秒说成忽略不计,我犯何大错?
多线程是分时运行,不是并行运行.但从处理时间来看我的结论是对的.
前99次已经在前20秒内实时处理了.
[ 本帖最后由 hcharlie 于 2007-4-13 16:04 编辑 ] 原帖由 hcharlie 于 2007-4-13 09:46 发表
单通道,采集平均100次,采集时间100*0.2=20秒,加最后一次处理1ms,=20.001秒,我将最后一个一毫秒说成忽略不计,我犯何大错?
多线程是分时运行,不是并行运行.但从处理时间来看我的结论是对的.
哎,你真的算错了。。。
这次的例子也应该错了。
单通道,采集平均100次,难道你就最后才做一次处理?这算是实时控制吗?
肯定是每采集1帧数据就要做一次运算,不算其他处理运算,就算只做100次1024点的FFT,1ms/100==10us,考虑其他运算的话,这个运算时间必须更小,不知道现在有哪些通用的DSP或者是CPU可以做到,还真希望你推荐一下。
即使是你采集100帧数据以后再做运算,那也不会只做一次1024点的fft吧?
我想再和你就这个问题讨论下去没有任何意义了。
回复 #24 hcharlie 的帖子
我用控制器自闭环做了个随机试验5-2000HZ,400线,报警限+/-0.6dB,报警线50线,当DOF为200时,正式试验后超报警线报警。其他条件不变,当DOF为400时,正式试验后控制良好,无报警。可见,自由度高,控制精度高。DOF为200时,采集平均100次,采集时间20秒
DOF为400时,采集平均200次,采集时间40秒,但DOF为200时,40秒时间采集平均也该是200次?我这样理解对吗?
[ 本帖最后由 helloman301 于 2007-4-14 11:08 编辑 ] DOF越高,精度越高,这是对的。
采集一次的时间,不一定是0.2秒,而是频率分辩率的倒数。你选了500线,频率分辨率如果是2000/500=4Hz,则采集一次为0.25秒。
控制仪的平均方法有两种,一种是算术平均,就是简单的100次或200次平均。
一种是滚动平均,每次采集N次,N次PSD的算术平均为PN,而新的平均值:
Pnew=(PN+Pold*(K-1))/K;比如N=8,K=5。这样不用等很长时间才均衡一次。
此时DOF=2N*(2K-1);N=8,K=5时,DOF=16*9=144;
国内外控制仪显示的谱也有两种,一种就显示DOF等于选定值时的PSD,也有的(好像比较少)显示一直平均下去的PSD,精度越来越高。
[ 本帖最后由 hcharlie 于 2007-4-14 07:38 编辑 ]
回复 #27 hcharlie 的帖子
Pnew=(PN+Pold*(K-1))/K;比如N=8,K=5。这样不用等很长时间才均衡一次。此时DOF=2N*(2K-1);N=8,K=5时,DOF=16*9=144;
式中:k是什么,它是定值吗?
[ 本帖最后由 helloman301 于 2007-4-15 10:21 编辑 ]
回复 #27 hcharlie 的帖子
Pnew=(PN+Pold*(K-1))/K;比如N=8,K=5。这样不用等很长时间才均衡一次。此时DOF=2N*(2K-1);N=8,K=5时,DOF=16*9=144;
式中:k是什么,它是定值吗? 回29楼:
以上公式抄于“HP5427A & HP5451C 数字振动控制系统使用手册"中文本,有关部分为:
其中N为每次循环中的平均数,K为平均加权系数.
欲得到+/-1dB控制谱精度(90%置信度)典型参数为N=8,K=5,DOF=144;
(当然,N,K都是可选的参数)