本章介绍信号的傅里叶变换和系统的频域分析以及如何用MATLAB进行信号和系统的频域分析。4.1节简要介绍频域分析用到的MATLAB函数。4.2节介绍用MATLAB求周期信号的傅里叶级数。4.3节介绍用MATLAB求连续时间信号的傅里叶变换。4.4节介绍用MATLAB求离散时间信号的傅里叶变换。4.5节为系统的频域分析实例。 信号与系统的频域分析涉及到的MATLAB函数主要有: fft ifft freqs freqz 下面简要介绍这些函数。 1.fft 函数fft用来计算离散傅里叶变换,这个函数能够进行序列的快速傅里叶变换。如果把序列x(n)的快速傅里叶变换的结果存在向量X中,可以表示为 X=fft(x) 为了提高计算效率,向量x的长度取2的幂次,如64、128、512、1024、2048等。为了得到适当的长度,可以将向量x补零。MATLAB可以用下面的命令自动完成这个工作,其中N要定义为2的幂次: X=fft(x,N) 向量x的长度越长,快速傅里叶变换的坐标网格就越好。 2.ifft ifft函数用于计算傅里叶反变换: x=ifft(X) 3.freqs 函数freqs可以直接计算系统的频率响应。要求系统的频率响应,可以将系统的频率响应函数H(jω)的分子和分母的系数保存到向量num和den中。可以定义一个向量w包含需要计算频率响应的频率范围,例如w=a∶b∶c,其中a是最低频率,c是最高频率,b是频率增量。如果没有输出参数,直接调用 freqs(num,den,w) 则MATLAB会在当前绘图窗口自动画出幅频特性和相频特性的曲线。要是不定义w,命令 freqs(num,den) 自动选择画出H(jω)的频率范围。如果命令是 H=freqs(num,den,w) 向量H为返回值,包含的是w中每个频率点对应的频率响应值,它是一个复向量,如果需要得到系统的幅频特性和相频特性,还需要用abs和angle函数分别求得。 4.freqz 函数freqz可以用来计算离散系统的频率响应,即求得离散系统的冲激响应的离散时间傅里叶变换(DTFT)。将系统的频率响应函数H(ejω)的分子和分母的系数保存到向量num和den中,命令 [Homega]=freqz(num,den,N); 计算出在0和π之间的N个等分频率(即ωk=(π/N)k,0≤k≤N-1)上的频率响应H(ejω)。这里系数向量num和den的格式与函数filter的要求相同。输出向量H保存的是H(ejωk),向量omega保存的是频率ωk。如果需要得到系统的幅频特性和相频特性,可以用abs(H)和angle(H)分别求得。命令 [Homega]=freqz(num,den,N,′whole′); 能计算出在0和2π之间的N个等分频率(即ωk=(2π/N)k,0≤k≤N-1)上的频率响应H(ejω)。如果需要自己定义所需的频率范围,可以用命令 H=freqz(num,den,omega); 例如omega=-pi∶2*pi/100∶pi。 如果连续信号x(t)是周期信号,那么对于一切t,存在某个正值T,有(4.1)满足上式的最小正值T称为信号的基本周期,而ω0=2π/T称为基本频率。 周期信号可以表示为三角函数或复指数函数的线性组合,称为周期信号x(t)的傅里叶级数。周期信号x(t)表示为复指数信号和的形式为(4.2)式中,c0是实数,ck(k≠0)一般是复数。复指数项系数ck可以由下式计算:(4.3) c0项是常数项,即x(t)的直流分量,可以把式(4.3)简化为下式求得:(4.4)周期信号x(t)表示为三角函数和的形式为(4.5) 式中,c0是信号的直流分量,是信号的谐波分量,|ck|和φk分别为ck的模和辐角。 从式(4.2)至式(4.5)可以看出,周期信号的傅里叶级数是把信号表示为不同频率的正弦信号或复指数信号的叠加,这些分量的振幅和相位都是频率的函数,随着频率的变化而变化。以ω作为变量,可以画出振幅|ck|或2|ck|随ω变化的曲线,以及相位随ω变化的曲线。由于x(t)的频率分量是离散的,在每个频率点上可以画一条对应ωk的垂线,线的长度就代表振幅或相位的大小,这种图称为线谱图。振幅随ω变化的线谱图称为振幅频谱;相位随ω变化的线谱图称为相位频谱。通过周期信号的谱图,可以从频率分量的角度来分析信号。 例4-1 绘制周期锯齿信号的频谱图。
信号ctft频谱matlab,信号与系统实训指导(MATLAB)第4章信号和系统的频域分析.ppt
最新推荐文章于 2022-10-07 17:52:25 发布