查看: 233|回复: 0|关注: 0

[未答复] 小波变化在不调用工具箱函数情况下怎么编它的算法

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
 楼主| 发表于 2020-5-28 19:22:10 | 显示全部楼层 |阅读模式
close all;
clear all;
clc;
%采样频率   
fs=12000;
%采样间隔
Ts=1/fs;
%采样点数
N=10000;n=1/N;
%轴承信号
load C:\Users\Administrator\Desktop\300.mat;%故障
xdata=X300_FE_time(1:10000);
% xdata=BF(1:10000);
xdata=(xdata-mean(xdata))/std(xdata,1);
%信号时域波形
figure(1);
plot(1:N,xdata);
xlabel('时间 t/n');
ylabel('电压 V/v');
%使用db10小波进行尺度为5时的分解
[c,l]=wavedec(xdata,5,'db10');
%从小波分解结构[c,l]重构信号xdata
a0=waverec(c,l,'db10');

figure(2);
subplot(3,1,1);
plot(xdata);
title('原始信号')
subplot(3,1,2);
plot(a0);
title('重构信号')
subplot(3,1,3);
plot(xdata-a0);
title('误差信号')
err=max(abs(xdata-a0))

%重构第1~5层高频细节信号
d5=wrcoef('d',c,l,'db10',5);
d4=wrcoef('d',c,l,'db10',4);
d3=wrcoef('d',c,l,'db10',3);
d2=wrcoef('d',c,l,'db10',2);
d1=wrcoef('d',c,l,'db10',1);

%显示高频细节信号
figure(3);
subplot(5,1,1);
plot(d5,'LineWidth',2);
ylabel('d5');
subplot(5,1,2);
plot(d4,'LineWidth',2);
ylabel('d4');
subplot(5,1,3);
plot(d3,'LineWidth',2);
ylabel('d3');
subplot(5,1,4);
plot(d2,'LineWidth',2);
ylabel('d2');
subplot(5,1,5);
plot(d1,'LineWidth',2);
ylabel('d1');
xlabel('时间 t/s');

%第1层高频细节信号的包络谱
y=hilbert(d1);
ydata=abs(y);
y=y-mean(y);
nfft=1024;
p=abs(fft(ydata,nfft));
figure(4);
plot((0:nfft/2-1)/nfft*fs,2*p(1:nfft/2));
xlabel('频率 f/Hz');
ylabel('功率谱 P/W');

回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表