正在加载图片...
第2章时域中的离散信号和系统 0≤k≤N-1 其中W=xp(2πj/N)是一个相角2π/N为的单位向量,也称为旋转因子。()就 称为x()的离散傅里叶变换(DFT),也就是x)的频谱。用矩阵来表示,可写成: 1 1 1 X(0 型 形 「x0) O) =1 部 形w -W.x X(N-1] W(N-1IN-1 x(N-1) W 所以信号频谱的计算,可以简单地用一个矩阵乘法来完成。信号是NX1维数组,矩阵 W称为DFT矩阵,它是NXN维的复数阵。把矩阵乘法看作一个变换,我们就可以把频谱计 算看作信号从时域到频域的线性变换。 这个矩阵运算可用下列几条MATLAB语句来实现,程序名为pla7O4。 m=input xn=长度为N的数组) .N=1 ongth(m)%输入据 n=[0:1:N-1]:k=[0:1:N-1: %没定n和k的行向量 J*21/0 Nk=N.·nk %求出W 含k值的N乘N维的整数矩阵 从=Xn*Nk 多求出离散傅里叶级数系数 两条语句无须解释。第三条语句把n转为列向量',再与行向量k做矩阵乘,它产 生的是 整数矩阵: 0 2 [0.12.N-11■ 0 2x(N-D) W-1 0N-1.N-1D×N-1D 这个整数方阵恰好是算式X=Wx中W矩阵的指数部分第四条语句就产生了矩阵, 而最后一条语句就完成了DFS的全部运算。由于实际上离散傅里叶级数并不太用到。它已 被下节将介绍的离散傅里叶变换取代,而且两者的计算程序是完全相同的。所以如果写成 MATLAB子程序,它可以命名为DFT。 在这5行DFT子程序前面,加上输入语句: n=input ('xn=')N=length(xn); 在子程序后面,加上绘图语句: 0.5 就得到本题的程序p1a604。 100 200 100 运行D1a604, 并按提示输入x,即可在子图1 50 上得到x序列的波形 ,并在子图2 上得到此信号的幅 频特性。例如输入序列为 100 200 Xn=[ones(1,64),zeros(1,192)],则得到的时域 图7-3序列x()及其频诺 波形及其频谱图如图7-3。 计算每一个DFT分量(),需要做W次复数乘法和:1次复数加法。而要完成整个 DFT,求出K,则需要做XW次复数乘法和(心1)次复数加法。另外,它占的数据存储量 为仪M。在频谱计算中,N的典型值是1024。所以参与运算的数据达百万,需要的存储量第 2 章 时域中的离散信号和系统 ·3· 3 1 ( ) ( ) 0 1 N kn N n k x n W k N − X =   −  其中 W j N N = exp 2 / (  ) 是一个相角 2 /  N 为的单位向量,也称为旋转因子。X(k)就 称为 x(n)的离散傅里叶变换(DFT),也就是 x(n)的频谱。用矩阵来表示,可写成: 所以信号频谱的计算,可以简单地用一个矩阵乘法来完成。信号是 N×1 维数组,矩阵 W 称为 DFT 矩阵,它是 N×N 维的复数阵。把矩阵乘法看作一个变换,我们就可以把频谱计 算看作信号从时域到频域的线性变换。 这个矩阵运算可用下列几条 MATLAB 语句来实现,程序名为 pla704。 xn=input('xn=(长度为 N的数组) '), N=length(xn); % 输入数据 n = [0:1:N-1]; k = [0:1:N-1]; % 设定 n 和 k 的行向量 WN = exp(-j*2*pi/N); % 设定 Wn 因子 nk = n'*k; % 产生一个含 nk 值的N 乘N 维的整数矩阵 WNnk = WN .^ nk; % 求出 W 矩阵 Xk = xn * WNnk % 求出离散傅里叶级数系数 plot(k,Xk) % 画出幅频特性 前两条语句无须解释。第三条语句把 n 转为列向量 n’,再与行向量 k 做矩阵乘,它产 生的是一个整数矩阵: 这个整数方阵恰好是算式 中 W 矩阵的指数部分。第四条语句就产生了W 矩阵, 而最后一条语句就完成了 DFS 的全部运算。由于实际上离散傅里叶级数并不太用到。它已 被下节将介绍的离散傅里叶变换取代,而且两者的计算程序是完全相同的。所以如果写成 MATLAB 子程序,它可以命名为 DFT。 在这 5 行 DFT 子程序前面,加上输入语句: xn=input('xn= '); N=length(xn); 在子程序后面,加上绘图语句: subplot(2,1,1),stem(xn,'.'); subplot(2,1,2),stem(abs(Xk),'.') 就得到本题的程序 pla604。 运行 pla604,并按提示输入 xn,即可在子图 1 上得到 xn 序列的波形,并在子图 2 上得到此信号的幅 频特性。例如输入序列为 xn=[ones(1,64),zeros(1,192)],则得到的时域 波形及其频谱图如图 7-3。 计算每一个 DFT 分量 X(i),需要做 N 次复数乘法和 N-1 次复数加法。而要完成整个 DFT,求出 X,则需要做 N×N 次复数乘法和 N(N-1)次复数加法。另外,它占的数据存储量 为 N×N。在频谱计算中,N 的典型值是 1024。所以参与运算的数据达百万,需要的存储量 0 100 200 300 0 0.5 1 0 100 200 300 0 50 100 图 7-3 序列 x(n)及其频谱
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有