рд╕рд░рд▓ рдореВрд╡рд┐рдВрдЧ рдФрд╕рдд рдПрд▓реНрдЧреЛрд░рд┐рдердо

C ++ рдореЗрдВ рдПрдХ рдЪрд▓рддреА рдФрд╕рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдХрд╛рд░реНрдп рдерд╛, рдЬреЛ рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдФрд░ рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЫрд╡рд┐
рдЖрдзрд╛рд░ MATLAB рдореЗрдВ рд╕реБрдЪрд╛рд░реВ рдХрд╛рд░реНрдп рдерд╛ред
рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрдХреЗрддреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рдФрд░ рдПрдХ рдФрд╕рдд рд╡рд┐рдВрдбреЛ рдХреЛ рдЗрдирдкреБрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ, рдореИрдВ рдХрдЯреМрддреА рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реВрдВ


рддреЛ, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рд╕рдмрд╕реЗ рд╕рд░рд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
рдорд╛рди рд▓реЗрдВ рдХрд┐ рдФрд╕рдд рд╡рд┐рдВрдбреЛ рдХрд╛ рдЖрдХрд╛рд░ 5 рд╣реИ, рддреЛ рд╡рд░реНрддрдорд╛рди рдореВрд▓реНрдп рдХреЗ рдФрд╕рдд рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рдкрд░, рдкрд┐рдЫрд▓реЗ 4 рдХреЛ рдЬреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ 5 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣рд╛рдБ рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╣реИ, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рд╕рдВрдЪрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдФрд╕рдд рд╡рд┐рдВрдбреЛ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИред

MATLAB рдореЗрдВ, рдЪрд▓рддреА рдФрд╕рдд рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЪрд┐рдХрдиреА рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЙрджрд╛рд╣рд░рдг рдЪрд┐рдХрдиреА (рдЗрдирдкреБрдЯ, рд╡рд┐рдВрдбреЛ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░,
рдЬрд╣рд╛рдВ рдЗрдирдкреБрдЯ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреА рдПрдХ рд╕рд░рдгреА рд╣реИ
рдЦрд┐рдбрд╝рдХреА - рдФрд╕рдд рдЦрд┐рдбрд╝рдХреАред
рд╡рд┐рдВрдбреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдХрд░, рдЖрдк рдбреЗрдЯрд╛ рд╕реНрдореВрдерд┐рдВрдЧ рдХреА рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдбрд┐рдЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЫрд╡рд┐

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрд░реЛрдд рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
clear all; %%  t=1;%   Fd=512;%   () A1=1;%   F1=10;%   () SNR=0.3;%  / T=0:1/Fd:t;%   Noise=A1*SNR*randn(1,length(T));%  Signal=A1*sind((F1*360).*T);%  SN=Signal+Noise; figure(1); subplot(4,1,1); plot(SN); subplot(4,1,2); plot(smooth(SN,3)); subplot(4,1,3); plot(smooth(SN,8)); subplot(4,1,4); plot(smooth(SN,20)); 


рд╕рд┐рдЧреНрдирд▓ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЗрдВ рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдХреНрд╖рддрд┐рдкреВрд░реНрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, MATLAB рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдпреЛрдЧреНрдп рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ; рд╡рд┐рдзрд┐ рдХрд╛ рд╕рд╛рд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рджреНрд╡рд╛рд░рд╛ рдЪрд┐рддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЫрд╡рд┐

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ MATLAB рдореЗрдВ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХрд╛ рдЕрдкрдирд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд▓рд┐рдЦрд╛ рдерд╛, рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ C ++ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛

MATLAB рд╕рдВрд╕реНрдХрд░рдг:

 %my_smooth % ,    ,    1  ; window = 5; if(mod(window,2)==0) window=window+1; end hw=(window-1)/2; %        n=length(Signal); result=zeros(n,1); result(1)=SN(1); %      SN   for i=2:n %     init_sum = 0; if(i<=hw) %    ,     , %     k1=1; %       k2=2*i-1; %  z=k2; %   elseif (i+hw>n) % +   n -         %   k1=i-n+i; %  k2=n; %  -    z=k2-k1; %  else %     ,     k1=i-hw; k2=i+hw; z=window; end for j=k1:k2 %       init_sum=init_sum+SN(j); %   end result(i)=init_sum/(z); %      end 


рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рд╖рдо рдЦрд┐рдбрд╝рдХреА рдХреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдордЯреИрд▓рдм рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рд╕реЗ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╣реИ (рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ рдордЯрд▓рдм рдХреЛ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдорд╛рдирддреА рд╣реИрдВ)
рд╕реНрд░реЛрдд m-file рдХреЛ рдпрд╣рд╛рдВ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдг

 void smooth(double *input, double *output, int n, int window) { int i,j,z,k1,k2,hw; double tmp; if(fmod(window,2)==0) window++; hw=(window-1)/2; output[0]=input[0]; for (i=1;i<n;i++){ tmp=0; if(i<hw){ k1=0; k2=2*i; z=k2+1; } else if((i+hw)>(n-1)){ k1=i-n+i+1; k2=n-1; z=k2-k1+1; } else{ k1=i-hw; k2=i+hw; z=window; } for (j=k1;j<=k2;j++){ tmp=tmp+input[j]; } output[i]=tmp/z; } 


рдЖрдкрдХреЗ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд░рдЪрдирд╛рддреНрдордХ рдЖрд▓реЛрдЪрдирд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ
рдкреБрдирд╢реНрдЪ:
рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХреЛ рдмрджрд▓рдХрд░ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
рдЫрд╡рд┐
рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ 4 рд╡реЗрдВ рдЪрд░рдг рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд░рд╛рд╢рд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рддреАрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ рдпреЛрдЧ рд╕реЗ рд╕рд░рдгреА рдХреЗ 1 рддрддреНрд╡ (2, рд▓рд╛рд▓ рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд) рдХреЛ рдШрдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ 6 рд╡реЗрдВ рддрддреНрд╡ (8, рдкреАрд▓рд╛ рд╕реЗрд▓) рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред
рдЕрдЧрд▓реЗ рдЪрд░рдг рдореЗрдВ, рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдХ рдмрдбрд╝реА рдФрд╕рдд рдЦрд┐рдбрд╝рдХреА рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рд╣реЛрдЧрд╛ред

Source: https://habr.com/ru/post/In134375/


All Articles