甜心宝贝
发表于 2011-6-8 11:57
songzy41 发表于 2009-11-9 08:15 static/image/common/back.gif
LZ在做 STFT时可能直接用:
tfrstft(yy)
可以设置为:
双对数坐标轴和直接幅值去对数是有区别的吧?
shajue
发表于 2011-6-8 21:24
回复 2 # songzy41 的帖子
请问一个问题,为什么你测量的时候,采600秒,这么长的数?是为了做FFT的时候提高频率分辨率吗?
对于这种桥梁信号,你这一次测量的结果,与下一次测量的结果,应该有很大的差别吧?(特别是幅值方面,因为桥梁上的车不一样)。如果差别很大的话,你这种测量的意义是否不大?你又是怎样解决的呢?
不知道我说得对不对?请指导。
bcyangbc
发表于 2011-6-9 23:33
本帖最后由 bcyangbc 于 2011-6-9 23:33 编辑
shajue 发表于 2011-6-8 21:24 http://www.chinavib.com/static/image/common/back.gif
回复 2 # songzy41 的帖子
请问一个问题,为什么你测量的时候,采600秒,这么长的数?是为了做FFT的时候提 ...
不好意思,因现在未做这个方面了,很久没有登陆论坛!
你说的很对,取这么长的数据就是为了提高频率分辨率!若再去测量一次,由于荷载或外界条件不同,可能幅值会有所不同,但对于成桥,频率不会改变。
而且,对于桥梁结构来说,我们更关心频率,不是吗?
不知道我说得对不对?
bcyangbc
发表于 2011-6-9 23:35
回复 14 # lianlian123 的帖子
用采样率为5Hz的GPS接收机测的,不存在问题,这方面有很多研究。
bcyangbc
发表于 2011-6-9 23:36
回复 10 # MinnieLMickey 的帖子
程序已共享,不知是否看到?
bcyangbc
发表于 2011-6-9 23:43
wildcranehust 发表于 2011-3-13 17:55 static/image/common/back.gif
回复 35 # bcyangbc 的帖子
lz你好,哪个rawy.dat文件该用什么软件打开才能看见里面的数据结构那,我下载完 ...
rawy.dat是Matlab的数据文件,在matlab中直接load即可?
您没看代码?
lg12170226
发表于 2011-6-14 14:35
请问楼主我也是对物体振动测量 我滤波后做fft频谱图有不止一个峰值输入是单正弦信号,是不是我滤波有问题询问一下Vondrak滤波法谢谢
comoma2011
发表于 2011-6-14 20:37
谢谢lz,对于一般的实测信号(必然包括噪声),都需要滤波处理么?
redplum
发表于 2011-6-15 10:16
由于没有原程序啊
rwwttt
发表于 2011-7-18 09:37
回复 1 # bcyangbc 的帖子
我觉得,关于实信号分析,相对来说还是中值滤波效果好一点,
sanmuhaifeng
发表于 2011-9-26 19:29
回复 1 # bcyangbc 的帖子
N=length(y);
fidelity=1/epsilon;
P=ones(1,N);
a=zeros(1,N-3);
b=zeros(1,N-3);
c=zeros(1,N-3);
d=zeros(1,N-3);
for i=1:N-3
a(i)=6*sqrt(t(i+2)-t(i+1))/((t(i)-t(i+1))*(t(i)-t(i+2))*(t(i)-t(i+3)));
b(i)=6*sqrt(t(i+2)-t(i+1))/((t(i+1)-t(i))*(t(i+1)-t(i+2))*(t(i+1)-t(i+3)));
c(i)=6*sqrt(t(i+2)-t(i+1))/((t(i+2)-t(i+1))*(t(i+2)-t(i))*(t(i+2)-t(i+3)));
d(i)=6*sqrt(t(i+2)-t(i+1))/((t(i+3)-t(i+1))*(t(i+3)-t(i+2))*(t(i+3)-t(i)));
end
S=0;
for i=1:N-3
S=S+(a(i)*y(i)+b(i)*y(i+1)+c(i)*y(i+2)+d(i)*y(i+3))^2;
end
% a
% b
% c
% d
AM=zeros(N,N);
for i=1:1:N
for j=-3:1:3
if (j+i<=0 || j+i>=N+1)
%AM(i,j+i)=0;
continue;
end
switch j
case -3
if i-3<=0 || i-3>=N-2
ai3=0;
di3=0;
else
ai3=a(i-3);
di3=d(i-3);
end
AM(i,i+j)=ai3*di3;
case -2
if i-2<=0 || i-2>=N-2
ai2=0;
ci2=0;
else
ai2=a(i-2);
ci2=c(i-2);
end
if i-3<=0 || i-3>=N-2
bi3=0;
di3=0;
else
bi3=b(i-3);
di3=d(i-3);
end
AM(i,i+j)=ai2*ci2+bi3*di3;
case -1
if i-1<=0 || i-1>=N-2
ai1=0;
bi1=0;
else
ai1=a(i-1);
bi1=b(i-1);
end
if i-2<=0 || i-2>=N-2
bi2=0;
ci2=0;
else
bi2=b(i-2);
ci2=c(i-2);
end
if i-3<=0 || i-3>=N-2
ci3=0;
di3=0;
else
ci3=c(i-3);
di3=d(i-3);
end
AM(i,i+j)=ai1*bi1+bi2*ci2+ci3*di3;
case 0
if i-3<=0 || i-3>=N-2
di3=0;
else
di3=d(i-3);
end
if i-2<=0 || i-2>=N-2
ci2=0;
else
ci2=c(i-2);
end
if i-1<=0 || i-1>=N-2
bi1=0;
else
bi1=b(i-1);
end
if i>=N-2
ai=0;
else
ai=a(i);
end
AM(i,i+j)=ai^2+bi1^2+ci2^2+di3^2+epsilon*P(i)/(N-3);
case 1
if i-2<=0 || i-2>=N-2
ci2=0;
di2=0;
else
ci2=c(i-2);
di2=d(i-2);
end
if i-1<=0 || i-1>=N-2
bi1=0;
ci1=0;
else
bi1=b(i-1);
ci1=c(i-1);
end
if i>=N-2
ai=0;
bi=0;
else
ai=a(i);
bi=b(i);
end
AM(i,i+j)=ai*bi+bi1*ci1+ci2*di2;
case 2
if i-1<=0 || i-1>=N-2
bi1=0;
di1=0;
else
bi1=b(i-1);
di1=d(i-1);
end
if i>=N-2
ai=0;
ci=0;
else
ai=a(i);
ci=c(i);
end
AM(i,i+j)=ai*ci+bi1*di1;
case 3
if i>=N-2
ai=0;
di=0;
else
ai=a(i);
di=d(i);
end
AM(i,i+j)=ai*di;
end
end
end
AM=inv(sparse(AM));
By=zeros(1,N);
B=epsilon*P/(N-3);
for i=1:N
By(i)=B(i)*y(i);
end
By=By';
fy=AM*By;
t_o=t;
y_o=fy;
figure(1);
subplot(211);
plot(t,yy,'b-');hold on;
plot(t_o,y_o,'r-','linewidth',2);
legend('原始数据','滤波结果','orientation','horizontal');
subplot(212);
plot(t,y_o-yy);
subplot(211);title('滤波');ylabel('位移(m)');
subplot(212);title('滤波残差');xlabel('时间(s)');ylabel('位移(m)');你好请问一下,你在滤波去噪平滑的过程中,最长那段for语句 主要做了一个什么工作啊?太长了,不是很好理解
sanmuhaifeng
发表于 2011-10-8 09:38
回复 1 # bcyangbc 的帖子
谢谢大神,本人是初学者,还有个问题想请教您,就是vondrak 滤波法在滤波时候在信号的截断频带上有较好的分辨率,用着这边做信号的平滑处理好处体现在哪里咧? 会不会把高频的有用信号滤掉?另外有个问题我在考虑,在实际信号处理的过程中,到底是先去直流分量,趋势项后再滤波,还是先滤波再去直流分量?
zhaowei_huang
发表于 2011-10-20 19:48
支持一下 刚踏入这一行业
manguoyong
发表于 2011-11-5 17:32
这个案例很好,学到了不少东西
manguoyong
发表于 2011-11-5 17:35
很好,但是有点问题
页:
1
2
3
4
[5]
6
7
8
9
10
11
12
13
14