李清志 发表于 2012-3-29 20:06

大家看看这段小波怎么了?

写了个程序如下
load('IR014_1.mat','y')
N=1200;
n=0:1199;
f0=120;
fs=12000;
f=linspace(-fs/2,fs/2,N);
for i=1:1200
x(i)=y(2*i);
end
figure;
plot(n,x);xlim();xlabel('点数');ylabel('幅值');title('原信号');grid off;
X=fft(x,N);
Y=fftshift(X);
figure;
plot(n,X);xlim();xlabel('点数');ylabel('幅值');title('原信号FFT变换');grid off;
figure;
plot(f,abs(Y));xlim();xlabel('频率/fz');ylabel('幅值');title('原信号FFT谱');grid off;
=wavedec(x,4,'db2');
sigma=wnoisest(c,l,1);
alpha=5;
thr=wbmpen(c,l,sigma,alpha);
keepapp=0;
xd=wdencmp('gbl',x,'db2',4,thr,'s',keepapp);
=wavedec(x,3,'db2');
xd1=wrcoef('a',c,l,'db2',3);
figure;
plot(n,xd1);xlim();xlabel('点数');ylabel('幅值');title('小波变换输出');grid off;
X1=fft(xd1,N);
Y1=fftshift(X1);
figure;
plot(n,X1);xlim();xlabel('点数');ylabel('幅值');title('小波变换后信号FFT变换');grid off;
figure;
plot(f,abs(Y1));xlim();xlabel('频率/fz');ylabel('幅值');title('小波变换后信号的FFT谱');grid off;
小波变换后的波形和变换后的FFT谱如下

在中间就加入带通滤波器后的程序如下,
load('IR014_1.mat','y')
N=1200;
n=0:1199;
f0=120;
fs=12000;
f=linspace(-fs/2,fs/2,N);
for i=1:1200
x(i)=y(2*i);
end
figure;
plot(n,x);xlim();xlabel('点数');ylabel('幅值');title('原信号');grid off;
X=fft(x,N);
Y=fftshift(X);
figure;
plot(n,X);xlim();xlabel('点数');ylabel('幅值');title('原信号FFT变换');grid off;
figure;
plot(f,abs(Y));xlim();xlabel('频率/fz');ylabel('幅值');title('原信号FFT谱');grid off;
wp0=0.0005*pi;wp1=0.004*pi;wp2=0.006*pi;
Ap=5;ws2=0.07*pi; As=15;T=2; %数字带通滤波器技术指标
ws1=wp0-(ws2-wp0);         %计算带通滤波器的阻带下截止频率
wc1=(2/T)*tan(wp1/2);wc2=(2/T)*tan(wp2/2);
wr1=(2/T)*tan(ws1/2);wr2=(2/T)*tan(ws2/2);
w1=(2/T)*tan(wp0/2);         %频率预畸变
B2=wc2-wc1;                  %带通滤波器的通带宽度
normwr1=(((wr1^2)-(w1^2))/(B2*wr1));
normwr2=(((wr2^2)-(w1^2))/(B2*wr2));
normwc1=(((wc1^2)-(w1^2))/(B2*wc1));
normwc2=(((wc2^2)-(w1^2))/(B2*wc2)); %带通到低通的频率变换
if abs(normwr1)>abs(normwr2)
normwr=abs(normwr2);
else normwr=abs(normwr1);
end
normwc=1;                           %将指标转换成归一化模拟低通滤波器的指标
N=buttord(normwc,normwr,Ap,As,'s'); %设计归一化的模拟低通滤波器阶数N和3db截止频率
=butter(N,normwc,'s');   %计算相应的模拟滤波器系统函数G(p)
=lp2bp(bLP,aLP,w1,B2);   %模拟域频率变换,将G(P)变换成模拟带通滤波器H(s)
=bilinear(bBP,aBP,0.5);      %用双线性变换法将H(s)转换成数字带通滤波器H(z)
w=linspace (0,2*pi,500);
h=freqz(b,a,x);
z=filter(b,a,x);
=wavedec(z,4,'db2');
sigma=wnoisest(c,l,1);
alpha=5;
thr=wbmpen(c,l,sigma,alpha);
keepapp=0;
xd=wdencmp('gbl',z,'db2',4,thr,'s',keepapp);
=wavedec(z,3,'db2');
xd1=wrcoef('a',c,l,'db2',3);
figure;
plot(n,xd1);xlim();xlabel('点数');ylabel('幅值');title('小波变换输出');grid off;
X1=fft(xd1,N);
Y1=fftshift(X1);
figure;
plot(n,X1);xlim();xlabel('点数');ylabel('幅值');title('小波变换后信号FFT变换');grid off;
figure;
plot(f,abs(Y1));xlim();xlabel('频率/fz');ylabel('幅值');title('小波变换后信号的FFT谱');grid off;
波形如下


这是怎么回事啊?还有中间的带通滤波器是否正确啊?小波变换有输出,它的FFT核FFT为什么都是0啊?小波变换
=wavedec(z,4,'db2');
sigma=wnoisest(c,l,1);
alpha=5;
thr=wbmpen(c,l,sigma,alpha);
keepapp=0;
xd=wdencmp('gbl',z,'db2',4,thr,'s',keepapp);
=wavedec(z,3,'db2');
xd1=wrcoef('a',c,l,'db2',3);

=wavedec(z,3,'db2');
xd1=wrcoef('a',c,l,'db2',3);
的输出有什么区别啊?我对于信号处理不是太懂,请大家帮助啊。

李清志 发表于 2012-11-18 09:19

疯狂奔跑 发表于 2012-11-17 14:16 static/image/common/back.gif
绝对是硬件上的问题!很有可能就是传感器的线接触不良!或者就是传感器没放好!!建议多侧几次对比看下!!

哦,谢谢啊!

疯狂奔跑 发表于 2012-11-17 14:16

绝对是硬件上的问题!很有可能就是传感器的线接触不良!或者就是传感器没放好!!建议多侧几次对比看下!!

mingmingtree 发表于 2012-4-11 09:03

回复 5 # 李清志 的帖子

我的问题,lz木有回答。((em:13))

李清志 发表于 2012-4-10 12:24

回复 6 # mingmingtree 的帖子

故障检测,用分解后的信号的频谱图来查看是否有故障。

mingmingtree 发表于 2012-4-9 21:32

回复 5 # 李清志 的帖子

lz的课题方向,硬件方面,比如是用什么来检测故障信号的呢?传感器?

李清志 发表于 2012-4-9 18:46

回复 4 # mingmingtree 的帖子

故障诊断。

mingmingtree 发表于 2012-4-9 10:58

输出了n个图,我的全部是零,连小波输出都是直线零。
LZ你用这段程序做啥子的哟?
还不会是频率没变化??
我也不太懂~~

王超群 发表于 2012-4-1 09:48

高手上来啊

王超群 发表于 2012-4-1 09:48

好像看不懂
页: [1]
查看完整版本: 大家看看这段小波怎么了?