- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB离散傅立叶变换的应用
一、序列的移位和周期延拓运算。
已知 x(n) (0.8)nR8(n),利用 MATLAB 生成并图示序列 x(n),x(n m), x((n))8RN(n)和 x((n m))8RN(n),其中 N 24,0 m N,x((n))8表示 x(n)以8为周期的延拓。
解:MATLAB程序清单如下:
N=24;
M=8;
m=3;%设移位值为3
n=0:N-1;
xn=0.8.人n.*(n=0 *M); % 产生序列 x(n)
subplot(3,1,1);stem( n,x n,.);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-le ngth(xm))];
subplot(3,1,3);stem( n,xm,.);grid;
axis([0 length(xm),0 1]);title(圆周移位序列 x(n+m));
、利用 MATLAB 验证N点DFT的物理意义。
已知有限长序列x(n)X(ejw
已知有限长序列x(n)
X(ejw)
R4(n),其离散时间傅立叶变换(DTFT )
DFT[x( n)]
j4
试绘制出X(ej )幅度频谱和相位频谱,并分别计算 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 *4]; % 产生序列 x(n)
Xk仁fft(xn,N1); % 计算序列 x(n)的 8 点 DFT
Xk2=fft(xn,N2); % 计算序列 x(n)的 16 点 DFT
subplot(3,1,1);
plot(w/pi,abs(Xw)); % 绘制序列x(n)的DTFT的幅频曲线
grid;title(序列 x(n)的幅频曲线 |X(e%\omega})|);
subplot(3,1,2); stem(k1*2/N1,abs(Xk1),.);
grid;title(序列 x(n)的 8 点 DFT); subplot(3,1,3);stem(k2,abs(Xk2),.);
grid;title(序列 x(n)的 16 点 DFT);
% 也可以利用 MATLAB 中的 hold 命令,将上述 3 个图形绘制在一个图中,程序如下: 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 n4]; % 产生序列 x(n)
Xk仁fft(xn,N1); % 计算序列 x(n)的 8 点 DFT
Xk2=fft(xn,N2); % 计算序列 x(n)的 16 点 DFT
plot(w/pi,abs(Xw)); % 绘制序列x(n)的DTFT的幅频曲线
hold % 保持当前的图形窗口
H1=stem(k1*2/N1,abs(Xk1),o); set(H1,color,r)
H2=stem(k2*2/N2,abs(Xk2),*); set(H2,color,k);
% lege nd(|X(e%\omega})|,X_1(k),X_2(k));
上机练习题:
已知一个 12点的离散序列 x(n) {1,2,3,4,5,6,6,5,4,3,2,1} ,要求:
利用MATLAB 计算序列的12点离散傅立叶变换(DFT) X(k),并绘出它的幅度和相
位图;
利用 MATLAB 计算序列的离散时间傅立叶变换 (DTFT) X(ej ), 并绘出它的幅度和相 位图;
利用 MATLAB 的 hold 命令,将上述两张幅度频谱图合成一张, 进行比较, 以验证 X(k) 是 X(e j ) 的抽样。
三、验证 DFT 的共轭对称性
分别以 x1(n)
文档评论(0)