ÓÃMatlabÉè¼ÆFIRÂ˲¨Æ÷µÄÈýÖÖ·½·¨

ÓÃMATLABÐźŴ¦Àí¹¤¾ßÏä½øÐÐFIRÂ˲¨Æ÷Éè¼ÆµÄÈýÖÖ·½·¨

Õª Òª ½éÉÜÁËÀûÓÃMATLABÐźŴ¦Àí¹¤¾ßÏä½øÐÐFIRÂ˲¨Æ÷Éè¼ÆµÄÈýÖÖ·½·¨£º³ÌÐòÉè¼Æ·¨¡¢FDAToolÉè¼Æ·¨ºÍSPToolÉè¼Æ·¨£¬¸ø³öÁËÏêϸµÄÉè¼Æ²½Ö裬²¢½«Éè¼ÆµÄÂ˲¨Æ÷Ó¦Óõ½Ò»¸ö»ìºÍÕýÏÒ²¨Ðźţ¬ÒÔÑéÖ¤Â˲¨Æ÷µÄÐÔÄÜ¡£

¹Ø¼ü´Ê MATLAB£¬Êý×ÖÂ˲¨Æ÷£¬ÓÐÏ޳弤ÏìÓ¦£¬´°º¯Êý£¬·ÂÕæ 1 ǰÑÔ

Êý×ÖÂ˲¨Æ÷ÊÇÒ»ÖÖÓÃÀ´¹ýÂËʱ¼äÀëÉ¢ÐźŵÄÊý×Öϵͳ£¬Í¨¹ý¶Ô³éÑùÊý¾Ý½øÐÐÊýѧ´¦ÀíÀ´´ïµ½ÆµÓòÂ˲¨µÄÄ¿µÄ¡£¸ù¾ÝÆäµ¥Î»³å¼¤ÏìÓ¦º¯ÊýµÄʱÓòÌØÐÔ¿É·ÖΪÁ½ÀࣺÎÞÏ޳弤ÏìÓ¦£¨IIR£©Â˲¨Æ÷ºÍÓÐÏ޳弤ÏìÓ¦£¨FIR£©Â˲¨Æ÷¡£ÓëIIRÂ˲¨Æ÷Ïà±È£¬FIRµÄʵÏÖÊǷǵݹéµÄ£¬×ÜÊÇÎȶ¨µÄ£»¸üÖØÒªµÄÊÇ£¬FIRÂ˲¨Æ÷ÔÚÂú×ã·ùƵÏìÓ¦ÒªÇóµÄͬʱ£¬¿ÉÒÔ»ñµÃÑϸñµÄÏßÐÔÏàÎ»ÌØÐÔ¡£Òò´Ë£¬ËüÔڸ߱£ÕæµÄÐźŴ¦Àí£¬ÈçÊý×ÖÒôƵ¡¢Í¼Ïñ´¦Àí¡¢Êý¾Ý´«Êä¡¢ÉúÎïҽѧµÈÁìÓòµÃµ½¹ã·ºÓ¦Óá£

2 FIRÂ˲¨Æ÷µÄ´°º¯ÊýÉè¼Æ·¨ FIRÂ˲¨Æ÷µÄÉè¼Æ·½·¨ÓÐÐí¶àÖÖ£¬Èç´°º¯ÊýÉè¼Æ·¨¡¢ÆµÂʲÉÑùÉè¼Æ·¨ºÍ×îÓÅ»¯Éè¼Æ·¨µÈ¡£´°º¯ÊýÉè¼Æ·¨µÄ»ù±¾Ô­ÀíÊÇÓÃÒ»¶¨¿í¶È´°º¯Êý½ØÈ¡ÎÞÏÞÂö³åÏìÓ¦ÐòÁлñµÃÓÐÏÞ³¤µÄÂö³åÏìÓ¦ÐòÁУ¬Ö÷ÒªÉè¼Æ²½ÖèΪ£º (1) ͨ¹ý¸µÀïÒ¶Äæ±ä»»»ñµÃÀíÏëÂ˲¨Æ÷µÄµ¥Î»Âö³åÏìÓ¦hd(n)¡£

(2) ÓÉÐÔÄÜÖ¸±êÈ·¶¨´°º¯ÊýW(n)ºÍ´°¿Ú³¤¶ÈN¡£

(3) ÇóµÃʵ¼ÊÂ˲¨Æ÷µÄµ¥Î»Âö³åÏìÓ¦h(n)£¬ h(n)¼´ÎªËùÉè¼ÆFIRÂ˲¨Æ÷ϵÊýÏòÁ¿b(n)¡£

(4) ¼ìÑéÂ˲¨Æ÷ÐÔÄÜ¡£

±¾ÎĽ«Õë¶ÔÒ»¸öº¬ÓÐ5Hz¡¢15HzºÍ30HzµÄ»ìºÍÕýÏÒ²¨Ðźţ¬Éè¼ÆÒ»¸öFIR´øÍ¨Â˲¨Æ÷£¬¸ø³öÀûÓÃMATLABʵÏÖµÄÈýÖÖ·½·¨£º³ÌÐòÉè¼Æ·¨¡¢ FDAToolÉè¼Æ·¨ºÍSPToolÉè¼Æ·¨¡£²ÎÊýÒªÇ󣺲ÉÑùƵÂÊfs=100Hz£¬Í¨´øÏÂÏÞ½ØÖ¹ÆµÂÊfc1=10 Hz£¬Í¨´øÉÏÏÞ½ØÖ¹ÆµÂÊfc2=20 Hz£¬¹ý¶É´ø¿í6 Hz£¬Í¨×è´ø²¨¶¯0.01£¬²ÉÓÿ­Èû´°Éè¼Æ¡£ 2 ³ÌÐòÉè¼Æ·¨

MATLABÐźŴ¦Àí¹¤¾ßÏäÌṩÁ˸÷ÖÖ´°º¯Êý¡¢Â˲¨Æ÷Éè¼Æº¯ÊýºÍÂ˲¨Æ÷ʵÏÖº¯Êý¡£±¾ÎĵĴøÍ¨Â˲¨Æ÷Éè¼Æ¼°Â˲¨³ÌÐòÈçÏ£º

[n,Wn,beta,ftype]=kaiserord([7 13 17 23],[0 1 0],[0.01 0.01 0.01],100); %µÃ³öÂ˲¨Æ÷µÄ½×Êýn=38£¬beta=3.4

w1=2*fc1/fs; w2=2*fc2/fs;%½«Ä£ÄâÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±êת»»ÎªÊý×ÖÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±ê window=kaiser(n+1,beta);%ʹÓÃkaiser´°º¯Êý

b=fir1(n,[w1 w2],window);ʹÓñê׼ƵÂÊÏìÓ¦µÄ¼Ó´°Éè¼Æº¯Êýfir1 freqz(b,1,512);%Êý×ÖÂ˲¨Æ÷ƵÂÊÏìÓ¦ t = (0:100)/Fs;

s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);%»ìºÍÕýÏÒ²¨ÐźŠsf = filter(b,1,s);£¥¶ÔÐźÅs½øÐÐÂ˲¨ ³ÌÐòÖ´ÐеĽá¹ûÈçͼ1Ëùʾ£º

£¨1£©Â˲¨Æ÷·ùÆµÌØÐÔºÍÏàÆµÌØÐÔ £¨2£©Â˲¨Ç°ºóµÄ²¨ÐΠͼ1 Â˲¨Æ÷ÌØÐÔºÍÂ˲¨Ð§¹ûͼ 4 FDAToolÉè¼Æ·¨

FDATool(Filter Design & Analysis Tool)ÊÇMATLABÐźŴ¦Àí¹¤¾ßÏäרÓõÄÂ˲¨Æ÷Éè¼Æ·ÖÎö¹¤¾ß£¬²Ù×÷¼òµ¥¡¢Áé»î£¬¿ÉÒÔ²ÉÓöàÖÖ·½·¨Éè¼ÆFIRºÍIIRÂ˲¨Æ÷¡£ÔÚMATLABÃüÁî´°¿ÚÊäÈëFDAToolºó»Ø³µ¾Í»áµ¯³öFDATool½çÃæ¡£ 4.1 ´øÍ¨Â˲¨Æ÷Éè¼Æ

ÒÑÖªÂ˲¨Æ÷µÄ½×Êýn=38£¬beta=3.4¡£±¾ÀýÖУ¬Ê×ÏÈÔÚFilter TypeÖÐÑ¡ÔñBandpass£»ÔÚDesign MethodÑ¡ÏîÖÐÑ¡ÔñFIR Window£¬½Ó×ÅÔÚWindowÑ¡ÏîÖÐѡȡKaiser£¬BetaֵΪ3.4£»Ö¸¶¨Filter OrderÏîÖеÄSpecify orderΪ38£»²ÉÑùƵÂÊFs=100Hz,½ØÖ¹ÆµÂÊ

Fc1=10Hz,Fc2=20Hz¡£ÉèÖÃÍêÒÔºóµã»÷´°¿ÚÏ·½µÄDesign Filter£¬ÔÚ´°¿ÚÉÏ·½¾Í»á¿´µ½ËùÉè¼ÆÂ˲¨Æ÷µÄ·ùƵÏìÓ¦£¬Í¨¹ý²Ëµ¥Ñ¡ÏîAnalysis»¹¿ÉÒÔ¿´µ½Â˲¨Æ÷µÄÏàÆµÏìÓ¦¡¢×éÑÓ³Ù¡¢Âö³åÏìÓ¦¡¢½×Ô¾ÏìÓ¦¡¢Á㼫µãÅäÖõȡ£Éè¼ÆÍê³Éºó½«½á¹û±£´æÎªkaiser15.fdaÎļþ¡£ 4.2 Simulink·ÂÕæ

ÔÚSimulink»·¾³Ï£¬½«Â˲¨Æ÷Îļþkaiser15.fdaµ¼ÈëDigital Filter DesignÄ£¿é£¬ÊäÈëÐźÅΪs(t)=sin(10¦Ðt)+sin(30¦Ðt)+sin(60¦Ðt),Éú³ÉµÄ·ÂÕæÍ¼ºÍÂ˲¨Ð§¹ûÈçͼ2Ëùʾ¡£

£¨1£©Simulink·ÂÕæÍ¼ £¨2£©Â˲¨Ç°ºóµÄÀëÉ¢²¨ÐΠͼ2 Simulink·ÂÕæÍ¼ºÍÂ˲¨Ð§¹ûͼ 5 SPToolÉè¼Æ·¨

SPToolÊÇMATLABÐźŴ¦Àí¹¤¾ßÏäÖÐ×Ô´øµÄ½»»¥Ê½Í¼ÐÎÓû§½çÃæ¹¤¾ß£¬Ëü°üº¬ÁËÐźŴ¦Àí¹¤¾ßÏäÖеĴ󲿷ֺ¯Êý£¬¿ÉÒÔ·½±ã¿ì½ÝµØÍê³É¶ÔÐźš¢Â˲¨Æ÷¼°ÆµÆ×µÄ·ÖÎö¡¢Éè¼ÆºÍä¯ÀÀ¡£ÔÚ±¾ÀýÖа´ÒÔϲ½ÖèÍê³ÉÂ˲¨Æ÷µÄÉè¼ÆºÍÂ˲¨£º ´´½¨²¢µ¼ÈëÐźÅÔ´¡£

ÔÚMATLABÃüÁî´°¿ÚÊäÈëÃüÁ Fs£½100£»t = (0:100)/Fs;

s = sin(2*pi*t*5)+sin(2*pi*t*15)+sin(2*pi*t*30);

´Ëʱ£¬±äÁ¿Fs¡¢t¡¢s½«ÏÔʾÔÚworkspaceÁбíÖС£ÔÚÃüÁî´°¿Ú¼üÈëSptool£¬½«µ¯³öSptoolÖ÷½çÃæ£¬Èçͼ3Ëùʾ£»µã»÷²Ëµ¥File/Import½«ÐźÅsµ¼È벢ȡÃûΪs¡£

£¨2£©µ¥»÷FiltersÁбíϵÄNew£¬°´ÕÕ²ÎÊýÒªÇóÉè¼Æ³öÂ˲¨Æ÷filt1£¬¾ßÌå²½ÖèÀàËÆÓÚ3.2.1¡£

£¨3£©½«Â˲¨Æ÷filt1Ó¦Óõ½sÐźÅÐòÁС£·Ö±ðÔÚSignals¡¢Filters¡¢SpectraÁбíÖÐÑ¡Ôñs¡¢filt1¡¢mtlbse£¬µ¥»÷FiltersÁбíϵÄApply°´Å¥£¬ÔÚµ¯³öµÄApply Filter¶Ô»°¿òÖн«Êä³öÐźÅÃüÃûΪsin15hz¡£

£¨4£©½øÐÐÆµÆ×·ÖÎö¡£ÔÚSignalsÖÐÑ¡Ôñs£¬µ¥»÷SpectraϵÄCreate°´Å¥£¬ÔÚµ¯³öµÄSpectra Viewer½çÃæÖÐÑ¡ÔñMethodΪFFT£¬Nfft=512£¬µ¥»÷Apply°´Å¥Éú³ÉsµÄƵÆ×spect1¡£Í¬ÑùµÄ²½Öè¿ÉÒÔÉú³ÉÐźÅsin15hzµÄƵÆ×spect2¡£

·Ö±ðÑ¡ÖÐÐźÅs¡¢sin15hz¡¢spect1¡¢spect2£¬µ¥»÷¸÷×ÔÁбíÏ·½µÄView°´Å¥£¬¼´¿É¹Û²ìËûÃǵIJ¨ÐΣ¬Èçͼ4Ëùʾ¡£

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@) ËÕICP±¸20003344ºÅ-4