»ùÓÚRLSËã·¨µÄ¶àÂó¿Ë·ç½µÔ루±£Ö¤ÕýÈ·£©

Î人Àí¹¤´óѧ¡¶ÐÅÏ¢´¦Àí¿ÎȺ×ÛºÏѵÁ·ÓëÉè¼Æ¡·±¨¸æ

ʽÖУ¬M¡ÜN¡£

¼ò¶ÌµÄ±íʾÂ˲¨Æ÷µÄ´ú¼Ûº¯Êý£¬½«ÉÏʽÓйØÏÒåΪÒÔϲÎÊý£º

£¨1£©È·¶¨ÐÔÏà¹Øº¯Êý±íʾÊäÈëÐźÅÔÚ³éÍ·kÓë³éÍ·mÖ®¼äÁ½ÐźŵÄÏà¹ØÐÔ£¬

?(N,k,m)??x(i?k)x(i?m);i?1Nk,m?0,1,?,M?1.

£¨2£©È·¶¨ÐÔ»¥Ïà¹Øº¯Êý±íʾÆÚÍûÏìÓ¦ÓëÔÚ³éÍ·kÊäÈëÐͺÅÖ®¼äµÄ»¥Ïà¹ØÐÔ£º

?(N,k)??d(i)x(i?k);i?1Nk?0,1,?,M?1.

£¨3£©ÆÚÍûÏìÓ¦ÐòÁеÄÄÜÁ¿Îª£º Ed(n)??d2(i)

i?1N½«ÉÏÊö¶¨ÒåµÄÈý¸ö²ÎÊý´úÈëʽ¢ÛÖУ¬µÃ£º

J(n)?Ed(n)?2?wk(n)?(N;k?1)???wk(n)wm(n)?(N;k?1,m?1) ¢Ü

k?1k?1m?1MMMΪÁ˹ÀËãÂ˲¨Æ÷µÄ×î¼ÑÂ˲¨ÏµÊý£¬°Ñʽ¢Ü¶ÔÂ˲¨ÏµÊý£¨È¨ÏµÊý£©wk(n)΢·ÖÒ»´Î£¬²¢ÁîÆäµ¼ÊýµÈÓÚ0£º

M?J(n)??2?(N;k?1)?2?wm(n)?(N;k?1,m?1)?0;?wk(n)m?1k?1,2,?,M. ¢Ý

µÃ£º

?wm?1Mm(n)?(N;k?1,m?1)??(N;k?1);k?1,2,?,M. ¢Þ

ÕâÊÇ×îС¶þ³Ë·¨×ÔÊÊÓ¦Â˲¨µÄÕýÔò·½³Ì¡£ RLSµÝÍÆ¼ÆË㹫ʽΪ£º

?(n)?w?(n?1)?K(n)[d(n)?xT(n)w?(n?1)]?w?(n?1)?K(n)?(n) wʽÖÐK(n)ΪÔöÒæÊ¸Á¿£¬ËüµÈÓÚÏà¹Ø¾ØÕó?(n)µÄÄæ¾ØÕóÓëÑÓ³ÙÏß³éÍ·ÊäÈëÕó

X(n)µÄ³Ë»ý¡£?(n)ÊÇÕæÕýµÄ¹À¼ÆÎó²î£¬ËüµÈÓÚ£º

?(n?1) ?(n)?d(n)?xT(n)w×ÔÊÊÓ¦µÝ¹é×îС¶þ³ËËã·¨µÄÐźÅÁ÷³ÌͼÈçͼ3£º

8

Î人Àí¹¤´óѧ¡¶ÐÅÏ¢´¦Àí¿ÎȺ×ÛºÏѵÁ·ÓëÉè¼Æ¡·±¨¸æ

ͼ3-2 RLSËã·¨ÐźÅÁ÷³Ìͼ

RLSËã·¨µÄ¼ÆËã²½ÐòÈçͼ4£º

ͼ3-3 RLSËã·¨²½Ðò

3.2 RLSËã·¨³ÌÐò³ÌÐòÉè¼Æ

ÔÚÀí½âRLSËã·¨µÄ»ù±¾Ô­Àíºó£¬ÎÒ¾ö¶¨×ÔÐбàдRLSËã·¨³ÌÐò¿é£¬RLSËã·¨¿ÉÒÔÀí½âΪ½«Êä³ö·´À¡¸øÂ˲¨Æ÷À´µ÷ÕûÏà¹Ø²ÎÊý£¬´ïµ½Ð£ÕýÎó²îµÄÄ¿µÄ¡£Ë㷨ʵÏÖÄ£¿é´úÂëÈçÏÂËùʾ£º

Worder=32; %Â˲¨Æ÷½×Êý lambda=1 ; % ÉèÖÃÒÅÍüÒò×Ó Delta=0.001 ;

p=(1/Delta) * eye ( Worder,Worder ) ; w=zeros(Worder,1);

output=primary; %Ö÷ÓïÒôÊä³ö loopsize=max(size(primary));

for i=1+Worder:loopsize %дRLSËã·¨¹«Ê½

9

Î人Àí¹¤´óѧ¡¶ÐÅÏ¢´¦Àí¿ÎȺ×ÛºÏѵÁ·ÓëÉè¼Æ¡·±¨¸æ

z=primary(i)-w'*(fref(i-Worder+1:i))'; n2=fref(i-Worder+1:i)'; k=(1/lambda)*p*n2; K=k/(1+n2'*k); w = w + K*z; p0=K*n2';

p= (p-p0*p)/lambda; output(i-Worder)=z; disp(i); end;

10

Î人Àí¹¤´óѧ¡¶ÐÅÏ¢´¦Àí¿ÎȺ×ÛºÏѵÁ·ÓëÉè¼Æ¡·±¨¸æ

4 RLSËã·¨Â˲¨·½°¸ÊµÏÖ

4.1ÐźŵĻñÈ¡

±¾´Î¿Î³ÌÉè¼Æ¶ÔÎÒÃÇ×ÔÐд¦ÀíºÍÁé»îÔËÓõÄÄÜÁ¦Ìá³öÁ˺ܸߵÄÒªÇó¡£Ê×ÏÈ£¬Éè¼ÆÖÐδҪÇóËùÐèÒªÓõ½µÄÓïÒôÐźţ»Æä´Î£¬Â¼ÖÆÔëÉùºÍ±»ÔëÉùÎÛȾµÄÓïÒôÐźÅÒ²ÊÇÒ»¸öµÄÎÊÌâ¡£

¾­¹ý¿¼ÂÇ£¬Ô­Ê¼ÒôƵÐźÅÑ¡Ôñ´ÓÍøÉÏÏÂÔØµÄÒ»¶ÎWAV¸ñʽµÄ5ÃëÁåÉù£¬È»ºóÓÃrandn(length(source),1)º¯ÊýÊä³ö×÷ΪÔëÉù£¬¼Ç×öRLSrefns.wav¡£½«ÕâÁ½¶ÎÓïÒôÐźŵþ¼Ó²¢±£´æÏÂÀ´¼Ç×öRLSprimsp.wav¡£

4.2¶ÁÈ¡ÓïÒôÎļþ

Ö÷Âó¿Ë·çÂ¼ÖÆµÄÓïÒôÐźÅÊÇRLSprimsp.wav£¬²Î¿¼Âó¿Ë·çÂ¼ÖÆµÄ²Î¿¼ÔëÉùÊÇRLSrefns.wav£¬¶¼ÊÇ.wav¸ñʽ£¬ÓÃwavereadÖ¸Áî¶ÁÈ¡ÒôƵÐźţ»

Ö¸ÁîдΪÈçÏ£º

primary = wavread('RLSprimsp.wav'); primary = primary';

ref = wavread('RLSrefns.wav'); fref = fref';

4.3RLSË㷨ʵÏÖ

RLSËã·¨µÄÊÕÁ²ÌØÐÔ½ÏLMSËã·¨ÓÅÔ½£¬µ«ÏàÓ¦µÄ¸´ÔÓ¶ÈÒ²Òª¸ßÐí¶à£¬¿¼Âǵ½ÊÕÁ²Ê±¼äµÄÓ°Ï죬´ÓÆðʼʱ¼äµ½ÊÕÁ²Ê±¼ä¾­Â˲¨Æ÷´¦ÀíµÃµ½µ½Êä³öÎó²îÒÀÈ»ºÜ´ó£¬¹ÊÖ±½Ó½«Ç°32ÏîÈ¥µô£¬ÏÈͨ¹ýÁ½ÊäÈë×÷²îµÃµ½Ô¤ÆÚÖµ£¬ÔÙ½«ËùÓÐÔ¤ÆÚÖµÓë¶ÔӦʱ¿ÌµÄʵ¼ÊÊä³öÖµ×÷²îÇ󯽷½£¬½«ÕâЩƽ·½ÖµÏà¼Ó¿ÉÒԵõ½Ò»¸ö±äÁ¿ÎªWµÄº¯Êý£¬È¡WÊǺ¯ÊýµÄÖµ×îС¡£ÁíÍ⣬ÏÔÈ»¾àÀën×î½üµÄÁ¿ÓëY£¨n£©×î½Ó½ü£¬ÒýÈëÒÅÍüÒò×ÓʹµÃ´Ón-1µ½0£¬Ïà¹Ø³Ì¶ÈÖð½¥¼õС¡£×îºóÇóµÃÏà¹ØÆ«²î£¬·´À¡¸øÂ˲¨Æ÷ÒÔ½ÃÕýÊä³ö£¬´ïµ½¼õСÎó²îµÄÄ¿µÄ¡£

% ³õʼ»¯

Worder=32; %Â˲¨Æ÷½×Êý Delta=0.001 ; p=(1/Delta) * eye ( Worder,Worder ) ;

11

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)