Êý×ÖÐźŴ¦ÀíʵÑé½²Ò壨ÐÞ¶©°æ£© ÏÂÔØ±¾ÎÄ

Êý×ÖÐźŴ¦ÀíʵÑé½²Òå

Îå¡¢²Î¿¼³ÌÐò

1¡¢¸ø³öÒ»¾ØÐÎÐòÁУ¬²¢ÇÒ¸ø³öÆäƵÆ×ÇúÏß¡£ ³ÌÐòÈçÏ£º

M=4;N=2*M+1;T=0.5;n=-4*M:4*M;

x=[zeros(1,3*M),ones(1,N),zeros(1,3*M)]; % ¸ø³öÊäÈëÐòÁÐ w=[-15:0.1:15]+1e-10;

X=sin(0.5*N*w*T)./sin(0.5*w*T); % ¸ø³öƵÆ×ÐòÁÐ subplot(1,3,1),stem(n,x,'.') % »­³öÊäÈëÐòÁÐ axis([-20,20,-0.1,1.1]),grid on xlabel('n'),title('(a) ÐòÁзù¶È')

subplot(1,3,2),plot(w,X),grid on % »­³öƵÆ×ÐòÁÐ xlabel('\\Omega'),title('(b) ·ùÆµÌØÐÔ')

subplot(1,3,3),plot(w,X),grid on % ¸Ä±äºáÖá±ÈÀý£¬»­³öƵÆ×ÐòÁÐ v=axis;axis([-pi/T,pi/T,v(3),v(4)])

xlabel('\\Omega'),title('(c) ºáÖá·Å´óºó·ùÌØÐÔ')

set(gcf,'color','w') % ÖÃͼÐα³¾°É«Îª°×

2¡¢ ͼʾÀíÏëµÍͨÂ˲¨Æ÷µÄƵÂÊÌØÐÔÇúÏߣ¬²¢ÓÃIDTFTÇó³öËüµÄ·´±ä»»¡£ ³ÌÐòÈçÏ£º clear,close all

wc=input('wc= £¨·¶Î§´Ó0µ½pi)'); % µÍͨÂ˲¨Æ÷µÄ½ØÖ¹ÆµÂÊ n=[-10:10]+1e-10;

10

Êý×ÖÐźŴ¦ÀíʵÑé½²Òå

hd=sin(n*wc)./(n*pi); % ÀíÂ۵ķ´±ä»»Âö³åÐòÁÐ subplot(1,2,1),

plot([-pi,-wc,-wc,wc,wc,pi],[0,0,1,1,0,0]) % »­³öÀíÏëÆµÂÊÏìÓ¦ xlabel('ƵÂÊ£¨1/Ã룩'),ylabel('·ù¶È') axis([-pi,pi,-0.1,1.1]),grid on

subplot(1,2,2),stem(n,hd),grid on % »­³ö¶ÔÓ¦µÄÂö³åÐòÁÐ xlabel('n'),ylabel('ÐòÁÐ')

axis([-10,10,-0.1*wc,0.4*wc]) % È·¶¨Êʵ±µÄ×ø±ê±ÈÀý³ß set(gcf,'color','w') % ÖÃͼÐα³¾°É«Îª°×

11

Êý×ÖÐźŴ¦ÀíʵÑé½²Òå

ʵÑéÈý ÀëÉ¢¸µÀïÒ¶±ä»»DFT¼°IDFT

Ò»¡¢ÊµÑéÄ¿µÄ

1¡¢ÔÚÀíÂÛѧϰµÄ»ù´¡ÉÏ£¬Í¨¹ý±¾ÊµÑ飬¼ÓÉî¶ÔDFTµÄÀí½â£¬ÊìϤDFT×Ó³ÌÐò¡£ 2¡¢ÕÆÎÕ¼ÆËãÀëÉ¢ÐźÅDFTµÄ·½·¨¡£

¶þ¡¢ÊµÑéÔ­ÀíÓë·½·¨

(Ò») DFTºÍIDFTµÄ¶¨Òå¡£ 1¡¢DFTµÄ¶¨Òåʽ£º

knX(k)??x(n)WNn?0N?1

0?k?N?1

2¡¢IDFTµÄ¶¨Òåʽ£º

1x(n)?N 1¡¢DFTËùÓõÄMATLAB³ÌÐò

dft.m

function[Xk]=dft(xn,N) %¶¨ÒåDFT¡£ %[Xk]=dft(xn,N)

?knX(k)W?Nn?0N?1

0?n?N?1

(¶þ) DFTºÍIDFTËùÓõÄMATLAB³ÌÐò¡£

%Xk=DFT coeff.array over 0<=k<=N-1 %xn=N-point finite-duration sequence %N=LENGTH of DFT n=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n¡¯*k; WNnk=WN.^nk; Xk=xn*WNnk;

2¡¢IDFTËùÓõÄMATLAB³ÌÐò

12

Êý×ÖÐźŴ¦ÀíʵÑé½²Òå

idft.m

function[xk]=idft(Xk,N) %¶¨ÒåIDFT¡£ %[xn]=idft(Xk,N)

%Xk=DFT coeff.array over 0<=k<=N-1 %xn=N-point finite-duration sequence %N=LENGTH of DFT N=[0:1:N-1]; k=[0:1:N-1]; WN=exp(-j*2*pi/N); nk=n¡¯*k; WNnk=WN.^(-nk); xn =( Xk *WNnk)/N;

Èý¡¢ÊµÑéÄÚÈݼ°²½Öè

1¡¢Èôx(n)?cos(n?)ÊÇÒ»¸öN=12µÄÓÐÏÞ³¤ÐòÁУ¬¼ÆËãÆäDFT²¢»­³öͼÐΣ» 62¡¢ÓÃMATLAB¼ÆË㣨1£©Ìâ½á¹ûµÄIDFT²¢»­³öͼÐΣ»

3¡¢Èôx(n)?cos(0.48?n)?cos(0.52?n)¡£µ±0?n?10ʱ£¬Çóx(n)µÄDFT X(k)£» 4¡¢½«£¨3£©ÌâÖеÄx(n)ÒÔ²¹Á㷽ʽ¼Ó³¤µ½0?n?100£¬Çóx(n)µÄDFT X(k)£» 5¡¢½«£¨3£©ÌâÖеÄx(n)¼Ó³¤µ½0?n?100£¬Çóx(n)µÄDFT X(k)¡£

ËÄ¡¢ÊµÑé˼¿¼

1¡¢ËµÃ÷DFTºÍDTFTÓÐÊ²Ã´Çø±ðºÍÁªÏµ£¿

2¡¢ËµÃ÷ÌâÈý¡¢£¨2£©ÄÜ·ñ»Ö¸´Èý¡¢£¨1£©µÄx(n),Ϊʲô£¿ 3¡¢ËµÃ÷ÌâÈý¡¢£¨1£©£¨2£©£¨3£©µÄ½á¹ûΪʲô²»Í¬£¿

Îå¡¢²Î¿¼³ÌÐò

1¡¢»ù±¾ÐòÁеÄÀëÉ¢¸µÀïÒ¶±ä»»¼ÆËã¡£ ³ÌÐòÈçÏ£º clear;close all N=16; N1=8;

%²úÉúÐòÁÐx1(n),¼ÆËãDFT[x1(n)] n=0:N-1;

x1n=exp(j*pi*n/8); %²úÉúx1(n)

13