?? q716.m
字號:
%《MATLAB在電子信息課程中的應用》第七章例7.16程序q716
% 驗證N點DFT的物理意義
% 電子工業出版社出版 陳懷琛 吳大正 高西全合著 2001年10月
% 計算并圖示DFT[x(n)]
clear;close all
N1=8;N2=16;%兩種FFT變換長度
n=0:N1-1;
w=2*pi*(0:2047)/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w)); %對x(n)的頻譜函數采樣2048點
subplot(3,2,1);plot(w/pi,abs(Xw))
title('x(n)的幅頻曲線');xlabel('ω/π');ylabel('幅度');
subplot(3,2,2);plot(w/pi,angle(Xw))
title('x(n)的相頻曲線');axis([0,2,-pi,pi]);line([0,2],[0,0])
xlabel('ω/π');ylabel('相位(rad)');
xn=[(n>=0)&(n<4)]; %產生x(n)=xn
X1k=fft(xn,N1); %計算N1點DFT[x(n)]
X2k=fft(xn,N2); %計算N2點DFT[x(n)]
figure(2)
k1=0:N1-1;
subplot(3,2,1);stem(k1,abs(X1k),'.') % 畫N1點離散頻譜幅度
title('N1點DFT[x(n)]=X1(k)')
xlabel('k (ω=2πk/N1)');ylabel('|X1(k)|');
hold on
plot(N1/2*w/pi,abs(Xw)) % 疊加上連續頻譜幅度
subplot(3,2,2);stem(k1,angle(X1k),'.') % 畫N1點離散頻譜相位
title('X1(k)的相位');axis([0,N1,-pi,pi]);line([0,N1],[0,0])
xlabel('k (ω=2πk/N1)');ylabel('相位 (rad)');
hold on
plot(N1/2*w/pi,angle(Xw)) % 疊加上連續頻譜相位
figure(3)
k2=0:N2-1;
subplot(3,2,1);stem(k2,abs(X2k),'.') % 畫N2點離散頻譜幅度
title('N2點DFT[x(n)]=X2(k)');axis([0,N2,0,max(abs(X2k))]);
xlabel('k (ω=2πk/N2)');ylabel('|X2(k)|');
hold on
plot(N2/2*w/pi,abs(Xw)) % 疊加上連續頻譜幅度
subplot(3,2,2);stem(k2,angle(X2k),'.') % 畫N2點離散頻譜相位
title('X2(k)的相位');axis([0,N2,-pi,pi]);line([0,N2],[0,0])
xlabel('k (ω=2πk/N2)');ylabel('相位 (rad)');
hold on
plot(N2/2*w/pi,angle(Xw)); % 疊加上連續頻譜相位
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -