原程序中“%消除指定负频带外的频率成分
a(nfft-na+1:nfft-ni+1)=y(nfft-na+1:nfft-ni+1);”
应为a(nfft-na+2:nfft-ni+2)=y(nfft-na+2:nfft-ni+2),原因是为了使ifft后的数值为实数,则a应该为共轭对称,与a(2)对称的为a(nfft),同理,与a(na)共轭对称的应为a(nfft-na+2) 回复 9 # songzy41 的帖子
频域积分 取虚部 乘以1/jw 因子 此处w是指信号中心频率吗?此外, 在程序中没有明白具体哪一处是表示乘以1/jw 因子。由于在学习,会有一些疑问,望不惜赐教 回复 11 # zzw1983107 的帖子
请问这个问题你懂了吗我也求解 回复 13 # zhaoch 的帖子
请问该问题你解决了吗 同求解 回复 2 # VibrationMaster 的帖子
您好 我最近也在调试这个程序出现几个问题很是不解:
1、对于2次微分或积分后的波形中间基本符合要求,但首尾都有些失真,如位移2次微分成加速度信号波形,这个是什么原因,该做何处理
2、微分或积分程序的开始都有最小截止频率和最大截止频率 这个该怎么设置
3、对于微分程序,我把微分次数设为2时可以运行,显示波形,但设为1了,就显示
??? Subscript indices must either be real positive integers or logicals
这个很是不解
这些问题凭我微薄的学识不能弄明白,愿有时间了能赐教,谢谢您!
{:{23}:}{:{23}:}{:{23}:}
RE: 帮忙调试一个振动信号频域积分的程序!
新手,最近在做铁路路基振动检测这一块,想补这方面的知识,各位大侠推荐几本教程看看!谢谢{:{19}:} 十分有用,值得学习。补充内容 (2012-11-25 18:18):
针对chengying8427 提出的问题可以通过以下方法解决:
%进行一次微分的相位变换
v21=-imag(v1);
v22=real(v1);
v2=v21+v22*i;
补充内容 (2012-11-25 18:19):
解决方法针对问题3:一次微分程序报错 真的是好贴啊! 本帖最后由 牛小贱 于 2014-3-28 10:11 编辑
songzy41 发表于 2007-7-26 18:55 static/image/common/back.gif
我实际上在本帖分析中和http://www.chinavib.com/forum/thread-48861-1-1.html帖子的分析中都发现在频域积 ...
我用一个三角函数信号来学习这个程序。
t=(0:0.001:31.416);
dis=sin(10*pi*t);
vel=10*pi*cos(10*pi*t);
acc=-100*pi*pi*sin(10*pi*t);
用acc一次积分求到的v与vel比较,一次积分求到的d与dis比较。已经在程序中进行了滤波,但是结果还是不是很好。不知道是什么原因。求助如何解决。
fni=acc;
i=(-1)^0.5;
sf=1000;
fmin=0.5;
fmax=20;
c=1;
it=1;
x=fni';
n=length(x);
t=0:1/sf:(n-1)/sf;
nfft=2^nextpow2(n);
y=fft(x,nfft);
df=sf/nfft;
ni=round(fmin/df+1);
na=round(fmax/df+1);
dw=2*pi*df;
w1=0:dw:2*pi*0.5*sf;
w2=-2*pi*(0.5*sf-df):dw:-dw;
w=;
w=w.^it;
a=zeros(1,nfft);
a(2:nfft-1) =y(2:nfft-1)./w(2:nfft-1);
if it == 2
y=-a;
else
a1=imag(a); a2=real(a); y=a1-a2*i;
end
a=zeros(1,nfft);
a(ni:na)=y(ni:na);
a(nfft-na+2:nfft-ni+2)=y(nfft-na+2:nfft-ni+2);
y=ifft(a,nfft);
y=real(y(1:n))*c;
v=y;
plot(t,vel,t,v);尤其是当把it改成2之后计算的位移信号,很是有问题。
见到 songzy41 教授关于王济频域积分代码错误的讲解,受益匪浅,谢谢! linyinxiaojing 发表于 2013-1-18 17:31 static/image/common/back.gif
我用一个三角函数信号来学习这个程序。
t=(0:0.001:31.416)
dis=sin(10*pi*t);
我的也是这样,好像fmin=0.5;%最小截止频率 fmax=80; %最大截止频率对结果影响很大,特别是fmin设置不同的值时,结果变化很大,不知道你解决了没/