zhangnan3509 发表于 2007-10-31 18:44

对于任意信号进行fft的时候,采样频率怎么确定?

也就是拿到得到数据之后,画出了时域图,但是此时仍然对信号的最高频率不了解,下面如果作fft,但是采样频率并不知道,此时该怎么办?

[ 本帖最后由 zhangnan3509 于 2007-10-31 18:52 编辑 ]

yangzj 发表于 2007-10-31 19:32

采样频率都不知道的话,没办法知道具体的频率,做FFT只能看出信号在0到分析频率(采样频率的一半)之间的相对分布,或者说得到以采样频率归一化的频率。

后知后觉 发表于 2007-10-31 19:36

数据怎么会不知道采样时间呢???知道了采样时间不就知道采样频率了?

zhangnan3509 发表于 2007-10-31 19:39

回复 #3 后知后觉 的帖子

你是说 数据的个数就是采样频率吗?我想不是这样的吧

zhangnan3509 发表于 2007-10-31 19:39

回复 #2 yangzj 的帖子

如果这个数据是自己模拟出来的呢?这时候怎么确定?

VibrationMaster 发表于 2007-10-31 19:41

怎么会问这个问题?贴出你的生成函数

[ 本帖最后由 VibrationMaster 于 2007-10-31 19:42 编辑 ]

花如月 发表于 2007-10-31 19:42

回复 #2 yangzj 的帖子

不知道采样时间,应该可以分析出频率成分吧?很多信号对时间没要求,但是一样可以分析频率成分呀。图像信号,就是和时间无关的,也可以进行频率成分分析:loveliness:

不知道是不是理解错了,前辈多指教

咕噜噜 发表于 2007-10-31 19:48

就是在分析仿真信号的时候,这里不知道怎么确定采样频率
贴出我的原始仿真数据程序
function dz=Lorenz1(t,z)
we=50;
g1=0.1244;
g2=0.9273;k=1.56*10^6; kx=3.0*10^6;
fa=pi/2;C=1443.4;D=1876.4;
A1=8*sin(g1)*cos(fa/3);
B1=-8*cos(g1)*cos(fa/3)/0.025;
C1=-(8*sin(g1))^2*sin(fa/3);
D1=2*8*sin(g1)*8*cos(g1)*sin(fa/3)/0.025;
E1=-(-8*cos(g1)/0.025)^2*sin(fa/3);
A2=-8*cos(g2)*cos(fa/3);
B2=-8*sin(g2)*cos(fa/3)/0.025;
C2=-(8*cos(g2))^2*sin(fa/3);
D2=-2*8*sin(g2)*8*cos(g2)*sin(fa/3)/0.025;
E2=-(8*sin(g2)/0.025)^2*sin(fa/3);
a0=sin(fa/3)*(C*sin(g1)-D*cos(g2));
a1=sin(fa/3)*(C*A1*sin(g1)-D*A2*cos(g2))/0.025;
a2=sin(fa/3)*(C*B1*sin(g1)-D*B2*cos(g2));
a3=sin(fa/3)*(C*C1*sin(g1)-D*C2*cos(g2))/0.025/2;
a4=sin(fa/3)*(C*E1*sin(g1)-D*E2*cos(g2))/2;
a5=sin(fa/3)*(C*D1*sin(g1)-D*D2*cos(g2))/0.025/2;
b0=-sin(fa/3)*(C*cos(g1)+D*sin(g2));
b1=-sin(fa/3)*(C*A1*cos(g1)+D*A2*sin(g2))/0.025;
b2=-sin(fa/3)*(C*B1*cos(g1)+D*B2*sin(g2))+k;
b3=-sin(fa/3)*(C*C1*cos(g1)+D*C2*sin(g2))/0.025/2;
b4=-sin(fa/3)*(C*E1*cos(g1)+D*E2*sin(g2))/2;
b5=-sin(fa/3)*(C*D1*cos(g1)+D*D2*sin(g2))/0.025/2;
cwp=0.3;csp=0.3;cxz=0.3;
c1=cwp*sin(g1)^2+csp*cos(g2)^2;
c2=-cwp*sin(g1)*cos(g1)+csp*sin(g2)*cos(g2);
c3=c2;c4=cwp*cos(g1)^2+csp*sin(g2)^2;
c5=cxz;
dz=zeros(6,1);
dz(1)=z(2);
dz(3)=z(4);
dz(5)=z(6);
dz(2)=-(c1*z(2)+c2*z(4)+a1*z(1)+a2*z(3)+a3*z(1)^2+a4*z(3)^2+a5*z(1)*z(3))/0.33;
dz(4)=-(c3*z(2)+c4*z(4)+c5*z(6)+b1*z(1)+b2*z(3)+b3*z(1)^2+b4*z(3)^2+b5*z(1)*z(3)-k*z(5))/0.66;
dz(6)=(3*k*z(3)-3*k*z(5)+3*c5*z(4)-3*c5*z(6)+50*cos(we*t))/4.5;



clear;clc;
t0=linspace(0,20,500000);%积分时间
y0=;
=ode45(@Lorenz1,t0,y0);
plot(z(490000:500000,1)*1000,z(490000:500000,2))
xlabel('位移u_r(mm)')
ylabel('速度v_u_r(mm/s)')
我想要知道这里面有那些高频谐波分量,因此作fft分析,请大家看看如何思路

心灯 发表于 2007-10-31 19:50

采样频率即取样频率,指每秒钟取得信号样本的次数。所以,采样频率就是$1/{\delta t}$,其中$\delta t$为连续采两次信号的时间间隔。
采样频率/采样点数=频率分辨率。
对于已有信号数据,$\delta t$ 已知,数据点数已知,信号数据已知,应该就可以完成整个分析了。//个人理解

[ 本帖最后由 心灯 于 2007-10-31 19:51 编辑 ]

心灯 发表于 2007-10-31 20:28

本帖最后由 wdhd 于 2016-9-8 14:27 编辑

原帖由 咕噜噜 于 2007-10-31 19:48 发表
就是在分析仿真信号的时候,这里不知道怎么确定采样频率
贴出我的原始仿真数据程序
function dz=Lorenz1(t,z)
we=50;
g1=0.1244;
g2=0.9273;k=1.56*10^6; kx=3.0*10^6;
fa=pi/2;C=1443.4;D=1876.4;
A1=8 ...

主程序下加了FFT变化的部分,得出图形如附件所示,不知道有没有问题。除了50Hz的以外,发现了两个频率,一个低频,一个高频,具体分析你来做吧


close all;
clear;clc;
t0=linspace(0,20,500000);%积分时间
y0=;
=ode45(@Lorenz1,t0,y0);
plot(z(490000:500000,1)*1000,z(490000:500000,2))
xlabel('位移u_r(mm)')
ylabel('速度v_u_r(mm/s)')
t0=t;
%%
close all;
dt= 4.000008000016000e-005; %t0(2)-t0(1);

t=t0(490001:500000,1);
m=length(t);
y=z(490001:500000,2);
figure;plot(t,y)
f=0:1/((m-1)*dt):1/dt;
yfft=fft(y);
figure;plot(f(1:end/2),abs(yfft(1:end/2)/(m/2)),'-')

后知后觉 发表于 2007-10-31 20:32

我说的不是数据个数。是采样时间啊。

你得到的数据不都是一个个离散点下的数据吗?(只有离散数据才能被计算机处理)

既然是离散点下的数据,那就应该有采样时间,从而就有了采样频率了。

wanyeqing2003 发表于 2007-10-31 20:32

时域信号是模拟信号可能不知道采样频率,如果是数字信号应该知道采样频率。

如果不知道采样频率,画出来的时间历程也就没有意义了。

后知后觉 发表于 2007-10-31 20:34

本帖最后由 wdhd 于 2016-9-8 14:27 编辑

原帖由 花如月 于 2007-10-31 19:42 发表
不知道采样时间,应该可以分析出频率成分吧?很多信号对时间没要求,但是一样可以分析频率成分呀。图像信号,就是和时间无关的,也可以进行频率成分分析:loveliness:

不知道是不是理解错了,前辈多指教

怎么会不知道采样时间呢?

没有采样时间,那你的数据是怎么来的?不都是一个个的离散时间点下的数据吗?

后知后觉 发表于 2007-10-31 20:37

无论是模拟还是实际实验。都应先确定采样频率,然后就知道了采样时间,然后才能测得你需要的离散时间下的数据。

否则你的数据不是这样测得,那真的就像万老师说的那样没有意义。

咕噜噜 发表于 2007-10-31 20:39

回复 #14 后知后觉 的帖子

采样频率等于采样时间的倒数?呵呵
页: [1] 2 3
查看完整版本: 对于任意信号进行fft的时候,采样频率怎么确定?