傅里叶级数在数字信号处理中的应用

科技信息

高校理科研究

傅里叶级数在数字信号处理中的应用

中北大学信息与通信工程学院

姜世杰

余红英

[摘要]快速傅里叶变换是针对于将一个大点数N的DFT分解成若干个小点的DFT的组合的算法[1],主要是巧妙的利用了Wn因

使运算量大大降低,节省了大量时间。快速傅里叶变换的算法已经作为一种强子的周期性和对称性,构造出的一种DFT快速算法。

[2]

有力的工具运用到信号处理领域中,大大推动了数字信号处理技术的进步。本论文比较详细的阐述了快速傅里叶算法的数学原理、运算特点并完善的运用到Matlab,实现先好的仿真处理。[关键词]离散傅里叶变换快速傅里叶变换Matlab

1.引言

DFT在数字信号处理中得到了广泛的应用,其把信号从时域转化到频域上加以分析其频率与相位的变化关系,因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。然而DFT算法是以庞大的数学计算量作为代价。FFT的发现,使计算量大大缩减。它的发现是数字信号处理发展史上的一个转折点,也可以说是一个里程碑的作用。

2.FFT的算法推导

我们知道离散傅里叶变换对是如下形式:

N-1

N+kNk

WN=WN·WN=-WN(10)(11)(12)代入(6)中

(12)

DFT:X(k)=Σx(n)W

n=0

N-1

nkN

k=0,1,…,N-1(1)

-nk

IDFT:x(n)=1ΣX(k)WNn=0,1,…,N-1(2)

n=0

m为正整数,若不满足此关系我们可以相设序列x(n)的长度N=2m,

应的补零。

首先,我们将x(n)按照n的奇、偶将其分成两个子列,即:x1(r)=x(2r)

r=0,1,(3)…N-1

r)=x(2r+1)x2(所以(1)式可变为:

Σ

N-1

X(k)=DFT[x(n)]=Σx(n)W

n=0

N-1

nkN

N-1=Σx(2r)W

r=0

2rkN

N-1

+Σx(2r+1)W

r=0

(2r+1)kN

偶子列

=Σx1(r)(WN)+W利用W

r=0

nkN

2rk

kNN-1奇子列

(4)

Σx(r)(W

r=0

2rkN

(13)前半部分:X(k)=X1(k)+WNX2(k)k=0,1…N-1

后半部分:XN+k)=X1((14)k)-WNX2(k)k=0,1…N-1

综上,我们只要求出-1上各个整数k对应的X1(k)、X2(k)值,

即可求出整个区间的X(k)值,显然这样可以大大节省计算时间。

3.Matlab实现已知x(n)是两个正弦信号与白噪声的叠加,利用Matlab对其进行频谱分析。

clearall;

%产生两个正弦加白噪声;N=256;f1=.1;f2=.2;fs=1;a1=5;a2=3;w=2*pi/fs;x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);%应用FFT求频谱;subplot(3,1,1);plot(x(1:N/4));f=-0.5:1/N:0.5-1/N;X=fft(x);y=ifft(X);subplot(3,1,2);plot(f,fftshift(abs(X)));subplot(3,1,3);plot(real(x(1:N/4)));

≤≤

的周期性:

-j∏

-j∏由于WN=e

所以WN=e

N-1-j∏2=e=W

N-1N(5)

(5)式代入(4)式化简得:r)WX(k)=Σx1(

r=0

Σ

ΣΣΣΣ1ΣΣΣΣΣΣΣ2Σ

kN+W

kNΣx(r)W

r=0

rkN=X1(k)+WNX2(k)

(6)

在此也不难看出:

N-1

X(k)=Σx1(r)W

r=0

NrkNrkNN-1=Σx(2r)W

r=0

NrkNrkN(7)(8)

X(k)=Σx2(r)W

r=0

=Σx(2r+1)W

r=0

即X1(k)与X2(k)分别为x1(r)与x2(r)的N/2点的DFT,这些点按照(6)

式可合成一个N点的DFT。但是x1(r)与x2(r)以及X1(k)与X2(k)的长度都

Nk=0,1,…-1,而X(k)的长度为N;因此要想得到完整是N/2,也就是r、

的图像,我们就要再次用到W的周期性。

W则

X1(k+N)=Σx1(r)W

r=0

同理可得X2(k+N)=X2(k)

Nr(k+N)

NNrkN=W

r(k+N)

N(9)

=Σx1(r)W

r=0

rkN

=X1(k)(10)

4.小结

本论文着重详细的介绍了FFT的两种算法原理,并在Matlab中得到了很好的实现,可以让我们对FFT有个更加直观的理解。通过FFT与DFT的对比,我们看出,FFT并不是一种不同于DFT的变换形式,而

lab给出的FFT介绍实际是是为减少DFT计算量的一种快速算法。mat

DFT的表达式,未作DFT向FFT的简化过程说明,但计算过程内核是

加之超大规模集成电路(VLSI)和计算机的飞FFT。以FFT算法为契机,

速发展,使得数字信号处理的理论获得了飞速发展,并广泛的应用到各个领域。

参考文献[1]胡广书.数字信号处理-理论算法与实现(第二版).清华大学出版社,2003

[2]余成波,杨菁,杨如民,周登义.数字信号处理及MATLAB实现.清华大学出版社,2005

[3]谭子尤,张雅彬.离散傅里叶变换快速算法的研究与MATLAB算法实现.中国科技信息,2006/22

(11)

由(10)(11)两式看出,当N≤k≤N-1时,所对应的X1(k)、X2(k)与

前半部分k值(0≤k ≤N-1)所对应的完全相同。而

科技信息

高校理科研究

傅里叶级数在数字信号处理中的应用

中北大学信息与通信工程学院

姜世杰

余红英

[摘要]快速傅里叶变换是针对于将一个大点数N的DFT分解成若干个小点的DFT的组合的算法[1],主要是巧妙的利用了Wn因

使运算量大大降低,节省了大量时间。快速傅里叶变换的算法已经作为一种强子的周期性和对称性,构造出的一种DFT快速算法。

[2]

有力的工具运用到信号处理领域中,大大推动了数字信号处理技术的进步。本论文比较详细的阐述了快速傅里叶算法的数学原理、运算特点并完善的运用到Matlab,实现先好的仿真处理。[关键词]离散傅里叶变换快速傅里叶变换Matlab

1.引言

DFT在数字信号处理中得到了广泛的应用,其把信号从时域转化到频域上加以分析其频率与相位的变化关系,因为信号不仅随时间变化,还与频率、相位等信息有关,这就需要进一步分析信号的频率结构,并在频率域中对信号进行描述。然而DFT算法是以庞大的数学计算量作为代价。FFT的发现,使计算量大大缩减。它的发现是数字信号处理发展史上的一个转折点,也可以说是一个里程碑的作用。

2.FFT的算法推导

我们知道离散傅里叶变换对是如下形式:

N-1

N+kNk

WN=WN·WN=-WN(10)(11)(12)代入(6)中

(12)

DFT:X(k)=Σx(n)W

n=0

N-1

nkN

k=0,1,…,N-1(1)

-nk

IDFT:x(n)=1ΣX(k)WNn=0,1,…,N-1(2)

n=0

m为正整数,若不满足此关系我们可以相设序列x(n)的长度N=2m,

应的补零。

首先,我们将x(n)按照n的奇、偶将其分成两个子列,即:x1(r)=x(2r)

r=0,1,(3)…N-1

r)=x(2r+1)x2(所以(1)式可变为:

Σ

N-1

X(k)=DFT[x(n)]=Σx(n)W

n=0

N-1

nkN

N-1=Σx(2r)W

r=0

2rkN

N-1

+Σx(2r+1)W

r=0

(2r+1)kN

偶子列

=Σx1(r)(WN)+W利用W

r=0

nkN

2rk

kNN-1奇子列

(4)

Σx(r)(W

r=0

2rkN

(13)前半部分:X(k)=X1(k)+WNX2(k)k=0,1…N-1

后半部分:XN+k)=X1((14)k)-WNX2(k)k=0,1…N-1

综上,我们只要求出-1上各个整数k对应的X1(k)、X2(k)值,

即可求出整个区间的X(k)值,显然这样可以大大节省计算时间。

3.Matlab实现已知x(n)是两个正弦信号与白噪声的叠加,利用Matlab对其进行频谱分析。

clearall;

%产生两个正弦加白噪声;N=256;f1=.1;f2=.2;fs=1;a1=5;a2=3;w=2*pi/fs;x=a1*sin(w*f1*(0:N-1))+a2*sin(w*f2*(0:N-1))+randn(1,N);%应用FFT求频谱;subplot(3,1,1);plot(x(1:N/4));f=-0.5:1/N:0.5-1/N;X=fft(x);y=ifft(X);subplot(3,1,2);plot(f,fftshift(abs(X)));subplot(3,1,3);plot(real(x(1:N/4)));

≤≤

的周期性:

-j∏

-j∏由于WN=e

所以WN=e

N-1-j∏2=e=W

N-1N(5)

(5)式代入(4)式化简得:r)WX(k)=Σx1(

r=0

Σ

ΣΣΣΣ1ΣΣΣΣΣΣΣ2Σ

kN+W

kNΣx(r)W

r=0

rkN=X1(k)+WNX2(k)

(6)

在此也不难看出:

N-1

X(k)=Σx1(r)W

r=0

NrkNrkNN-1=Σx(2r)W

r=0

NrkNrkN(7)(8)

X(k)=Σx2(r)W

r=0

=Σx(2r+1)W

r=0

即X1(k)与X2(k)分别为x1(r)与x2(r)的N/2点的DFT,这些点按照(6)

式可合成一个N点的DFT。但是x1(r)与x2(r)以及X1(k)与X2(k)的长度都

Nk=0,1,…-1,而X(k)的长度为N;因此要想得到完整是N/2,也就是r、

的图像,我们就要再次用到W的周期性。

W则

X1(k+N)=Σx1(r)W

r=0

同理可得X2(k+N)=X2(k)

Nr(k+N)

NNrkN=W

r(k+N)

N(9)

=Σx1(r)W

r=0

rkN

=X1(k)(10)

4.小结

本论文着重详细的介绍了FFT的两种算法原理,并在Matlab中得到了很好的实现,可以让我们对FFT有个更加直观的理解。通过FFT与DFT的对比,我们看出,FFT并不是一种不同于DFT的变换形式,而

lab给出的FFT介绍实际是是为减少DFT计算量的一种快速算法。mat

DFT的表达式,未作DFT向FFT的简化过程说明,但计算过程内核是

加之超大规模集成电路(VLSI)和计算机的飞FFT。以FFT算法为契机,

速发展,使得数字信号处理的理论获得了飞速发展,并广泛的应用到各个领域。

参考文献[1]胡广书.数字信号处理-理论算法与实现(第二版).清华大学出版社,2003

[2]余成波,杨菁,杨如民,周登义.数字信号处理及MATLAB实现.清华大学出版社,2005

[3]谭子尤,张雅彬.离散傅里叶变换快速算法的研究与MATLAB算法实现.中国科技信息,2006/22

(11)

由(10)(11)两式看出,当N≤k≤N-1时,所对应的X1(k)、X2(k)与

前半部分k值(0≤k ≤N-1)所对应的完全相同。而


相关文章

  • 基于MATLAB的数字信号处理系统设计
  • 青 岛 科 技 大 学 基于MATLAB 的数字信号处理系统设计 题 目 __________________________________ xxx 指导教师__________________________ XXX 学生姓名_____ ...查看


  • 快速傅里叶分析算法
  • DSP 2006-2007 快速傅立叶算法分析 The College of Computer Science Beijing University of Technology S200607097 杨涛 Email : i_am_ytao ...查看


  • 数字信号处理B_教学大纲
  • <数字信号处理B >课程教学大纲 Digital Signal Processing B 课程编码: 适用专业:广播电视工程等 先修课程:信号与线性系统 学 分 数:3 总学时数:48 实验(上机)学时:0 考核方式:校考 执 ...查看


  • 高等数学大纲(物理类)
  • <高等数学>教学大纲 课程名称:高等数学 适用层次.专业:理科.工科各专业 学 时:320学时 学 分:20学分 课程类型:通识教育平台课 课 程 性 质:必修课 一.课程的教学目标与任务 高等数学是理.工.管等相关专业的第一基 ...查看


  • 一种低功耗64 倍降采样多级数字抽取滤波器设计
  • 摘 要:经典多级结构的数字抽取滤波器占用系统大量的功耗与面积资源,文章设计的改进型64倍降采样数字抽取滤波器采用由级联积分梳状滤波器.补偿FIR 滤波器和半带滤波器组成,在保持∑- Δ ADC 转换精度的约束下,实现了最大程度降低系统功耗与 ...查看


  • 河南专升本数学复习的七个知识点你清楚么?
  • 河南专升本数学复习的七个知识点你清楚么? 在河南专升本数学复习过程中,最需要注意的这七个知识点:极限.等价无穷小代换,函数连续性,可导性和可微性,参数估计,级数,微分方程,随机变量的数字特征,一维随机变量函数的分布详细内容下面马上会为大家讲 ...查看


  • 经管应用数学B模块教学大纲
  • 经管应用数学B 模块教学大纲 模块编号:M071103 模块名称:经管应用数学B 理论学时:72 实践学时:8 总学时数:80 总学分:5 后续模块: 一. 说明部分 1. 模块性质 本模块是文科类本科各专业(包括经济系.管理系各专业)的学 ...查看


  • 基于dsp的正弦波信号发生器课程设计
  • 目录 第1章 绪论 ............................................. 1 1 DSP简介 ............................................... 1 第2章 ...查看


  • 傅立叶分析
  • 脉搏.语音及图像信号的傅里叶分析 一.实验简介 任何波形的周期信号均可用傅里叶级数来表示.傅里叶级数的各项代表了不同频率的正弦或余弦信号,即任何波形的周期信号都可以看作是这些信号(谐波)的叠加.利用不同的方法,可以从周期信号中分解出它的各次 ...查看


热门内容