📄 fractalfilter.txt
字号:
% Fractal filter based on fuzzy automatic control
% 基于模糊自动控制的分形滤波
% designed by Cai Rongrong,school of Mechancial and Engineering,Wuhan University
function FractalFilter1(t,y,k)
N=length(y);
M=floor(N/128);
sample_time=0.3
% caculate the fractal parameter
% 短时分形维数的计算
for k=1:M
d_delta(k)=0;
for i=(128*(k-1)+2):128*k
d_delta(k)=d_delta(k)+abs(y(i)-y(i-1));
end
d_2delta(k)=0;
for i=64*(k-1)+1:64*k
d_2delta(k)=d_2delta(k)+(max([y(2*i-1) y(2*i) y(2*i+1)])-min([y(2*i-1) y(2*i) y(2*i+1)]));
end
end
for k=1:M
N_delta(k)=d_delta(k)/sample_time;
N_2delta(k)=d_2delta(k)/2/sample_time;
dd(k)=(log(N_delta(k))-log(N_2delta(k)))/log(2); %If dd is more trend to 1, the noise is more small.
% alpha(k)=(2-dd(k))^2
% alpha(k)=dd(k)*(2-dd(k))
% alpha(k)=2-2^(dd(k)-1)
% alpha(k)=(2-dd(k))
alpha(k)=0.1;
end
% filter
% 滤波
y0=y(1);
y_filter=zeros(N,1);
for k=1:M
for i=(128*(k-1)+1):128*k
y_filter(i)=alpha(k)*y(i)+(1-alpha(k))*y0;
y0=y_filter(i);
end
end
figure(k)
plot(t,y,'b',t,y_filter,'g-',t)
figure(k+1)
subplot(211)
plot(t,y,'b')
subplot(212)
plot(t,y_filter,'g-')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -