zyy_ChinaVib 发表于 2012-4-6 10:15

请教大侠关于频率分辨率的问题

采样频率固定为96KHz,采样2048个点做FFT,其频率分辨率过低,为96000/2048=46.875. 是否可以通过下面的方法提高分辨率,还是以96KHz采集数据,不过采样点数为2048*m, 然后从采样得到的数据中每m个取1个,共取2048个。这样实际的采样频率降低到了96K/m, 从而将频率分辨率提高到46.875/m ?各位大侠,请赐教,谢谢!

独孤一1984 发表于 2012-4-6 10:32

分辨率=采样频率/采样长度,调高分辨率就是减低分辨率的值,可以通过减小采样频率或者加大采样长度(点数)来实现。

zyy_ChinaVib 发表于 2012-4-6 11:38

回复 2 # 独孤一1984 的帖子

谢谢大侠,我提到的这种方法是否就可以等效为通过降低采样频率来提高了频率分辨率?

独孤一1984 发表于 2012-4-6 12:04

回复 3 # zyy_ChinaVib 的帖子

采样点数为2048*m,每m个取1个,我理解为:采样点数不变,只是采样的数据变稀疏了,也就是采样频率变小了,所以可以等效为通过降低采样频率来提高了频率分辨率。个人之见,看看别人怎么说吧,

hhbhhy 发表于 2012-4-6 16:06

楼上观点正确。如果采样频率不变的话,最好采用增加采样长度的方法,这样所得到的频谱带宽更高一些。

yongyuanz 发表于 2012-4-6 20:17

你实际是采用了抽样的方法来降低采样频率,这样在FFT点数不变的情况下可以提高频率分辨率,但应注意降低采样频率后是否还满足采样定理。在采样频率较高的情况下可以采用LZ的方法提高频率分辨率。

mingkongfengse 发表于 2012-4-7 09:23

在做FFT,采样数跟线精度有关系。分辨率=采样频率/线精度。

dsfire 发表于 2012-4-8 14:42

同意6楼,,,

aicmonitor 发表于 2012-4-9 09:49

{:{39}:}

impulse 发表于 2012-4-9 14:19

本帖最后由 impulse 于 2012-4-9 14:20 编辑

yongyuanz回答很对,但如果你的大数据量FFT能满足要求的话,又何必降采样,采样频率不变,添加采样点数(采样点数为2048*m)后直接fft就已经达到提高频率分别率的作用了。数字信号重采样还得考虑频率混叠问题,降采样前需要进行抗混滤波。

zyy_ChinaVib 发表于 2012-4-9 15:36

多谢楼上各位大侠的赐教,小弟受益无穷。根据FFT变换分辨率的公式 分辨率=采样频率fs/FFT点数nfft,通过降低fs和增大nfft都可以实现提高分辨率的目的。我采用m个数取1来降低有效采样频率,从而提高分辨率,其背景是这样的:分析对象的最高频率为1KHz,而采样频率96KHz受硬件限定不能改变,FFT分析操作在嵌入式系统上实现,FFT点数nfft过大实现代价太高(计算时间、数据空间等),所以采用这种方法。希望大家继续讨论讨论。

ziyouren025 发表于 2012-4-9 16:33

分辨率一般是硬件决定了!在改变分辨率只能是降低采样频率(也就是截止频率)可以实现在现有硬件条件下满足你分析需求的分辨率,要么就是增加采样点数(或采样线数)都可以在固有条件是实现!

impulse 发表于 2012-4-9 16:36

回复 11 # zyy_ChinaVib 的帖子

ARM上做降采样前的滤波也是很费时间的哟,很多板子还不支持硬件浮点运算,最近也在搞ARM,呵呵。

zyy_ChinaVib 发表于 2012-4-9 21:54

回复 13 # impulse 的帖子

有空多向你学习,我现在就羡慕用matlab编程的人,很多因素不用考虑。我现在要在ADI的DSP上实现相关的算法,调用开发环境自带的库函数,但资料少,限制太多。

impulse 发表于 2012-4-10 08:44

回复 14 # zyy_ChinaVib 的帖子

相互学习,DSP从来没有做过,不过现在有些ARM上面有一些协处理器,看网上介绍性能不比dsp差。
页: [1] 2
查看完整版本: 请教大侠关于频率分辨率的问题