声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

楼主: 翔雨

[FFT] 怎样从全相位FFT中恢复原来数据?

[复制链接]
发表于 2012-6-30 19:42 | 显示全部楼层
请问楼上你做完N点DFT后怎么校正?不是一个DFT就可以的,除非你锁相倍频采样没有频谱泄漏不需校正
顺便请教楼上如某一50.1Hz,幅值100,初相10度的正弦信号用10K的采样频率对他采样你怎么计算出原信号频率及幅值,可以的话请贴上MATLAB程序
回复 支持 反对
分享到:

使用道具 举报

发表于 2012-6-30 19:45 | 显示全部楼层
发表于 2012-6-30 19:49 | 显示全部楼层
发表于 2012-6-30 23:29 | 显示全部楼层
请学习以下基本概念:
1、频谱泄漏是对数据加窗而引起的,和你那个“锁相倍频采样”没有丝毫关系;
2、频谱泄漏现象可以通过加不同的窗而得到不同的折衷结果;
3、数据窗越长,频谱泄漏越轻。

搞清楚以上基本概念后,你就可以找到正确的解决办法了。
发表于 2012-7-1 10:24 | 显示全部楼层
请教楼上如某一50.1Hz,幅值100,初相10度的正弦信号用10K的采样频率对他采样你怎么计算出原信号频率及幅值,可以的话请贴上MATLAB程序
发表于 2012-7-1 10:27 | 显示全部楼层
楼主有看过3点,5点校正算法吗?不加窗函数一样可以把频率,幅值,相位都校正正确
发表于 2012-7-1 11:47 | 显示全部楼层

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

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

还有一个关键问题须清楚。虽然俗话说,“眼见为实,耳听为虚”,但是到了计算机时代,眼睛所见到的,常常是非你所想象的。透过现象看本质,这很重要!
发表于 2012-7-1 11:48 | 显示全部楼层
“透过现象看本质!”一定要记住这一点哦。
发表于 2012-7-1 12:41 | 显示全部楼层
1、一个50.1Hz的信号,用10KHz频率去采样,这是极大地浪费;
2、你出的这个题不完备,你还得给出一次可以采集多长时间的数据。须知道,频率分辨率是采集时间的倒数。
---
1、当你需要分析谐波如3,5,7。。。就需要这个高频率,看样子你实际产品应该没做过
2、我们一般一个周期采集64点采集几个周期即可分析,那就定1024点好了!看你用什么好的办法来校正
发表于 2012-7-1 12:44 | 显示全部楼层
10HZ的分辨率完全可以分别间隔30HZ的信号

点评

建议善用编辑功能!  发表于 2012-7-2 01:22
发表于 2012-7-1 12:48 | 显示全部楼层
“锁相倍频采样”好处就是谱线刚好是频谱分辨率的整数倍所以不需要校正,其他就必须校正,比如通过前后两根谱线的幅值比来校正
发表于 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);
发表于 2012-7-1 15:37 | 显示全部楼层
回复 25 # a.gain 的帖子

1、当你需要分析谐波如3,5,7。。。就需要这个高频率,看样子你实际产品应该没做过
2、我们一般一个周期采集64点采集几个周期即可分析,那就定1024点好了!看你用什么好的办法来校正
---------------------
根据第1点可知,你感兴趣的信号不仅仅是50.1Hz,还包括它的高次谐波。这就又一次说明出题的条件不完备,证明你做事不严谨!
发表于 2012-7-1 15:48 | 显示全部楼层
a.gain 发表于 2012-7-1 12:48
“锁相倍频采样”好处就是谱线刚好是频谱分辨率的整数倍所以不需要校正,其他就必须校正,比如通过前后两根 ...

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

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

需要强调的是,所谓的“全相位”算法并没有自动定位谱峰的功能!
发表于 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);
[Y1, k]=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
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-27 02:23 , Processed in 0.119422 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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