第 1 页 共 14 页 实验三:离散时间信号的频域分析 一.实验目的 1.在学习了离散时间信号的时域分析的基础上,对这些信号在频域上进行分析,从而进一步研究它们的性质。 2.熟悉离散时间序列的3 种表示方法:离散时间傅立叶变换(DTFT),离散傅立叶变换(DFT)和 Z 变换。 二.实验相关知识准备 1.用到的MATLAB 命令 运算符和特殊字符: < > .* ^ .^ 语言构造与调试: error function pause 基本函数: angle conj rem 数据分析和傅立叶变换函数: fft ifft max min 工具箱: freqz impz residuez zplane 三.实验内容 1. 离散傅立叶变换 在MATLAB 中,使用 fft 可以很容易地计算有限长序列 x[n]的离散傅立叶变换。此函数有两种形式: y=fft(x) y=fft(x,n) 求出时域信号x 的离散傅立叶变换 n 为规定的点数,n 的默认值为所给 x 的长度。当 n 取 2 的整数幂时变换的速度最快。通常取大于又最靠近 x 的幂次。(即一般在使用 fft 函数前用n=2^nextpow2(length(x)) 得到最合适的n)。 第 2 页 共 14 页 当 x 的长度小于 n 时,fft 函数在 x 的尾部补 0,以构成长为 n 点数据。 当 x 的长度大于 n 时,fft 函数将序列 x 截断,取前 n 点。 一般情况下,fft 求出的函数多为复数,可用 abs 及 angle 分别求其幅度和相位。 注意:栅栏效应,截断效应(频谱泄露和谱间干扰),混叠失真 例 3-1: fft 函数最通常的应用是计算信号的频谱。考虑一个由 100hz 和200hz 正弦信号构成的信号,受零均值随机信号的干扰,数据采样频率为 1000hz。通过 fft 函数来分析其信号频率成分。 t=0:0.001:1;%采样周期为0.001s,即采样频率为1000hz x=sin(2*pi*100*t)+sin(2*pi*200*t)+1.5*rand(1,length(t));%产生受噪声污染的正弦波信号 subplot(2,1,1); plot(x(1:50));%画出时域内的信号 y=fft(x,512);%对x进行512点的fft f=1000*(0:256)/512;%设置频率轴(横轴)坐标,1000为采样频率 subplot(2,1,2); plot(f,y(1:257));%画出频域内的信号 实验内容 3-2:频谱泄漏和谱间干扰 假设现有含有三种频率成分的信号 x(t)=cos(200πt)+sin(100πt)+cos(50πt) 用 DFT 分析 x(t)的频谱结构。选择不同的截取长度,观察 DFT 进行频谱分析十存在的截断效应。试用加窗的方法减少谱间干扰。请分析截取长度对频谱泄漏和频率分辨率的影响,分析不同窗...