APP下载

数字信号处理课程中的傅里叶变换教学探索

2017-04-11姜恩华杨一军窦德召汪徐德陈得宝

关键词:蝶形级数傅里叶

姜恩华,杨一军,窦德召,汪徐德,陈得宝

(淮北师范大学,安徽 淮北 235000)

数字信号处理课程中的傅里叶变换教学探索

姜恩华,杨一军,窦德召,汪徐德,陈得宝

(淮北师范大学,安徽 淮北 235000)

详细分析了非周期信号的傅里叶变换和周期信号的傅里叶级数。借助时域采样定理和频域采样定理,推导了连续非周期信号的傅里叶变换、序列的傅里叶变换和离散傅里叶变换X(k)之间的关系。借助X(k)计算非周期信号的频谱,分析了连续周期信号的傅里叶级数和周期序列的傅里叶级数的差别。借助频域采样定理,推导了周期序列傅里叶级数与离散傅里叶变换X(k)之间的关系。借助X(k)计算周期序列的频谱,在CCStudiov3.3软件开发环境下,编写C语言程序,实现快速傅里叶变换(FFT)算法,计算出X(k)。以矩形序列和正弦序列为例,借助X(k),求得矩形脉冲信号和正弦序列的频谱结构。

傅里叶变换;序列的傅里叶变换;离散傅里叶变换;傅里叶级数

0 引言

傅里叶变换是信号与系统、数字信号处理课程的重要核心内容之一,主要包括非周期信号的傅里叶变换和周期信号的傅里叶级数。非周期信号的傅里叶变换主要分为:连续非周期信号的傅里叶变换、序列的傅里叶变换和离散傅里叶变换;周期信号的傅里叶级数主要分为:连续周期信号的傅里叶级数和周期序列的傅里叶级数[1-3]。本文结合时域采样定理和频域采样定理,归纳了非周期信号的傅里叶变换之间的关系和周期信号傅里叶级数之间的差别。可以看出,通过离散傅里叶变换X(k)能够表示出非周期信号和周期序列的频谱。X(k)可以通过快速傅里叶变换FFT算法计算[4-6]。理顺非周期信号的傅里叶变换之间的关系和周期信号傅里叶级数之间的差别,对于如何开展这部分内容的教学,有极大的帮助[7,8]。

1 非周期信号的傅里叶变换

1.1 非周期信号的傅里叶变换

非周期信号的傅里叶变换主要分为:连续非周期信号的傅里叶变换、序列的傅里叶变换和离散傅里叶变换。在时域对连续非周期信号xa(t)进行等间隔采样,得到序列x(n);对序列x(n)截断得到有限长的序列,其长度为M。连续非周期信号xa(t)的傅里叶变换公式为积分公式,其中模拟角频率Ω和时间t都是连续变化的量,通过时域采样把时间t离散化,若xa(t)为带限信号,采样频率fs≥2fc,结合t=nTs和ω=ΩTs公式,可以根据连续非周期信号xa(t)的傅里叶变换的正变换公式推导出序列x(n)的傅里叶变换的正变换公式,如图1所示。若在时域对连续非周期信号xa(t)进行等间隔采样,根据时域采样定理,xa(t)的频谱以Ωs为周期做周期延拓,结合t=nTs和ω=ΩTs公式,可以根据xa(t)的傅里叶变换的逆变换公式推导出序列x(n)的傅里叶变换的逆变换公式,如图1所示。在序列的傅里叶变换公式中,由于数字域频率ω仍然是连续变化的量,所以计算序列x(n)的傅里叶变换的逆变换公式仍要通过积分计算。若对X(ejω)的数字域频率ω在一个周期[0,2π]内,等间隔采样N个点,把数字域频率ω离散化,即ωk=(2π/N)k,只要满足频域采样定理即N≥M,可以根据序列x(n)的傅里叶变换公式推导出有限长序列的离散傅里叶变换公式,如图1所示。

1.2 借助X(k)计算非周期信号的频谱

根据离散傅里叶变换X(k)的第一层物理含义[4],X(k)是对X(ejω)在数字域频率ω的一个周期[0,2π]内等间隔采样N个点得到的值。若频域采样点数N≥M,可以通过N个X(k)表示X(ejω),从而表示出非周期信号xa(t)的频谱。

求非周期信号xa(t)的频谱,可以对非周期信号xa(t)时域采样,得到有限长序列x(n),只要时域采样满足时域采样定理,有限长序列x(n)的离散傅里叶变换X(k)就可以表示非周期信号xa(t)的频谱,如(1)式所示[4],其中Fs为对xa(t)时域采样时的采样频率,N为在X(ejω)的数字域频率ω的一个周期[0,2π]内的采样点数,F为频率分辨率,F=Fs/N。由于X(k)为离散值,采用(1)式计算非周期信号xa(t)的频谱,只需计算出xa(t)的频谱的N个值,即栅栏效应。

Xa(kF)=TsX(k),k=0,1,2,3,…N-1

(1)

离散傅里叶变换X(k)通常使用快速傅里叶变换FFT算法计算,把X(k)代入(1)式,计算出非周期信号xa(t)的频谱。

2 周期信号的傅里叶级数

2.1 周期信号的傅里叶级数

2.2 借助X(k)计算周期序列的频谱

3 应用离散傅里叶变换DFT计算信号频谱

3.1 离散傅里叶变换DFT的快速算法

离散傅里叶变换DFT的快速算法主要包括时域抽取法和频域抽取法,本文以基2FFT算法为例,在CCStudiov3.3软件集成开发环境下[9],采用C语言编写程序[10],实现DFT的快速算法,计算出离散傅里叶变换X(k)。

3.2 应用DFT求非周期信号的频谱

采用基2FFT时域抽取法计算X(k),采用C语言编写程序,步骤如下。

(1)旋转因子WNk的生成

采用递推方法求解旋转因子WNk,如(2)式所示,先求出旋转因子WN0和WN1作为递推的初始条件。

(2)

(2)倒位序列的生成

根据倒序的树状图,第n个叶子节点到根节点的分支标号为把n逐次除以2取余数,自下而上依次标号。倒序数为从叶子节点到根节点对应的二进制数转化的十进制数。假设求得的倒序数为m,若n

(3)时域抽取算法DIT-FFT程序设计

根据时域抽取算法DIT-FFT运算流图,采用3层循环结构计算出X(k)。有多少级蝶形运算,外层循环就执行几次;每级蝶形有几个蝶形分组,中层循环就执行几次;每个蝶形分组包含几个蝶形,内层循环就执行几次;内层循环的循环体为计算一个基2FFT的时域抽取蝶形运算流图的过程。

在CCStudio v3.3软件集成开发环境下,采用C语言编写程序,实现了基2FFT的时域抽取算法DIT-FFT,以矩形序列R10(n)为例,计算其X(k),通过CCStudio v3.3软件的view/graph观察,矩形序列的时域波形如图(4)所示,其频谱如图(5)所示,基2FFT的时域抽取算法DIT-FFT计算出的X(k)如图(6)所示。

比较图(5)和图(6)可知,X(k)与矩形序列的傅里叶变换X(ejω)是一致的,与矩形脉冲信号的傅里叶变换F(jΩ)也是一致的,即通过X(k)可以表示矩形脉冲信号的频谱。

3.3 应用DFT求周期序列的频谱

采用基2FFT频域抽取法计算X(k),采用C语言编写程序,步骤如下。

(1)旋转因子WNk的生成

旋转因子WNk可以按照式(3)直接计算。

(3)

(2)频域抽取算法DIF-FFT程序设计

根据频域抽取算法DIF-FFT运算流图,采用3层循环结构计算出X(k)。有多少级蝶形运算,外层循环就执行几次;每级蝶形有几个旋转因子WNk,中层循环就执行几次;每个旋转因子WNk对应几个蝶形,内层循环就执行几次;内层循环的循环体为计算一个基2FFT的频域抽取蝶形运算流图的过程。

(3)计算出X(k)

根据倒序的树状图,第n个叶子节点到根节点的分支标号为把第n个叶子节点对应的倒序数逐次除以2取余数,自下而上依次标号。正常顺序数为从叶子节点到根节点对应的二进制数转化的十进制数。假设求得的正常顺序数为m,若n

在CCStudio v3.3集成开发环境下,采用C语言编写程序,实现了基2FFT的频域抽取算法DIF-FFT,以正弦序列sin(π/32*n)为例,计算其X(k),通过CCStudio v3.3的view/graph观察,正弦序列的时域波形如图(7)所示,其频谱如图(8)所示,基2FFT的频域抽取算法DIF-FFT计算出的X(k)如图(9)所示。比较图(8)和图(9)可知,在主值区间内,X(k)与正弦序列的傅里叶变换是相同的,可见X(k)与正弦序列的傅里叶级数的系数也是相同的。由于正弦序列被截断为256点,在观察X(k)时,能够观察到截断效应,离散谱线向附近展宽。

4 结论

本文详细分析了非周期信号的傅里叶变换和周期信号的傅里叶级数。对于非周期信号的傅里叶变换,结合时域采样定理,推导了连续非周期信号的傅里叶变换与序列傅里叶变换之间的关系;结合频域采样定理,推导了序列傅里叶变换与离散傅里叶变换之间的关系。对于周期信号傅里叶级数,指出了连续周期信号傅里叶级数与周期序列傅里叶级数的区别;结合频域采样定理,推导了周期序列傅里叶级数与离散傅里叶变换之间的关系。可以看出,借助离散傅里叶变换X(k)可以求得非周期信号的频谱和周期序列的频谱。在CCStudio v3.3软件集成开发环境下,编写实现FFT快速算法的C语言程序,以矩形序列和正弦序列为例,计算其X(k),通过CCStudio v3.3软件的view/graph观察,得到了矩形脉冲信号的频谱结构图和正弦序列的频谱结构图,并观察到了栅栏效应和截断效应。

[1] 奥本海姆,威尔斯基,纳瓦布.信号与系统[M].刘树棠,译.西安:西安交通大学出版社,2004.

[2] 郑君里,应启珩,杨为理.信号与系统(第三版)[M].北京:高等教育出版社,2011.

[3] 陈生谭,郭宝龙,李学武,高建宁.信号与系统(第三版)[M].西安:西安电子科技大学出版社,2014.

[4] 高西全,丁玉美.数字信号处理(第四版)[M].西安:西安电子科技大学出版社,2016.

[5] A.V.奥本海姆,R.W.谢弗,J.R.巴克.离散时间信号处理(第二版)[M].刘树棠,黄建国,译.西安:西安交通大学出版社,2004.

[6] 程佩青.数字信号处理教程(第四版)[M].北京:清华大学出版社,2013.

[7] 雷大军,黄铁铁,姚敏,等.傅里叶变换教学方法探讨[J].湘南学院学报,2015,(2):75-77.

[8] 丹梅,曹聚亮,吴京,等.关于傅里叶变换性质教学方法的探讨[J].电气电子教学学报,2013,35(2):66-68.

[9] CCStudio v3.3[EB/OL].http://www.ti.com.cn/tool/cn/ccstudio,2014-4.

[10] Rulph Chassaing.DSP原理及其C编程开发技术[M].韩月秋,译.北京:电子工业出版社,2005.

Teaching Research of the Fourier Transform in the Digital Signal Processing

JIANGEn-hua,YANGYi-jun,DOUDe-zhao,WANGXu-de,CHENDe-bao

(HuaibeiNormalUniversity,Huaibei235000,China)

In the paper,the Fourier transformation of the Non-periodic signal and the Fourier series of periodic signal were analyzed in detail.By using the time domain sampling theorem and the frequency domain sampling theorem,the relationship of the Fourier transformation of the Non-periodic signal,the sequences Fourier transform and the discrete Fourier transform X(k) were deduced.The frequency spectrum of the non-periodic signal was calculated by using X(k).The difference between the Fourier series of the continuous periodic signal and the Fourier series of the periodic sequences is analyzed.By using the frequency domain sampling theorem, the relationship of the Fourier series of the periodic sequences and the discrete Fourier transform X(k) were deduced.The frequency spectrum of the periodic sequences was calculated by using X(k).Using the CCStudio v3.3 software,the fast Fourier transform algorithm(FFT) was implemented by the C language program,the X(k) was calculated by the FFT algorithm. Using the example of the Rectangular sequence and the Sine sequence,the frequency spectrum of Rectangular pulse signal and the Sine sequence were obtained by using X(k).

Fourier transformation; sequences Fourier transform; discrete Fourier transform; Fourier series

2016-12-05

安徽省高校自然科学研究重点项目(KJ2016A628);安徽省教育厅名师工作室(2015msgzs138);安徽省高等教育振兴计划项目(2014zdjy060)

姜恩华(1974-),男,硕士,淮北师范大学物理与电子信息学院副教授,研究方向:数字信号处理与DSP技术。

TN911.72

A

1674-3229(2017)01-0052-05

猜你喜欢

蝶形级数傅里叶
在FPGA上实现FFT的高效串行流水线结构
蝶形引入光缆技术新进展
双线性傅里叶乘子算子的量化加权估计
Dirichlet级数及其Dirichlet-Hadamard乘积的增长性
基于小波降噪的稀疏傅里叶变换时延估计
几个常数项级数的和
基于傅里叶变换的快速TAMVDR算法
p级数求和的两种方法
快速离散傅里叶变换算法研究与FPGA实现
Dirichlet级数的Dirichlet-Hadamard乘积