对于任意信号进行fft的时候,采样频率怎么确定?
也就是拿到得到数据之后,画出了时域图,但是此时仍然对信号的最高频率不了解,下面如果作fft,但是采样频率并不知道,此时该怎么办?[ 本帖最后由 zhangnan3509 于 2007-10-31 18:52 编辑 ] 采样频率都不知道的话,没办法知道具体的频率,做FFT只能看出信号在0到分析频率(采样频率的一半)之间的相对分布,或者说得到以采样频率归一化的频率。 数据怎么会不知道采样时间呢???知道了采样时间不就知道采样频率了?
回复 #3 后知后觉 的帖子
你是说 数据的个数就是采样频率吗?我想不是这样的吧回复 #2 yangzj 的帖子
如果这个数据是自己模拟出来的呢?这时候怎么确定? 怎么会问这个问题?贴出你的生成函数[ 本帖最后由 VibrationMaster 于 2007-10-31 19:42 编辑 ]
回复 #2 yangzj 的帖子
不知道采样时间,应该可以分析出频率成分吧?很多信号对时间没要求,但是一样可以分析频率成分呀。图像信号,就是和时间无关的,也可以进行频率成分分析:loveliness:不知道是不是理解错了,前辈多指教 就是在分析仿真信号的时候,这里不知道怎么确定采样频率
贴出我的原始仿真数据程序
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分析,请大家看看如何思路 采样频率即取样频率,指每秒钟取得信号样本的次数。所以,采样频率就是$1/{\delta t}$,其中$\delta t$为连续采两次信号的时间间隔。
采样频率/采样点数=频率分辨率。
对于已有信号数据,$\delta t$ 已知,数据点数已知,信号数据已知,应该就可以完成整个分析了。//个人理解
[ 本帖最后由 心灯 于 2007-10-31 19:51 编辑 ] 本帖最后由 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)),'-')
我说的不是数据个数。是采样时间啊。
你得到的数据不都是一个个离散点下的数据吗?(只有离散数据才能被计算机处理)
既然是离散点下的数据,那就应该有采样时间,从而就有了采样频率了。 时域信号是模拟信号可能不知道采样频率,如果是数字信号应该知道采样频率。
如果不知道采样频率,画出来的时间历程也就没有意义了。 本帖最后由 wdhd 于 2016-9-8 14:27 编辑
原帖由 花如月 于 2007-10-31 19:42 发表
不知道采样时间,应该可以分析出频率成分吧?很多信号对时间没要求,但是一样可以分析频率成分呀。图像信号,就是和时间无关的,也可以进行频率成分分析:loveliness:
不知道是不是理解错了,前辈多指教
怎么会不知道采样时间呢?
没有采样时间,那你的数据是怎么来的?不都是一个个的离散时间点下的数据吗? 无论是模拟还是实际实验。都应先确定采样频率,然后就知道了采样时间,然后才能测得你需要的离散时间下的数据。
否则你的数据不是这样测得,那真的就像万老师说的那样没有意义。