24СʱÈÈÃŰæ¿éÅÅÐаñ    

²é¿´: 753  |  »Ø¸´: 0

172547204

Ìú³æ (³õÈëÎÄ̳)

[ÇóÖú] Ëã·¨´íÎó£¬ÇóÔ­ÒòºÍ½â¾ö°ì·¨

Sample Text£º??? Attempted to access Amp(2); index out of bounds because numel(Amp)=1.

Error in ==> x_svdprony at 263
             xn(i)=xn(i)+Amp(2)*exp(damp(2)*(i-1)*dt)*cos(2*pi*Fre(2)*(i-1)*dt+bth(2));


Sample Text
%´ò¿ªÖ¸¶¨Îļþ£¬²¢¶ÔÐźŽøÐÐPon·ÖÎö¼ÆËã
function [M, Amp, Fre, damp, Pha, main_f, main_damp, x, xc, y, Amp_Response, er, all, N, dt]=x_svdprony(x_in, dt, fL, showfigure)
    format long;
    x_in=[32.32
29.29
27.56
25.95
24.44
23.02
21.68
20.41
19.23
18.11
17.05
16.06
15.12
14.24
13.41
12.63
11.89
11.2
10.55
9.93
9.36
8.81
8.3
7.81
7.36
6.93
6.53
6.15
5.79
5.45
5.13
4.83
4.55
4.29
4.04
3.8
3.58
3.37
3.17
2.99
2.81
2.65
2.5
2.35
2.21
2.08
1.96
1.85
1.74
1.64
1.54
1.45
1.37
1.29
1.21
1.14
1.07
1.01
0.95
0.9
0.84
0.79
0.75


];
    x = x_in;
    cpu=cputime;
        N=size(x,1);%·µ»ØµÄÊÇÊý×éµÄÐÐÊýÒ²¾ÍÊÇÓжàÉÙ¸öÊäÈëÊý¾Ý
        %È¡N/2µÄÕûÊý²¿·ÖΪ³õʼµÄP
        P=floor(N/2);%ËÄÉáÎåÈëÈ¡ÕûÊý
   
        %È¥Ö±Á÷»·½Ú
        x_Sum = 0;
        for i=N-5:N
            x_Sum = x_Sum + x(i);
        end
        x_av = x_Sum / N;
    if x_av > 10E-10
            for i=1:N
                x(i) = x(i) - x_av;
            end
    end
        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

        %Â˲¨»·½Ú
        %fL=1;
    fL=2;
        if fL>1
            for i=fL+1:N
                x(i-fL)=0;
                for j=1:fL
                    x(i-fL) = x(i-fL)+(1/fL)*x(i-j+1);
                end
            end
        end
        N=N-fL;
        tt=0:1:N-1;
       
        %PÒªÇóΪżÊý
        if mod(P, 2) ~= 0
           P = P - 1;
        end
       
        P1=P;
        if mod(P, 2) == 0
           % Generate R£¬Éú³ÉÑù±¾¾ØÕó
           for i=11
                  for j=11+1
                      ss=0;
                      for k=P1:N-1
                        %ǰÏòÔ¤²âÎó²î
                        ss=ss+x(k+2-j,1)*x(k+1-i,1);
                        %ºóÏòÔ¤²âÎó²î
                        %ss=ss+x(k+1-P1+i)*x(k+1-P1-1+j);
                        %ͬʱ¿¼ÂÇË«ÏòÎó²î
                        %ss=ss+x(k+2-j,1)*x(k+1-i,1)+x(k+1-P1+i)*x(k+1-P1-1+j);              
                      end   
                      R(i,j)=ss;
                  end
           end

              % divide R into R1 and R2, and get A; R1*A=R2;
           for i=1
              for j=1
                 R1(i,j)=R(i,j+1);
              end
           end
           for i=1
                   R2(i)=R(i,1);
           end
       
           %Ìí¼ÓµÄ´úÂ룬ʹÓÃSVD£­TLSËã·¨%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
           %Ê×ÏȽøÐÐSVD·Ö½â
           [u,s,v]=svd(R1);
           %¸ù¾ÝÆæÒìֵȷ¶¨Êµ¼ÊµÄ½×ÊýM
           M=0;
           %¼ÆËãÈ«²¿ÆæÒìÖµµÄ¾ù·½ºÍ
           Sum_SVD=0;
           for i=1
              Sum_SVD = Sum_SVD+s(i,i)^2;
           end
           cur_sum = 0;
           i=1;
           while 1 - sqrt(cur_sum/Sum_SVD) > 0.000001 & i<=P
              cur_sum = cur_sum + s(i,i)^2;
              M = M + 1;
              i = i + 1;
           end
           %Êä³öÔ¤²âµÄ½×ÊýM
           M;

           %Éú³ÉSp¾ØÕó
           Sp=zeros(M+1, M+1);
           for j=1:M
              for i=1P-1)-M+1
                 Sp = Sp+s(j,j)^2*v(i:i+M,j)*v(i:i+M,j)';
              end
           end
       
           %¸ù¾Ý¹«Ê½Éú³É×î¼Ñ×îС¶þ³Ë½â
       Sp_inv=inv(Sp);
       if isinf(Sp_inv(1,1)) == 1
           Sp_inv = pinv(Sp);
       end
      
           a_SVD = Sp_inv(1+1:M+1, 1)/Sp_inv(1,1);
           P = M;
           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
           % Get Zi
           cof_SVD(1)=1;
           for i=1:M
              cof_SVD(i+1)=a_SVD(i);
           end
           Z=roots(cof_SVD);
          
       % Get y,y should be very close to x
           for i=1
              y(i)=x(i);
           end
       
           for i=P+1:N
              y(i)=0;
           end
           for i=P+1:N
              for j=1
                 y(i)=y(i)-a_SVD(j)*x(i-j);
              end
           end
            
           % Get B
           for i=1:N
              for j=1
                 Fy(i,j)=Z(j)^(i-1);
               end
           end
           Fz=Fy';
           FH=Fy'*Fy;
           Fn=inv(FH);
           B = inv(Fy'*Fy)*Fy'*y';
       
           % Calculate Amplitude, Phasor, Frequency and damp
       dt=0.01;
           for i=1
              Amp(i)=abs(B(i));
              Pha(i)=atan(imag(B(i))/real(B(i)));
              Fre(i)=atan(imag(Z(i))/real(Z(i)))/(2*pi*dt);
              damp(i)=log(abs(Z(i)))/dt;
           end

       %µ÷ÊÔÓõĴúÂë
       if isnan(Amp(1)) == 1
           error('·ùÖµµÄÇó½â³öÏÖ´íÎó£¡');
       end
      
           % Get xc,verify if xc is nearly equal to x
           for i=1
                 if(real(B(i))>=0.0)
                     bth(i)=Pha(i);
                 else
                     bth(i)=pi+Pha(i);
                 end
           end
       %¶ÔPhaÖØÐ·ùÖµ
       for i=1
           if Pha(i) < 0
               Pha(i) = Pha(i) + 2*pi;
           end
       end
      
           for i=1:N
                 xc(i)=0.0;
                 for j=1
                     xc(i)=xc(i)+Amp(j)*exp(damp(j)*(i-1)*dt)*cos(2*pi*Fre(j)*(i-1)*dt+bth(j));
                 end
           end
%.........¡£¡£¡£×Ô¼º±àµÄ´úÂë¡£¡£¡£¡£¡£¡£¡£¡£
  xm(i)=0.0;
  for i=1:N
              xm(i)=xm(i)+Amp(1)*exp(damp(1)*(i-1)*dt)*cos(2*pi*Fre(1)*(i-1)*dt+bth(1));
  end
xn(i)=0.0;
  for i=1:N
             xn(i)=xn(i)+Amp(2)*exp(damp(2)*(i-1)*dt)*cos(2*pi*Fre(2)*(i-1)*dt+bth(2));
end
% xk(i)=0.0;
%for i=1:N
        %      xk(i)=xk(i)+Amp(3)*exp(damp(3)*(i-1)*dt)*cos(2*pi*Fre(3)*(i-1)*dt+bth(3));
%end
     figure;
  %   subplot(2,1,1);
             % plot(tt,x(1:N),'b', tt,y, 'r', tt,xc, '*b');
          %plot(tt,xm,'r', tt,xn, 'b',tt,xc,'g',tt,x(1:N), '*b',tt,xk,'m');
         plot(tt,xm,'r', tt,xn, 'b',tt,xc,'g',tt,x(1:N), '*b');%¶þ½×»­Í¼ÃüÁî
         %plot(tt,xc,'r',tt,x(1:N), '*b');
         ylabel('µçѹ£¨V£©');
         legend('ÄâºÏµÄµÚÒ»ÌõÖ¸Êý·ÖÁ¿','ÄâºÏµÄµÚ¶þÌõÖ¸Êý·ÖÁ¿','ÄâºÏÇúÏß','ʵ¼Ê²âÁ¿Öµ');
          % legend('ÄâºÏÇúÏß','ʵ¼Ê²âÁ¿Öµ');
%¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£×Ô¼º±àµÄ´úÂë¡£¡£¡£¡£¡£¡£¡£¡£
%       if showfigure == 1
%              %ÏÔÊ¾ÌØÕ÷¸ùµÄλÖÃ
%              figure;
%              plot(damp, 2*pi*Fre, 'r*');
%       end
      
           xj=xc';
           er=0;
           all = 0;
           for i=1:N         
                  er=er+(x(i)-xc(i))^2;
                  all = all+x(i)^2;
           end
           SNR=-20*log(sqrt(er/all));
          
           % Calculate Prony spectrum
           %ƵÆ×µÄȡֵ·¶Î§Îª0£­5Hz
           f=0:0.01:4.99;
           for j=1:size(f,2)
               sptr(j)=0;
               sptr1(j)=0;
               sptr2(j)=0;
               angl(j)=0;
               tmpangle = 0;
               for k=1
                  sptr1(j)=sptr1(j)+Amp(k)*cos(bth(k))*(2*damp(k)/(damp(k)^2+(2*pi*(f(j)-Fre(k)))^2));
                  sptr2(j)=sptr2(j)+Amp(k)*sin(bth(k))*(2*damp(k)/(damp(k)^2+(2*pi*(f(j)-Fre(k)))^2));
               end
               sptr(j)=sqrt(sptr1(j)^2+sptr2(j)^2);
               tmpangle = atan2(sptr1(j),sptr2(j));
               angl(j) = tmpangle*360/pi;
           end
       %¶Ô·ùƵÏìÓ¦½øÐйéÒ»»¯£¬²¢ÇÒѰÕÒÖ÷µ¼ÆµÂÊģʽ
       %ѰÕÒsptrµÄ×î´óÖµ
       max_sptr=0;
       main_f=0;
       for j=1:size(f,2)
           if sptr(j) > max_sptr
               max_sptr = sptr(j);
               %Ö÷µ¼ÆµÂʳöÏÖÔÚ×î´ó·ùƵÏìӦλÖÃ
               if f(j) ~= 0;
                   main_f = f(j);
               else
                   max_sptr = 0;
               end
           end
       end
       main_f;
       %ÕÒ³öÕæÕý¼ÆËãµÄƵÂÊÖµ
       f_err = 10;
       f_main = 0;
       for i=1:size(Amp, 2)
           if abs(main_f - Fre(i)) < f_err
               f_main = Fre(i);
               damp_main = damp(i);
               f_err = abs(main_f - Fre(i));
           end
       end
       main_f = f_main;
       main_damp = damp_main;
       %½øÐйéÒ»»¯
       for j=1:size(f,2)
           sptr(j)=sptr(j)/max_sptr;
           Amp_Response(j) = sptr(j);
       end
      
           for i=1:size(f,2)
               if angl(i) > 0
                   angl(i)=angl(i)-360;
               end
           end
           showfigure = 1;
        if showfigure == 1
%              %ÏÔÊ¾ÌØÕ÷¸ùµÄλÖÃ
%              figure;
%              plot(damp, 2*pi*Fre, 'r*');
%       end
      % if showfigure == 1
              %ÔÚÒ»¸öͼÉÏÏÔʾʱÓòÄâºÍÇúÏߺÍPronyƵÆ×·Ö²¼
            %  figure;
             % subplot(2,1,1);
              %plot(tt,x(1:N),'b', tt,y, 'r', tt,xc, '*b');
         % plot(tt,x(1:N),'r', tt,xc, '*b');
%Ð޸ĵĠ       subplot(2,1,2);
%Ð޸ĵĠ             plot(f,sptr);
              %subplot(2,2,3);
              %plot(f,sptr);
              %subplot(2,2,4);
             % plot(f,angl);
      end
      
          cpu=cputime-cpu;
      format short;
        end

end
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ÖÇÄÜ»úÆ÷ÈË

Robot (super robot)

ÎÒÃǶ¼°®Ð¡Ä¾³æ

ÕÒµ½Ò»Ð©Ïà¹ØµÄ¾«»ªÌû×Ó£¬Ï£ÍûÓÐÓÃŶ~

¿ÆÑдÓСľ³æ¿ªÊ¼£¬ÈËÈËΪÎÒ£¬ÎÒΪÈËÈË
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ 172547204 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 299Çóµ÷¼Á +5 ijijijijλ 2026-03-21 5/250 2026-03-23 23:36 by ÈÈÇéɳĮ
[¿¼ÑÐ] 306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶ +7 Ö½Óãly 2026-03-21 8/400 2026-03-23 23:31 by chixmc
[¿¼ÑÐ] 265Çóµ÷¼Á +10 ÁºÁºÐ£Ð£ 2026-03-17 10/500 2026-03-23 21:17 by Ò»ÇÐOK
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉÂʦ´óÉúÎïѧ071000£¬298·Ö£¬Çóµ÷¼Á +3 SYA£¡ 2026-03-23 3/150 2026-03-23 19:09 by macy2011
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖйúʯÓÍ´óѧ£¨»ª¶«£© ±¾¿ÆÆë³¹¤Òµ´óѧ +4 ʯÄÜΰ 2026-03-17 4/200 2026-03-23 17:51 by 17862566385
[¿¼ÑÐ] 08¹¤Ñ§µ÷¼Á +7 Óû§573181 2026-03-20 11/550 2026-03-23 15:47 by ÎÒ°®Ñ§Ï°Ñ§Ï°Ê¹Î
[¿¼ÑÐ] ÕÐ08¿¼Êýѧ +6 laoshidan 2026-03-20 14/700 2026-03-23 14:37 by 15614359529
[¿¼ÑÐ] 287Çóµ÷¼Á +8 ³¿»èÏßÓëÐǺ£ 2026-03-19 9/450 2026-03-22 17:01 by i_cooler
[¿¼ÑÐ] ѰÕÒµ÷¼Á +4 ¾óǿâ? 2026-03-21 4/200 2026-03-22 16:14 by ľÍÐζ¶
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖпƼ¼´óѧ071000£¬Çóµ÷¼Á +4 ÑØ°¶Óб´¿Ç6 2026-03-21 4/200 2026-03-22 07:21 by ilovexiaobin
[¿¼ÑÐ] Çóµ÷¼Á +4 ÒªºÃºÃÎÞÁÄ 2026-03-21 4/200 2026-03-21 18:57 by ѧԱ8dgXkO
[¿¼ÑÐ] 0805²ÄÁÏ320Çóµ÷¼Á +3 ÉÎïÓï 2026-03-20 3/150 2026-03-21 15:46 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 303Çóµ÷¼Á +5 î£08 2026-03-17 7/350 2026-03-21 03:11 by JourneyLucky
[¿¼ÑÐ] 085700×ÊÔ´Óë»·¾³308Çóµ÷¼Á +12 īīĮ 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[¿¼ÑÐ] 330Çóµ÷¼Á +4 С²Ä»¯±¾¿Æ 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[¿¼ÑÐ] 288Çóµ÷¼Á +16 ÓÚº£º£º£º£ 2026-03-19 16/800 2026-03-20 22:28 by JourneyLucky
[¿¼ÑÐ] ²ÄÁÏѧÇóµ÷¼Á +4 Stella_Yao 2026-03-20 4/200 2026-03-20 20:28 by ms629
[¿¼ÑÐ] 085410È˹¤ÖÇÄÜר˶317Çóµ÷¼Á£¨0854¶¼¿ÉÒÔ£© +4 xbxudjdn 2026-03-18 4/200 2026-03-20 09:07 by ²»168
[¿¼ÑÐ] ²ÄÁÏ¿¼Ñе÷¼Á +3 xwt¡£ 2026-03-19 3/150 2026-03-19 11:22 by wãåÑôw
[˶²©¼ÒÔ°] ºþ±±¹¤Òµ´óѧ ÉúÃü¿ÆÑ§Ó뽡¿µÑ§Ôº-¿ÎÌâ×éÕÐÊÕ2026¼¶Ê³Æ·/ÉúÎï·½Ïò˶ʿ +3 1ϲ´º8 2026-03-17 5/250 2026-03-17 17:18 by ber´¨cool×Ó
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û