第二章离散傅立叶变换2..ppt
文本预览下载声明
第2章 离散傅立叶变换 1. 引言 2. 周期序列的离散傅立叶级数(DFS) 3. 周期序列的离散傅立叶级数的性质 4. 有限长序列的离散傅立叶变换(DFT) 5. 有限长序列的离散傅立叶变换的性质 6. 利用离散傅立叶变换做谱分析 7. 利用离散傅立叶变换做线性卷积 2.4 有限长序列的离散傅立叶变换 我们知道周期序列实际上只有有限个序列值有意义。 2.4 有限长序列的离散傅立叶变换 2.4 有限长序列的离散傅立叶变换 一个有限长序列 x(n),长度为 N: 为了引用周期序列的概念,假定一个周期序列 ,它由长度为 N 的有限长序列 x(n) 延拓而成: 2.4 有限长序列的离散傅立叶变换 关于DFT/IDFT的矩阵形式 2.4 有限长序列的离散傅立叶变换 2.4 有限长序列的离散傅立叶变换 2.4 有限长序列的离散傅立叶变换 2.4 的要求: DFT的定义(计算公式); 周期性延拓 x((n))N 的含义及计算方法; 利用矩阵形式计算DFT及IDFT; DFT的计算机实现的三种方式: 1、直接根据公式计算: 1.直接根据公式计算: function[Am, pha] = dft1(x) N = length(x); w = exp(-j*2*pi/N); for k = 1:N sum = 0; for n = 1:N sum = sum + x(n) * w^((k-1)*(n-1)); end Am(k) = abs(sum); pha(k) = angle(sum); end 3. 调用FFT函数计算: function[Am, pha] = dft3(x) Xk = fft(x); Am = abs(Xk); pha = angle(Xk); x = [ones(1,8), zeros(1,248)]; t = cputime; [Am1,pha1] = dft1(x); t1 = cputime - t; n = [0:(length(x)-1)]; w = (2*pi/length(x))*n; figure(1) subplot(2,1,1), plot(w,Am1,b); title(Magnitude part); xlabel(frequency in radians); ylabel(|X(exp(jw))|); subplot(2,1,2), plot(w,pha1,r); grid; gtext(Phase part); xlabel(frequency in radians); ylabel(arg(X[exp(jw)]/radians)); dft1 dft2 FFT void __fastcall TForm1::Button1Click(TObject *Sender) { int i; double PI = 3.1415926; double ampY, data[256]; double fftRe[256], fftIm[256]; double amp[256], pha [256]; int Npt = 256; for( i=0; i Npt; i++ ) data[i] = 0.0; for( i=0; i 8; i++ ) data[i] = 1.0; Display_Curve(Chart1, Npt, data); fft( data, Npt, fftRe, fftIm ); /*计算幅度谱: */ for(i = 0; i Npt; i++) amp [i] = sqrt( fftRe[i]*fftRe[i] + fftIm[i]*fftIm[i]); /*计算幅度谱: */ for(i = 0; i Npt; i++) { if( fabs(fftRe[i])==0.0 fabs(fftIm[i])==0.0 ) { pha [i]=0.0; continue; } if( fabs(fftRe[i]) == 0.0 ) { if( fftIm[i] 0 ) pha [i] = PI * 0.5; else if( fftIm[i] 0 ) pha [i] = -P
显示全部