📄 mallatdrdb4.m
字号:
%dec
[hh,gg,h,g]=wfilters('db4');
level=1;
%为防止原信号发生变化,将其赋给另一变量x进行运算;
x=sig;
%i表示分解级数,n表示信号序号
for i=1:1:level
for n=1:1:length(x)/2
if((2*n+8)>length(x))
x=wextend('1d','per',x,8,'r'); %数据延拓
end
ca(n,i)=[x(2*n+1),x(2*n+2),x(2*n+3),x(2*n+4),x(2*n+5),x(2*n+6),x(2*n+7),x(2*n+8)]*[h(1),h(2),h(3),h(4),h(5),h(6),h(7),h(8)]';
cd(n,i)=[x(2*n+1),x(2*n+2),x(2*n+3),x(2*n+4),x(2*n+5),x(2*n+6),x(2*n+7),x(2*n+8)]*[g(1),g(2),g(3),g(4),g(5),g(6),g(7),g(8)]';
end
x=ca(:,i);
end
%rec
lca=length(ca);
lcd=length(cd);
x=zeros(2*lca,1);
y=zeros(2*lcd,1);
x(2:2:2*lca)=ca(1:lca);
y(2:2:2*lcd)=cd(1:lcd);
for n=1:length(x)
if(n<9)
x1=wextend('1d','per',x,9-n,'l');xx(n,:)=x1(1:100);
y1=wextend('1d','per',y,9-n,'l');yy(n,:)=y1(1:100);
xrec(n)=[xx(n,1),xx(n,2),xx(n,3),xx(n,4),xx(n,5),xx(n,6),xx(n,7),xx(n,8)]*[h(8),h(7),h(6),h(5),h(4),h(3),h(2),h(1)]'+[yy(n,1),yy(n,2),yy(n,3),yy(n,4),yy(n,5),yy(n,6),yy(n,7),yy(n,8)]*[g(8),g(7),g(6),g(5),g(4),g(3),g(2),g(1)]';
else
xrec(n)=[x(n-8),x(n-7),x(n-6),x(n-5),x(n-4),x(n-3),x(n-2),x(n-1)]*[h(8),h(7),h(6),h(5),h(4),h(3),h(2),h(1)]'+[y(n-8),y(n-7),y(n-6),y(n-5),y(n-4),y(n-3),y(n-2),y(n-1)]*[g(8),g(7),g(6),g(5),g(4),g(3),g(2),g(1)]';
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -