Matlab 振动加速度 对应的振动频率,由振动加速度进行频域二次积分求振动位移...

【实例简介】

通过频域二次积分由振动加速度信号反求振动位移信号

【实例截图】

7704e19a0a2ffe8d9cdcc14046528c0f.png

【核心代码】

nfft = 2^nextpow2(n); %大于并最接近n 的2 的幂次方为FFT长度

y = fft(x,nfft); %FFT变换

df = fs/nfft; %计算频率间隔( Hz/s)

%计算指定频带对应频率数组的下标

ni = round(fmin/df 1);

na = round(fmax/df 1);

dw = 2*pi*df;%计算圆频率间隔( rad/s )

w1 = 0:dw:2*pi*(0.5*fs-df);%建立正的离散圆频率向量

w2 = -2*pi*(0.5*fs-df):dw:-dw;%建立负的离散圆频率向量

w = [w1,w2];%将正负圆频率向量组合成一个向量

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

y = imag(a)-i*real(a); %进行一次积分的相位变换

end

a = zeros(1,na);

a(ni:na) = y(ni:na);%消除指定正频带外的频率成分

a(nfft-na 1:nfft-ni 1) = y(nfft-na 1:nfft-ni 1);%消除指定负频带外的频率成分

y = ifft(a,nfft); %IFFT 变换

y = real(y(1:n))*c;%取逆变换的实部n 个元素并乘以单位变换系数为积分结果

  • 1
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值