ʵÑéÎ塢˫ÏßÐԱ任·¨Éè¼ÆIIR Êý×ÖÂ˲¨Æ÷
Ò»¡¢ÊµÑéÄ¿µÄ£º
1¡¢ÊìϤÓÃË«ÏßÐԱ任·¨Éè¼ÆIIR Êý×ÖÂ˲¨Æ÷µÄÔÀíÓë·½·¨¡£ 2¡¢ÕÆÎÕÊý×ÖÂ˲¨Æ÷µÄ¼ÆËã»ú·ÂÕæ·½·¨¡£ 3¡¢ÊìϤBatterworthÂ˲¨Æ÷Éè¼Æ·½·¨¼°Ìص㠶þ¡¢ÊµÑéÔÀí
£¨Ò»£©¡¢IIRÊý×ÖÂ˲¨Æ÷µÄÉè¼Æ²½Ö裺
¢Ù °´ÕÕÒ»¶¨¹æÔò°Ñ¸ø¶¨µÄÂ˲¨Æ÷¼¼ÊõÖ¸±êת»»ÎªÄ£ÄâµÍͨÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±ê£» ¢Ú ¸ù¾ÝÄ£ÄâÂ˲¨Æ÷¼¼ÊõÖ¸±êÉè¼ÆÎªÏìÓ¦µÄÄ£ÄâµÍͨÂ˲¨Æ÷£»
¢Û ¸ú¾ÝÂö³åÏìÓ¦²»±ä·¨ºÍË«ÏßÐÔ²»±ä·¨°ÑÄ£ÄâÂ˲¨Æ÷ת»»ÎªÊý×ÖÂ˲¨Æ÷£»
¢Ü Èç¹ûÒªÉè¼ÆµÄÂ˲¨Æ÷ÊǸßͨ¡¢´øÍ¨»ò´ø×èÂ˲¨Æ÷£¬ÔòÊ×ÏȰÑËüÃǵļ¼ÊõÖ¸±êת»¯ÎªÄ£ÄâµÍͨÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±ê£¬Éè¼ÆÎªÊý×ÖµÍͨÂ˲¨Æ÷£¬×îºóͨ¹ýƵÂÊת»»µÄ·½·¨À´µÃµ½ËùÒªµÄÂ˲¨Æ÷¡£
ÔÚMATLABÖУ¬¾µä·¨Éè¼ÆIIRÊý×ÖÂ˲¨Æ÷Ö÷Òª²ÉÓÃÒÔϲ½Ö裺 Ä£ÄâÂ˲¨Æ÷ÔÐÍ buttap,cheb1ap Ä£ÄâÀëÉ¢»¯ bilinear,impinvar IIRÊý×ÖÂ˲¨Æ÷Éè¼Æ²½Öè
£¨¶þ£©¡¢ÓÃÄ£ÄâÂ˲¨Æ÷Éè¼ÆÊý×ÖÂ˲¨Æ÷µÄ·½·¨ 1¡¢³å¼¤ÏìÓ¦²»±ä·¨£º
³å¼¤ÏìÓ¦²»±ä·¨ÊÇ´ÓʱÓò³ö·¢£¬ÒªÇóÊý×ÖÂ˲¨Æ÷µÄ³å¼¤ÏìÓ¦h(n) ¶ÔÓ¦ÓÚÄ£ÄâÂ˲¨Æ÷h(t) µÄµÈ¼ä¸ô³éÑù¡£ Óŵ㣺ʱÓò±Æ½üÁ¼ºÃ£»±£³ÖÏßÐÔ¹ØÏµ¡£
ȱµã£ºÆµÓòÏìÓ¦»ìµþ¡£Ö»ÊÊÓÃÓÚÏÞ´øµÍͨÂ˲¨Æ÷ºÍ´øÍ¨Â˲¨Æ÷
j? 3/?TjIm(z)
?/T 1??/T?Re(z)
?3/?T
SÆ½ÃæZÆ½ÃæÆµÂʱ任 IIRÊý×ÖÂ˲¨Æ÷
2¡¢Ë«ÏßÐԱ任·¨
??~µÄ´ø×´ÇøÓò ½«Õû¸öSÆ½ÃæÑ¹Ëõ±ä»»µ½S1Æ½ÃæÒ»¸ö?
TT1
Óŵ㣺¿Ë·þÁËÆµÓò»ìµþ ȱµã£º¸ßƵʱ»áÒýÆð»û±ä j?j?1jIm(z) ?/T 1??1Re(z) ??/T ZÆ½ÃæSÆ½ÃæS Æ½Ãæ1 1£©³å¼¤ÏìÓ¦²»±ä·¨impinvar
¸ñʽ£º[BZ,AZ]= impinvar£¨B,A,Fs£©
¹¦ÄÜ£º°Ñ¾ßÓÐ[B,A]Ä£ÄâÂ˲¨Æ÷´«µÝº¯ÊýÄ£ÐÍת»»Îª²ÉÑùƵÂÊΪFsµÄÊý×ÖÂ˲¨Æ÷µÄ´«µÝº¯ÊýÄ£ÐÍ[BZ,AZ]£¬FsĬÈÏֵΪ1¡£
Àý£ºÒ»¸ö4½×µÄButterworthÄ£ÄâµÍͨÂ˲¨Æ÷µÄϵͳº¯ÊýÈçÏ£º
Ha(s)?1s?5s?2s?2s?1432
ÊÔÓó弤ÏìÓ¦²»±ä·¨Çó³öButterworthÄ£ÄâµÍͨÊý×ÖÂ˲¨Æ÷µÄϵͳº¯Êý¡£ num=1;
den=[1,sqrt(5),2,sqrt(2),1]; [num1,den1]=impinvar(num,den) 2£©Ë«ÏßÐԱ任·¨bilinear
¸ñʽһ£º[Zd,Pd,Kd]= bilinear(Z,P,K,Fs)
¹¦ÄÜ£º°ÑÄ£ÄâÂ˲¨Æ÷µÄÁ㼫µãÄ£ÐÍת»»³ÉÊý×ÖÂ˲¨Æ÷µÄÁ㼫µãÄ£ÐÍ£¬FsÊDzÉÑùƵÂÊ ¸ñʽ¶þ£º[numd,dend]= bilinear(num,den,Fs)
¹¦ÄÜ£º°ÑÄ£ÄâÂ˲¨Æ÷µÄ´«µÝº¯ÊýÄ£ÐÍת»»ÎªÊý×ÖÂ˲¨Æ÷µÄ´«µÝº¯ÊýÄ£ÐÍ¡£ Àý£ºÒ»¸öÈý½×µÄÄ£ÄâButterworthÄ£ÄâµÍͨÂ˲¨Æ÷µÄϵͳº¯ÊýÈçÏ£º
H(s)?1s3?3s2?2s?1£¬ÊÔÓÃË«ÏßÐԱ任·¨Çó³öÊý×ÖButterworthÊý×ÖµÍͨÂ˲¨Æ÷µÄϵͳº¯Êý¡£
num=1;
den=[1,sqrt(3),sqrt(2),1];
[num1,den1]=bilinear(num,den,1)
3£© IIRÊý×ÖÂ˲¨Æ÷µÄƵÂʱ任ʵÏÖ ²½Ö裺
¢Ù °´Ò»¶¨µÄ¹æÔò½«Êý×ÖÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±êת»»ÎªÄ£ÄâµÍͨÂ˲¨Æ÷µÄ¼¼ÊõÖ¸±ê
¢Ú ¸ù¾Ýת»»ºóµÄ¼¼ÊõÖ¸±êʹÓÃÂ˲¨Æ÷½×Êýº¯Êý£¬È·¶¨Â˲¨Æ÷µÄ×îС½×ÊýNºÍ½ØÖ¹ÆµÂÊWc ¢Û ÀûÓÃ×îС½×ÊýN²úÉúÄ£ÄâµÍͨÔÐÍ
¢Ü ÀûÓýØÖ¹ÆµÂÊWc°ÑÄ£ÄâµÍͨÂ˲¨Æ÷ÔÐÍת»»ÎªÄ£ÄâµÍͨ¡¢¸ßͨ¡¢´øÍ¨¡¢´ø×èÂ˲¨Æ÷ ¢Ý ÀûÓó弤ÏìÓ¦²»±ä·¨»òË«ÏßÐԱ任·¨°ÑÄ£ÄâÂ˲¨Æ÷ת»»ÎªÊý×ÖÂ˲¨Æ÷ ±íÒ» IIRÂ˲¨Æ÷½×´Î¹À¼Æ
º¯ÊýÃû buttord cheb1ord cheb2ord ellipord ¹¦ÄÜ˵Ã÷ ¼ÆËãButterworthÂ˲¨Æ÷µÄ½×´Î¼°½ØÖ¹ÆµÂÊ ¼ÆËãChebyshev¢ñÂ˲¨Æ÷µÄ½×´Î ¼ÆËãChebyshev¢òÂ˲¨Æ÷µÄ½×´Î ¼ÆËãÍÖÔ²Â˲¨Æ÷µÄ×îС½×´Î 2
±í¶þ Ä£ÄâµÍͨÂ˲¨Æ÷ÔÐÍÉè¼Æ º¯ÊýÃû buttap cleb1ap cheb2ap ellipap ±íÈý Ä£ÄâÂ˲¨Æ÷±ä»»º¯Êý º¯ÊýÃû lp2bp lp2bs lp2hp lp2lp £¨Èý£©¡¢Êý×ÖÂ˲¨Æ÷µÄÉè¼Æ 1£® Êý×ÖÂ˲¨Æ÷µÄÉè¼Æ²ÎÊý
Â˲¨Æ÷µÄ4¸öÖØÒªµÄͨ´ø¡¢×è´ø²ÎÊýΪ£º
¹¦ÄÜ˵Ã÷ Ä£ÄâµÍͨת»»Îª´øÍ¨ Ä£ÄâµÍͨת»»Îª´ø×è Ä£ÄâµÍͨת»»Îª¸ßͨ ¸Ä±äÄ£ÄâµÍͨµÄ½ØÖ¹ÆµÂÊ ¹¦ÄÜ˵Ã÷ ButterworthÄ£ÄâµÍͨÂ˲¨Æ÷ÔÐÍÉè¼Æ Chebyshev¢ñÄ£ÄâµÍͨÂ˲¨Æ÷ÔÐÍÉè¼Æ Chebyshev¢òÄ£ÄâµÍͨÂ˲¨Æ÷ÔÐÍÉè¼Æ ÍÖԲģÄâµÍͨÂ˲¨Æ÷ÔÐÍÉè¼Æ fp£ºÍ¨´ø½ØÖ¹ÆµÂÊ£¨Hz£© fs£º×è´øÆðʼƵÂÊ£¨Hz£©
£¬¼´Í¨´øÄÚËùÔÊÐíµÄ×î´óË¥¼õ£» Rp£ºÍ¨´øÄÚ²¨¶¯£¨dB£©
Rs£º×è´øÄÚ×îС˥¼õ
Éè²ÉÑùËÙÂÊ£¨¼´ÄοüË¹ÌØËÙÂÊ£©ÎªfN£¬½«ÉÏÊö²ÎÊýÖÐµÄÆµÂʲÎÊýת»¯Îª¹éÒ»»¯½ÇƵÂʲÎÊý£º
?p£ºÍ¨´ø½ØÖ¹½ÇƵÂÊ£¨rad/s£© £¬?p?fp/(fN/2)£» ?s£º×è´øÆðʼ½ÇƵÂÊ£¨rad/s£© £¬?s?fs/(fN/2)
ͨ¹ýÒÔÉϲÎÊý¾Í¿ÉÒÔ½øÐÐÀëÉ¢Â˲¨Æ÷µÄÉè¼Æ¡£
2¡¢°ÍÌØÎÖ˹Â˲¨Æ÷Éè¼Æ
1£© °ÍÌØÎÖ˹Â˲¨Æ÷½×ÊýµÄÑ¡Ôñ£º
ÔÚÒÑÖªÉè¼Æ²ÎÊý?p£¬?s£¬Rp£¬RsÖ®ºó£¬¿ÉÀûÓá°buttord¡±ÃüÁî¿ÉÇó³öËùÐèÒªµÄÂ˲¨Æ÷µÄ½×ÊýºÍ3dB½ØÖ¹ÆµÂÊ£¬Æä¸ñʽΪ£º
[n£¬Wn]=buttord[Wp£¬Ws£¬Rp£¬Rs]£¬ÆäÖÐWp£¬Ws£¬Rp£¬Rs·Ö±ðΪͨ´ø½ØÖ¹ÆµÂÊ¡¢×è´øÆðʼƵÂÊ¡¢Í¨´øÄÚ²¨¶¯¡¢×è´øÄÚ×îС˥¼õ¡£·µ»ØÖµnΪÂ˲¨Æ÷µÄ×îµÍ½×Êý£¬WnΪ3dB½ØÖ¹ÆµÂÊ¡£
2£© °ÍÌØÎÖ˹Â˲¨Æ÷ϵÊý¼ÆË㣺
ÓɰÍÌØÎÖ˹Â˲¨Æ÷µÄ½×ÊýnÒÔ¼°3dB½ØÖ¹ÆµÂÊWn¿ÉÒÔ¼ÆËã³ö¶ÔÓ¦´«µÝº¯ÊýH(z)µÄ·Ö ×Ó·ÖĸϵÊý£¬MATLABÌṩµÄÃüÁîÈçÏ£º (a)°ÍÌØÎÖ˹µÍͨÂ˲¨Æ÷ϵÊý¼ÆË㣺
[b£¬a]=butter(n,Wn)£¬ÆäÖÐbΪH(z)µÄ·Ö×Ó¶àÏîʽϵÊý£¬aΪH(z)µÄ·Öĸ¶àÏîʽϵÊý
3
(b)°ÍÌØÎÖ˹¸ßͨÂ˲¨Æ÷ϵÊý¼ÆË㣺[b£¬a]=butter(n£¬Wn£¬¡¯High¡¯)
(c)°ÍÌØÎÖ˹´øÍ¨Â˲¨Æ÷ϵÊý¼ÆË㣺[b£¬a]=butter(n£¬[W1£¬W2])£¬ÆäÖÐ[W1£¬W2]Ϊ½ØÖ¹ÆµÂÊ£¬ÊÇ2ÔªÏòÁ¿£¬ÐèҪעÒâµÄÊǸú¯Êý·µ»ØµÄÊÇ2*n½×Â˲¨Æ÷ϵÊý¡£
(d)°ÍÌØÎÖ˹´ø×èÂ˲¨Æ÷ϵÊý¼ÆË㣺[b£¬a]=butter(ceil(n/2)£¬[W1£¬W2]£¬¡¯stop¡¯)£¬ÆäÖÐ[W1£¬W2]Ϊ½ØÖ¹ÆµÂÊ£¬ÊÇ2ÔªÏòÁ¿£¬ÐèҪעÒâµÄÊǸú¯Êý·µ»ØµÄÒ²ÊÇ2*n½×Â˲¨Æ÷ϵÊý¡£ Èý¡¢°ÍÌØÎÖ˹Â˲¨Æ÷Éè¼ÆÊµÀý£º
ÀýÌâ1£º²ÉÑùËÙÂÊΪ8000Hz£¬ÒªÇóÉè¼ÆÒ»¸öµÍͨÂ˲¨Æ÷£¬fp=2100Hz£¬fs=2500Hz£¬Rp=3dB£¬Rs=25dB¡£ 1¡¢²ÉÑùËÙÂÊΪ10000Hz£¬ÒªÇóÉè¼ÆÒ»¸ö°ÍÌØÎÖ˹´ø×èÂ˲¨Æ÷£¬fp=[1000Hz£¬1500Hz]£¬fs=[1200Hz£¬1300Hz]£¬
Rp=3dB£¬Rs=30dB¡£
ÓÃÖ±½ÓÉè¼Æ·¨ ³ÌÐòÈçÏ£º
fn=8000;%²ÉÑùƵÂÊ
fp=2100; %ͨ´ø½ØÖ¹ÆµÂÊ fs=2500; %×è´øÆðʼƵÂÊ Rp=3; %ͨ´ø×î´óË¥¼õ Rs=25;%×è´ø×îС˥¼õ
Wp=fp/(fn/2);%¼ÆËã¹éÒ»»¯½ÇƵÂÊ Ws=fs/(fn/2);
[n,Wn]=buttord(Wp,Ws,Rp,Rs);%¼ÆËã½×ÊýºÍ½ØÖ¹ÆµÂÊ [b,a]=butter(n,Wn);%¼ÆËãH(z)·Ö×Ó¡¢·Öĸ¶àÏîʽϵÊý
[H,F]=freqz(b,a,1000,8000);%¼ÆËãH(z)µÄ·ùƵÏìÓ¦,freqz(b,a,¼ÆËãµãÊý,²ÉÑùËÙÂÊ) subplot(2,1,1)
plot(F,20*log10(abs(H))) %»³ö·ùÆµÌØÐÔͼ
xlabel('Frequency(Hz)'); ylabel('Magnitude(dB)') title('µÍͨÂ˲¨Æ÷')
axis([0 4000 -30 3]);grid on pha=angle(H)*180/pi; subplot(2,1,2)
plot(F,pha);grid on %»³öÏàÆµÌØÐÔͼ xlabel('Frequency(Hz)'); ylabel('phase');
µÍͨÂ˲¨Æ÷0)B(de-10udtiagnM-20-3005001000150020002500300035004000Frequency(Hz)200100esa0ph-100-20005001000150020002500300035004000Frequency(Hz)
ÓÃË«ÏßÐԱ任·¨
wp=2100*2*pi; %ÀûÓÃ
4
Ïà¹ØÍÆ¼ö£º