zzdft.m

来自「用MATLAB实现数字信号处理的程序」· M 代码 · 共 32 行

M
32
字号
%计算DFT的结果
%求x(n)在0——128之间的DFT的X(k)
N=128;
fs=100;
n=0:1:N-1;
f1=20;
f2=20.5;
f3=40;
xn=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)+sin(2*pi*f3*n/fs);
Xk=fft(xn);
AXk=abs(Xk(1:N/2));
figure(1),subplot(2,1,1),plot(n,xn);
k=(0:N/2-1)*fs/N;
subplot(2,1,2),plot(k,AXk);
%将x(n)以补零方式使其加长到0——512之间后求DTF的X(k)
M=512;
xn=[xn zeros(1,M-N)];
Xk=fft(xn);
AXk=abs(Xk(1:M/2));
m=0:1:M-1;
figure(2),subplot(2,1,1),plot(m,xn);
k=(0:M/2-1)*fs/M;
subplot(2,1,2),plot(k,AXk);
%求x(n)在0——512之间的DFT的X(k)
n=0:1:M-1;
xn=sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)+sin(2*pi*f3*n/fs);
Xk=fft(xn);
AXk=abs(Xk(1:M/2));
figure(3),subplot(2,1,1),plot(n,xn);
k=(0:M/2-1)*fs/M;
subplot(2,1,2),plot(k,AXk);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?