我要加入 登录
声振论坛 返回首页

impulse的个人空间 http://home.vibunion.com/?41382 [收藏] [复制] [分享] [RSS]

日志

变转速振动信号与转速信号模拟

已有 724 次阅读2011-10-9 16:29

前些天做计算阶比跟踪算法时,由于采用实际信号无法对算法结果进行有效的验证,因此建立了模拟信号,可以对自己的算法以及其他公司的算法进行比较分析。
模拟信号matlab代码如下:
%模拟产生变转速振动信号和键相信号
clc;
clear;
Ls=1024*64;   %样本数
fs=20000;     %采样频率
t0 =0:1/fs:(Ls-1)/fs;
f0=10;    %起始频率
f1=50;    %终止频率
x_1x = 1*chirp(t0,f0,1,f1,[],280);  %一倍频信号
x_5x = 0.65*chirp(t0,f0,1,0.5*f1);  %0.5倍频信号
x_2x = 0.75*chirp(t0,f0,1,2*f1);    %2倍频信号
x_noise=0.15*rand(1,length(x_1x));  %噪声
x=x_1x+x_2x+x_5x;%+x_noise;         %合成信号

[maxtab, mintab] = peakdet(x_1x, 0.5);  %通过基频信号(相当于转轴信号)检波,模拟后面的键相信号
t=maxtab(:,1)';
tacho=zeros(1,Ls);
tacho(t)=1;                             %模拟键相信号,假定1为键相脉冲位置
%tacho(t+1)=1;
subplot(211)
plot(t0,x);
title('振动信号')
subplot(212)
plot(t0,tacho)
title('转速(键相)信号')
fid = fopen('signal_x.txt', 'wt');
fid1 = fopen('signal_tacho.txt', 'wt');
for i=1:Ls
        fprintf(fid, '%.9f\n',x(i));
        fprintf(fid1, '%.9f\n', tacho(i));
end
fclose(fid);
fclose(fid1);
...
%下面的代码用于对振动信号重采样以及阶比跟踪算法进行验证
t1=....       %经过转速脉冲插值得到的等角域信号时间点
x_1x0 = 1*chirp(t1,f0,1,f1,[],280);
x_5x0 = 0.65*chirp(t1,f0,1,0.5*f1);
x_2x0 = 0.75*chirp(t1,f0,1,2*f1);
x_evenangle=x_1x0+x_2x0+x_5x0;                  %等角域信号真实值
模拟信号见下图:

应用这一模拟信号,对采用不同插值算法得到的角域重采样信号进行对比,结果为:
算法                                          误差
LabView使用的插值滤波器         0.017
线性插值                                   0.0352
Sinc插值滤波器                         0.0868(35个过零点、每两个零点间2049个样本)
样条插值                                   3.5973e-006
Lagrange插值                            4.3125e-008
上述重采样结果见下图:

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 我要加入

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-13 14:02 , Processed in 0.033556 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部