MATLAB 离散傅立叶变换的应用
一、序列的移位和周期延拓运算。
已 知 , 利 用 MATLAB 生 成 并 图
示序列
其中
解 :
MATLAB 程序清单如下:
N=24;
M=8;
m=3;% 设移位值为 3
n=0:N-1;
xn=0.8.^n.*(n>=0 & n<M); % 产生序列 x(n)
subplot(3,1,1);stem(n,xn,'.');grid;
axis([0 length(xn),0 1]);title('序列 x(n)');
xc=xn(mod(n,8)+1); % 产生序列 x(n)的周期延拓,求余后加 1 是因为
% MATLAB 矢量的下标从 1 开始
subplot(3,1,2);stem(n,xc,'.');grid;
axis([0 length(xc),0 1]);title('序列 x(n)的周期延拓序列');
xm=[xn(m+1:M) xn(1:m)]; % 产生圆周移位序列 xm=x((n+m))NRN (n)
xm=[xm zeros(1,N-length(xm))];
subplot(3,1,3);stem(n,xm,'.');grid;
axis([0 length(xm),0 1]);title('圆周移位序列 x(n+m)');
二、利用 MATLAB 验证 N 点 DFT 的物理意义。
试绘制出
幅度频谱和相位频谱,并分别计算 N=8 和 N=16 时的 DFT。
解:MATLAB 程序清单如下:
clf % 清除所有的图形窗口
N1=8;N2=16; % 设置两种 DFT 的长度
n=0:N1-1;
k1=n;k2=0:N2-1;
w=(0:2047)*2*pi/2048;
Xw=(1-exp(-j*4*w))./(1-exp(-j*w)); % 对 x(n)的频谱采样 2048 点
xn=[n>=0 & n<4]; % 产生序列 x(n)