µÚ5Õ ³£ÓÃÊý×ÖÐźŴ¦Àíº¯Êý
¡ì5-1 ²¨Ðη¢ÉúÆ÷
1£®»ù±¾ÐźÅÐòÁеıíʾ
Àëɢʱ¼äÐźÅÊÇʱ¼äÉϲ»Á¬ÐøµÄ¡°ÐòÁС±£¬Ò»°ãÖ±½ÓÓÃx(n)±íʾ¡£Ò»¸ö³¤¶ÈΪNµÄÐòÁÐx(n)ÔÚMATLABÖпÉÒÔÓÃÒ»¸öNάÐÐÏòÁ¿»òÁÐÏòÁ¿±íʾ¡£³£ÓõĻù±¾ÐźÅÐòÁвúÉúÈçÏ£º
1n?01£© µ¥Î»³éÑùÐòÁÐ ?(n)???0 n?0
?ÕâÒ»ÐòÁпÉÓÃMATLABÖеÄzerosº¯ÊýʵÏÖ
x=[1,zeros(1,N-1)];
1n?02£© µ¥Î»½×Ô¾ÐòÁÐ u(n)???0 n?0
?ÕâÒ»ÐòÁпÉÓÃMATLABÖеÄonesº¯ÊýʵÏÖ
x=ones(1,N); 3£© ʵָÊýÐòÁÐ x(n)?an ?n,a?R
MATLABʵÏÖ£º
n = 0 ; N-1;
x = a.^ n ;
4£© ¸´Ö¸ÊýÐòÁÐ x(n)?e(c?j?)n ?n
MATLABʵÏÖ£º
n=0 : N-1;
x = exp((c+j*w)*n) ; 5£© Ëæ»úÐòÁÐ
rand(1, N)²úÉúÔÚ[0,1]ÉϾùÔÈ·Ö²¼µÄ³¤¶ÈΪNµÄËæ»úÐòÁС£
randn(1, N)²úÉú³¤¶ÈΪNÇÒ¾ùֵΪ0·½²îΪ1µÄ¸ßË¹Ëæ»úÐòÁУ¬¼´°×ÔëÉùÐòÁС£ 2£®»ù±¾²¨ÐεIJúÉú
1£©Èý½Ç²¨»ò¾â³Ý²¨·¢Éúº¯Êý£ºsawtooth()
Óï·¨¸ñʽ£ºsawtooth(t ,width)¡£²úÉúÒÔ2¦ÐΪÖÜÆÚ·ùÖµ·¶Î§ÔÚ[-1 , +1]Ö®¼äµÄÈý½Ç²¨»ò¾â³Ý²¨¡£²ÎÊýtΪʱ¼äÏòÁ¿£»widthÊÇ[0£¬1]Ö®¼äµÄÊý£¬Ëü¾ö¶¨ÓÚº¯ÊýÔÚÒ»¸öÖÜÆÚÄÚÉÏÉý²¿·ÖºÍϽµ²¿·ÖµÄ±ÈÀý¡£width=0.5²úÉúÈý½Ç²¨£¬width=1²úÉú¾â³Ý²¨£¬´Ëʱº¯Êý¿É¼òдΪsawtooth(t)¡£ 2£©·½²¨·¢Éúº¯Êýsquare()
Óï·¨¸ñʽ£ºsquare(t)¡£²úÉúÒÔ2¦ÐΪÖÜÆÚ·ùÖµ·¶Î§ÔÚ[-1£¬+1]Ö®¼äµÄ·½²¨£¬²ÎÊýtΪʱ¼äÏòÁ¿¡£
3£©sinc·¢Éúº¯Êý£ºsinc()
Óï·¨¸ñʽ£ºsinc(t)
?sin(pi*t)/(pi*t);t?0 sinc(t)??
t?01?Àý ÐźŲúÉú¾ÙÀý function fun1 clear all
t=0:0.0001:0.1; figure(1);
- 12 -
x1=sawtooth(2*pi*50*t); %ÔÚ[0,0.1]ʱ¼äÄÚ²úÉú5¸öÖÜÆÚµÄ¾â³Ý²¨ subplot(2,2,1) plot(t,x1)
x2=sawtooth(2*pi*50*t,0.5); %ÔÚ[0,0.1]ʱ¼äÄÚ²úÉú5¸öÖÜÆÚµÄÈý½Ç²¨ subplot(2,2,2) plot(t,x2)
x3=square(2*pi*50*t); %ÔÚ[0,0.1]ʱ¼äÄÚ²úÉú5¸öÖÜÆÚµÄ·½²¨ subplot(2,2,3) plot(t,x3)
axis([0,0.1,-1.2,1.2]) t=-4:0.1:4;
x4=sinc(t); %²úÉú³éÑùº¯Êý subplot(2,2,4) plot(t,x4)
ÔËÐнá¹ûÈçÏÂÉÏͼ¡£ ¡ì5-2 ÐòÁеIJÙ×÷
ÔÚÊý×ÖÐźŴ¦ÀíÖлù±¾µÄÐòÁÐÔËËã¼°ÆäMATLABʵÏÖÈçϱí5-1Ëùʾ£º
±í5-1һЩ³£ÓõÄÐòÁÐÔËËã¼°ÆämatlabʵÏÖ
ÐÅºÅ¼Ó ÐÅºÅ³Ë Êý³Ë ÕÛµþ ³éÑùºÍ ³éÑù»ý ÐźÅÄÜÁ¿ ÐòÁÐÔËËã x(n)=x1(n)+x2(n) x(n)=x1(n)¡Áx2(n) y(n)=k¡Áx(n) y(n)=x(-n) n2ÆäMATLABʵÏÖ x=x1+x2 x=x1.*x2 y=k*x y=fliplr(x) y=sum(x(n1:n2)) y=prod(x(n1:n2)) Ex=sum(abs(x).^2)) y?y??x(n) n?n1n2?n?n1x(n) 2?Ex??n???x(n) 2ÐźŹ¦ÂÊ ¡ì5-3 ³£ÓÃÊý×ÖÐźŴ¦Àíº¯Êý
Px?1NN?1?n?0x(n) Px=sum(abs(x).^2))/n ¶ÔÓÚÏßÐÔÀëɢϵͳ£¬Æä±í´ï·½Ê½ÓжàÖÖ£º ´«µÝº¯Êý·¨ H(z)?b0?b1z?1?1???bMz???aNz?M?Na0?a1z
Á㼫µãÔöÒæ·¨ H(z)?K(z?y1)(z?y2)?(z?yM)(z?x1)(z?x2)?(z?xN)´øÓàʽµÄ²¿·Ö·Öʽչ¿ª·¨
rNr1r2 H(z)??????k1?k2z?1???kM?N?1z?(M?N)
?1?1?11?p1z1?p2z1?pNzNMk²î·Ö·½³Ì·¨ y(n)??ak?1y(n?k)?m?0?bmx(n?m)
Êý×ÖÐźŴ¦Àí¼´Ñо¿ÐźÅͨ¹ýϵͳºóµÄ±ä»¯£¬ÆäÖо³£Óõ½µÄº¯ÊýÓУº
- 13 -
1£® x=roots(a)
ÓûÇó¶àÏîʽy(z)=a0+a1z ¨C1+a2z ¨C2+? µÄ¸ù£¬¿ÉÓÃÃüÁîx=roots(a)À´ÊµÏÖ£¬ÆäÖÐa=[a0 , a1 , a2 , ?]ÊÇËüµÄϵÊýÏòÁ¿£¬x±ãÊÇy(z)µÄ¸ùÏòÁ¿¡£
Àý Çó¶àÏîʽy(z)=1-1.6z ¨C1+0.65z ¨C2-0.05z ¨C3µÄ¸ù¡£±à³ÌÔËÐÐÈçÏ£º >> a=[1, -1.6 , 0.65 , -0.05] ; x=roots(a)
x =
1.0000 0.5000
0.1000
´Ó¶øÔ¶àÏîʽ¿É±í´ïΪy(z)=(1-z ¨C1)(1-0.5z ¨C1)(1-0.1z ¨C1)¡£ 2£® b=poly(x)
ÓûÇó³öy(z)=(z-x1)(z-x2)?µÄ¶àÏîʽ±í´ï£¬¿ÉÓÃÃüÁîb=poly(x)À´ÊµÏÖ£¬ÆäÖÐx=[x1 , x2 , ?]ÊÇËüµÄ¸ùÏòÁ¿£¬bÊÇÓûÇó¶àÏîʽµÄϵÊýÏòÁ¿¡£ Àý ijÂ˲¨Æ÷µÄÁ㼫µãÔöÒæ·¨±í´ïʽΪH(z)?(z?0.1)(z?0.5)(z?1)£¬ÇóÆä´«µÝº¯Êý±í´ï
(z?0.3)(z?2)(z?5)ʽ¡£MATLAB³ÌÐò¼°ÔËÐнá¹ûÈçÏ£º
function [a,b]=fun2(x,y,k) b=k*poly(y); a=poly(x);
>> y=[0.1,0.5,1]; x=[0.3,2,5]; k=1; [ b, a]=fun2(y,x,k) b =
1.0000 -1.6000 0.6500 -0.0500 a =
1.0000 -7.3000 12.1000 -3.0000
?1?2?3´Ó¶øÂ˲¨Æ÷µÄ´«µÝº¯Êý±í´ïʽΪH(z)?1?1.6z?0.65z?0.05z ¡£
?1?2?31?7.3z?12.1z?3.0z3£®[r , p , k] = residuez(b , a)
ÓÉ´«µÝº¯Êý±í´ïʽÇó³ö´øÓàʽµÄ²¿·Ö·Öʽչ¿ªÊ½Ê±¿ÉÓÃÃüÁî[r, p , k] = residuez(b , a) À´ÊµÏÖ£¬ÆäÖÐb¡¢a·Ö±ðÊÇÔϵͳ´«µÝº¯Êý±í´ïʽÖеķÖ×Ó¡¢·ÖĸϵÊýÏòÁ¿£¬¶ør¡¢p¡¢k·Ö±ðÊǸÃϵͳµÄ´øÓàʽµÄ²¿·Ö·Öʽչ¿ªÊ½ÖеÄϵÊýÏòÁ¿¡£ Àý ¶Ô H(z)??4?8z?1×÷²¿·Ö·Öʽչ¿ª¡£³ÌÐòºÍÏÔʾÊä³öÈçÏ£º 1?6z?1?8z?2>> b=[-4 , 8] ; a=[1 , 6 , 8] ; [r , p , k]=residuez(b , a) r = -12 8 p = -4 -2 k =
[ ]
Õâ¾ÍÊÇ˵£¬ÏµÍ³µÄ²¿·Ö·Öʽչ¿ªÐÎʽΪ£º
H(z)??128¡£ ??1?11?4z1?2z?4£®y (n) = conv (x , h)
ÇóÁ½¸öÐòÁеÄÏßÐÔ¾í»ý y(n)?x(n)*h(n)?k????x(k)h(n?k) ¿ÉÖ±½Ó²ÉÓÃÃüÁîy (n) =
conv (x , h )À´ÊµÏÖ¡£ÆäÖÐÌØ±ðҪעÒâµÄÊÇ£¬º¯ÊýconvĬÈÏÐòÁдÓn = 0¿ªÊ¼¡£Èô{x (n) : nx1 ¡Ü
n ¡Ü nx2} , {h(n) : nh1 ¡Ü n ¡Ü nh2}£¬Ôò¾í»ý½á¹û{y (n) : ny1 ¡Ü n ¡Ü ny2}£¬ÆäÖÐny1= nx1+ nh1 , ny2= nx2+ ny2¡£
Àý ÒÑÖªx (n) = {3 , 4 , 5} , h (n) = {2 , 6 , 7 , 8}£¬ÇóËüÃǵÄÏßÐÔ¾í»ý¡£
>> x=[3,4,5]; h=[2,6,7,8]; n1=-1:1; n2=-1:2; y=conv(x,h) y =
- 14 -
6 26 55 82 67 40 >>nb3=n1(1)+n2(1);
>>ne3=n1(length(x))+n2(length(h)); >>n3=nb3:ne3 n3 =
-2 -1 0 1 2 3
¼´ÐòÁÐx(n)Óëh(n)µÄÏßÐÔ¾í»ýΪy(n)={6 , 26 , 55 , 82 , 67 , 40}¡£ 5£®X=fft(x , N) Óëx=ifft(X , N)
N?1²ÉÓÃFFTËã·¨¼ÆËãһάÐòÁÐx(n)µÄNµãÀëÉ¢Fourier±ä»»(DFT) X(k)??x(n)Wn?0nkN¿ÉÒÔ
Ö±½ÓÓÃÃüÁîX=fft (x , N)À´ÊµÏÖ£¬ÆäÄæÔËËãÓÃÃüÁîx = ifft(X , N)À´ÊµÏÖ¡£¼ÆËãÖÐÈôÐòÁÐx£¨»òX£©µÄ³¤¶È´óÓÚNʱ£¬½Ø¶Ïx£¨»òX£©£»·ñÔò²¹Áã¡£
Àý Ä£ÄâÐźÅx(t)=2sin(4¦Ðt)+5cos(8¦Ðt)£¬ÇóÆä64µãµÄDFTµÄ·ùÖµÆ×¼°ÏàλÆ×¡£ MATLABʵÏÖ£ºfunction y=fun3(N)
n=0:N-1; t=0.01*n; q=n*2*pi/N; x=fun30(t); y=fft(x,N); subplot(3,1,1);
plot(t,x); title('ÔÐźÅ'); grid subplot(3,1,2);
plot(q,abs(y)); title('·ùÖµ'); grid subplot(3,1,3);
plot(q,angle(y));title('Ïàλ'); grid Function x=fun30(t)
x=2*sin(4*pi*t)+5*cos(8*pi*t); >>y=fun3(64);
6£®[H , W] = freqz (b , a , n , Fs)
º¯Êýfreqz»ùÓÚFFTËã·¨¼ÆËãÒÔ´«µÝº¯ÊýÐÎʽ±í´ïµÄÊý×ÖÂ˲¨Æ÷µÄƵÂÊÏìÓ¦¡£ÃüÁîfreqz (b , a , N , Fs)Äܹ»×Ô¶¯»æÖÆÒÔb¡¢aΪϵÊýµÄÊý×ÖÂ˲¨Æ÷µÄNµã·ùƵºÍÏàÆµÇúÏß(FsÊdzéÑùƵÂÊ£¬´ËÏî¿Éȱʡ)£¬ÃüÁî[H , w] = freqz (b , a , n)¼ÆËã²¢·µ»ØÊý×ÖÂ˲¨Æ÷µÄNµãƵÂÊÏìÓ¦H (abs ( H ) )ÊÇ·ùƵÏìÓ¦£¬angle (H)ÊÇÏàÆµÏìÓ¦£©£¬ÏàÓ¦µÄN¸ö·Ö²¼ÔÚ(0~¦Ð)·¶Î§Ä򵀮µÂʵã¼Ç¼ÔÚwÖС£
Àý »æÖÆÏµÍ³H(z)?1µÄ·ùƵºÍÏàÆµÌØÐÔÇúÏß¡£
1?0.9z?1>> b=1; a=[1,-0.9]; freqz(b , a , 512)
- 15 -
Ïà¹ØÍÆ¼ö£º