´ð£ºDTFT ÊǹØÓÚ ?µÄÖÜÆÚº¯Êýô£¿ÊÇÖÜÆÚº¯Êý ÖÜÆÚÊÇ - 2¦Ð
ÏàλÆ×ÖÐÌø±äµÄÔÒòÊÇ - ¶ÔÏàλ½øÐйéÒ»»¯¡£
ʵÑéÃû³Æ£ºÀëÉ¢¸µÁ¢Ò¶±ä»»ºÍz±ä»»
ʵÑéÄ¿µÄºÍÈÎÎñ£º
ÕÆÎÕÀëÉ¢¸µÁ¢Ò¶±ä»»£¨DFT£©¼°Äæ±ä»»£¨IDFT£©¡¢z±ä»»¼°Äæ±ä»»µÄ¼ÆËãºÍ·ÖÎö¡£ÀûÓÃMatlabÓïÑÔ£¬Íê³ÉDFTºÍIDFTµÄ¼ÆËã¼°³£ÓÃÐÔÖʵÄÑéÖ¤£¬ÓÃDFTʵÏÖÏßÐÔ¾í»ý£¬ÊµÏÖz±ä»»µÄÁ㼫µã·ÖÎö£¬ÇóÓÐÀíÄæz±ä»»¡£ ʵÑéÄÚÈÝ£º
DFTºÍIDFT¼ÆË㣺 Q3.23¡«3.24
DFTµÄÐÔÖÊ£º Q3.26~3.29£¬Q3.36£¬Q3.38£¬Q3.40 z±ä»»·ÖÎö£ºQ3.46¡«3.48 Äæz±ä»»£ºQ3.50
ʵÑé¹ý³ÌÓë½á¹û·ÖÎö£º¡²Î¼ûʵÑéÒ»¸ñʽ¡
Q3.23±àдһ¸öMATLAB³ÌÐò£¬¼ÆËã²¢»³ö³¤¶ÈΪNµÄLµãÀëÉ¢¸µÀïÒ¶±ä»»X[k]µÄÖµ£¬ ÆäÖÐL¡ÝN£¬È»ºó¼ÆËã²¢»³öLµãÀëÉ¢¸µÀïÒ¶Äæ±ä»»X[k]¡£¶Ô²»Í¬³¤¶ÈNºÍ²»Í¬µÄÀëÉ¢¸µÀïÒ¶±ä»»³¤¶ÈL£¬ÔËÐгÌÐò¡£ÌÖÂÛÄãµÄ½á¹û¡£
clf; N=200; L=256; nn=[0:N-1];
kk=[0:L-1];
xR=[0.1*(1:100) zeros(1,N-100)]; xI=[zeros(1,N)]; x=xR+i*xI; XF=fft(x,L); subplot(3,2,1); grid; plot(nn,xR); grid;
title('Re\\{x[n]\\}'); xlabel('Time index n'); ylabel('Amplitude'); subplot(3,2,2); plot(nn,xI); grid;
title('Im\\{x[n]\\}'); xlabel('Time index n'); ylabel('Amplitude'); subplot(3,2,3); plot(kk,real(XF)); grid;
title('Re\\{x[n]\\}'); xlabel('Frequency index k'); ylabel('Amplitude'); subplot(3,2,4); plot(kk,imag(XF)); grid;
title('Im\\{x[n]\\}'); xlabel('Frequency index k'); ylabel('Amplitude'); xx=ifft(XF,L); subplot(3,2,5); plot(kk,real(xx)); grid;
title('Real part of IDFT\\{x[n]\\}'); xlabel('Time index n'); ylabel('Amplitude'); subplot(3,2,6); plot(kk,imag(xx)); grid;
title('Imag part of IDFT\\{x[n]\\}'); xlabel('Time index n'); ylabel('Amplitude');
Q3.26ÔÚº¯ÊýcircshiftÖУ¬ÃüÁîremµÄ×÷ÓÃÊÇʲô£¿ ´ð£ºRem(x,y)ÊÇÓÃy¶ÔxÇóÓàÊýº¯Êý¡£
Q3.27 ½âÊͺ¯ÊýcircshiftÔõÑùʵÏÖÔ²ÖÜÒÆÎ»ÔËËã¡£
´ð£ºÔÚÊäÈëÐòÁÐxÓÉMµÄλÖÿªÊ¼±»Ñ»·ÒÆÎ»£¬Èç¹ûM>0£¬Ôòcirclshiftɾ³ý´ÓʸÁ¿x×î×ó±ß¿ªÊ¼µÄM¸öÔªËØºÍËüÃǸ½¼ÓÔÚÓÒ²àµÄÊ£ÓàÔªËØ£¬ÒÔ»ñµÃÑ»·ÒÆÎ»ÐòÁС£Èç¹ûM<0£¬ÔòcirclshiftÊ×ÏÈͨ¹ýxµÄ³¤¶ÈÀ´ÃÖ²¹M£¬¼´ÐòÁÐx×îÓұߵij¤¶ÈµÄMÑù±¾´ÓxÖÐɾ³ýºÍ¸½¼ÓÔÚÆäÓàµÄM¸öÑù±¾µÄÓҲ࣬ÒÔ»ñµÃÑ»·ÒÆÎ»ÐòÁС£ Q3.28ÔÚº¯ÊýcirconvÖУ¬ÔËËã·û~=µÄ×÷ÓÃÊÇʲô£¿ ´ð£º¡°~=¡±±íʾ²»µÈÓÚ¡£
Q3.29½âÊͺ¯ÊýcirconvÔõÑùʵÏÖÔ²Öܾí»ýÔËËã¡£
´ð£ºÊäÈëʱÁ½¸ö³¤¶È¶¼ÎªLµÄÏòÁ¿x1ºÍx2£¬ËüÊǷdz£ÓÐÓõ͍ÆÚÑÓ³¤X2µÄº¯Êý¡£ÈÃx2p³ÉΪx2ÑÓ³¤ÎÞÏÞ³¤µÄÖÜÆÚµÄÐòÁС£´Ó¸ÅÄîÉϽ²£¬ÔÚ¶¨µãʱ¼äÉÏͨ¹ýʱÐò½»»»ºóµÄx2pµÄ³¤¶ÈL½»»»x2pÐòÁкÍx2trµÈÓÚ1µÄÔªËØ¡£È»ºóÔªËØ1ÖÁLµÄÊä³öÏòÁ¿yÊÇͨ¹ýÈ¡x1ºÍ»ñµÃµÄ³¤¶ÈΪLµÄshʸÁ¿Ö®¼äµÄÄÚ»ýµÃµ½Í¨¹ýÑ»·ÓÒÒÆµÄʱ¼ä·´×ªÏòÁ¿x2tr¡£¶ÔÓÚÊä³öÑù±¾Y[n]µÄ1¡ÜN¡ÜLʱ£¬ÓÒÑ»·ÒÆÎ»µÄÁ¿Îªn-1¸öλÖÃÉÏ¡£
Q3.30ͨ¹ý¼ÓÈëºÏÊʵÄ×¢ÊÍÓï¾äºÍ³ÌÐòÓï¾ä£¬Ð޸ijÌÐòP3.7£¬¶Ô³ÌÐòÉú³ÉµÄͼÐÎÖеÄÁ½¸öÖá¼Ó±ê¼Ç¡£ÄÄÒ»¸ö²ÎÊý¾ö¶¨Ê±ÒÆÁ¿£¿ÈôÊ±ÒÆÁ¿´óÓÚÐòÁг¤¶È£¬½«»á·¢Éúʲô£¿
function y = circshift(x,M) if abs(M) > length(x) M = rem(M,length(x)); end if M < 0
M = M + length(x); end
y = [x(M+1:length(x)) x(1:M)];
clf; M = 6;
a = [0 1 2 3 4 5 6 7 8 9]; b = circshift(a,M); L = length(a)-1; n = 0:L; subplot(2,1,1);
stem(n,a);axis([0,L,min(a),max(a)]); title('Original Sequence'); xlabel('time index k'); ylabel('a[n]'); subplot(2,1,2);
stem(n,b);axis([0,L,min(a),max(a)]);
title(['Sequence Obtained by Circularly Shifting by',num2str(M),'Samples']); xlabel('time index n'); ylabel('b[n]');
D¾ö¶¨Ê±ÒÆÁ¿£¬×óÒÆMλ¡£
Q3.31ÔËÐÐÐ޸ĺóµÄ³ÌÐò²¢ÑéÖ¤Ô²ÖÜÊ±ÒÆÔËËã¡£ Ð޸ĺóµÄ³ÌÐòÈçÏ£º
Q3.32ͨ¹ý¼ÓÈëºÏÊʵÄ×¢ÊÍÓï¾äºÍ³ÌÐòÓï¾ä£¬Ð޸ijÌÐòP3.8£¬¶Ô³ÌÐòÉú³ÉµÄͼÐÎÖеÄÁ½¸öÖá¼Ó±ê¼Ç¡£Ê±ÒÆÁ¿ÊǶàÉÙ£¿
clf;