📄 q716.m
字号:
%《MATLAB及在电子信息课程中的应用》第七章例7.16程序q716
% 验证N点DFT的物理意义
% 电子工业出版社出版 陈怀琛 吴大正 高西全合著 2001年10月初版,2003年7月第二版
%
% 计算并图示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))
set(gcf,'color','w') % 设置图形背景色为白色
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点离散频谱幅度
set(gcf,'color','w') % 设置图形背景色为白色
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点离散频谱幅度
set(gcf,'color','w') % 设置图形背景色为白色
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 + -