甜心宝贝 发表于 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
查看完整版本: 对一实测信号的处理,希望大家参与讨论