DSPʵÑ鱨¸æB13011025·ÖÎö ÏÂÔØ±¾ÎÄ

´ð£º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;