a.gain 发表于 2012-6-30 19:42

请问楼上你做完N点DFT后怎么校正?不是一个DFT就可以的,除非你锁相倍频采样没有频谱泄漏不需校正
顺便请教楼上如某一50.1Hz,幅值100,初相10度的正弦信号用10K的采样频率对他采样你怎么计算出原信号频率及幅值,可以的话请贴上MATLAB程序

a.gain 发表于 2012-6-30 19:45

回复 15 # 翔雨 的帖子

http://forum.vibunion.com/home-space-uid-62061-do-blog-id-17957.html

a.gain 发表于 2012-6-30 19:49

回复 15 # 翔雨 的帖子

http://forum.vibunion.com/home-space-uid-62061-do-blog-id-18060.html

dsp2008 发表于 2012-6-30 23:29

请学习以下基本概念:
1、频谱泄漏是对数据加窗而引起的,和你那个“锁相倍频采样”没有丝毫关系;
2、频谱泄漏现象可以通过加不同的窗而得到不同的折衷结果;
3、数据窗越长,频谱泄漏越轻。

搞清楚以上基本概念后,你就可以找到正确的解决办法了。

a.gain 发表于 2012-7-1 10:24

请教楼上如某一50.1Hz,幅值100,初相10度的正弦信号用10K的采样频率对他采样你怎么计算出原信号频率及幅值,可以的话请贴上MATLAB程序

a.gain 发表于 2012-7-1 10:27

楼主有看过3点,5点校正算法吗?不加窗函数一样可以把频率,幅值,相位都校正正确

dsp2008 发表于 2012-7-1 11:47

a.gain 发表于 2012-7-1 10:24 static/image/common/back.gif
请教楼上如某一50.1Hz,幅值100,初相10度的正弦信号用10K的采样频率对他采样你怎么计算出原信号频率及幅值 ...

1、一个50.1Hz的信号,用10KHz频率去采样,这是极大地浪费;
2、你出的这个题不完备,你还得给出一次可以采集多长时间的数据。须知道,频率分辨率是采集时间的倒数。

当条件完备之后,剩下的工作就是本科生数字信号处理实验课的内容了。很简单,直接调用MATLAB的FFT函数即可。

还有一个关键问题须清楚。虽然俗话说,“眼见为实,耳听为虚”,但是到了计算机时代,眼睛所见到的,常常是非你所想象的。透过现象看本质,这很重要!

dsp2008 发表于 2012-7-1 11:48

“透过现象看本质!”一定要记住这一点哦。

a.gain 发表于 2012-7-1 12:41

1、一个50.1Hz的信号,用10KHz频率去采样,这是极大地浪费;
2、你出的这个题不完备,你还得给出一次可以采集多长时间的数据。须知道,频率分辨率是采集时间的倒数。
---
1、当你需要分析谐波如3,5,7。。。就需要这个高频率,看样子你实际产品应该没做过
2、我们一般一个周期采集64点采集几个周期即可分析,那就定1024点好了!看你用什么好的办法来校正

a.gain 发表于 2012-7-1 12:44

10HZ的分辨率完全可以分别间隔30HZ的信号

a.gain 发表于 2012-7-1 12:48

“锁相倍频采样”好处就是谱线刚好是频谱分辨率的整数倍所以不需要校正,其他就必须校正,比如通过前后两根谱线的幅值比来校正

a.gain 发表于 2012-7-1 12:55

Fs=10000;
N=1024;
freq = 50.1;
amp1 = 0.5;
ph1= 127.0;
t = (0:N);
y = amp1*sin(2*pi*freq*t/Fs + ph1*pi/180.0);

dsp2008 发表于 2012-7-1 15:37

回复 25 # a.gain 的帖子

1、当你需要分析谐波如3,5,7。。。就需要这个高频率,看样子你实际产品应该没做过
2、我们一般一个周期采集64点采集几个周期即可分析,那就定1024点好了!看你用什么好的办法来校正
---------------------
根据第1点可知,你感兴趣的信号不仅仅是50.1Hz,还包括它的高次谐波。这就又一次说明出题的条件不完备,证明你做事不严谨!

dsp2008 发表于 2012-7-1 15:48

a.gain 发表于 2012-7-1 12:48 static/image/common/back.gif
“锁相倍频采样”好处就是谱线刚好是频谱分辨率的整数倍所以不需要校正,其他就必须校正,比如通过前后两根 ...

“锁相倍频采样”的工程背景是信号中只含有一个基频信号及其高次谐波信号。因此,可以用锁相环来提取这个基频信号,并令采样频率是所感兴趣的最高次谐波信号的整数倍。这样一来,DFT的结果是,基频及其各次谐波信号分量的谱峰均落在谱线上,因而就不需要校正。

若不采用“锁相倍频采样”方法,或者信号是非谐波的多分量信号,或者信号是宽带信号,则各分量的谱峰一般不会恰好落在整数根谱线,这就需要校正。校正的方法(找到谱线的准确位置)有许多种,网上可检索到。由于这不是我感兴趣的东西,我不对此展开讨论。

需要强调的是,所谓的“全相位”算法并没有自动定位谱峰的功能!

a.gain 发表于 2012-7-1 18:54

我贴个3点校正算法,这个精度有限,如需更高可以用5点、7点甚至9点可以得到更高精度!楼上你也来贴个
clear all;clc
Fs=10000;
N=1024;
freq = 50.1;
amp1 = 0.5;
ph1= 127.0;
t = (0:N);
y = amp1*sin(2*pi*freq*t/Fs + ph1*pi/180.0);
xfft=fft(y,N);
y=abs(xfft);
=max(y(2:N/2));
k=k+1;
z1=xfft(k)-(xfft(k-1)+xfft(k+1))/2;
z2=xfft(k+1)-(xfft(k)+xfft(k+2))/2;
ka=abs(z1)/abs(z2);
r=(2-ka)/(1+ka);
fo=(k-1+r)*Fs/N
ao=2*pi*r*(1-r*r)*(abs(z1))/(N*sin(r*pi))
pho=(angle(z1)-pi*r)*180/pi+90
页: 1 [2] 3 4
查看完整版本: 怎样从全相位FFT中恢复原来数据?