- 1、本文档共192页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11讲TMS320C54x汇编语言程序设计课件
(4-27) (4-28) (4-29) (4-30) N/2点DFT可表示成N/4点DFT的组合。 下面以8点FFT为例,说明FFT的计算过程。 设有离散数据点x(0)~x(7),对其分组过程如表4-9所示。 表4-9 离散数据点按奇偶分组过程 分组方法 原始数据序列 N/2分组 N/4分组 (最终分组结果) 计算结果 按奇偶分组 x(0) g(0) x(0) g11(0) x(0) X(0) x(1) g(1) x(2) g11(1) x(4) X(1) x(2) g(2) x(4) h11(0) x(2) X(2) x(3) g(3) x(6) h11(1) x(6) X(3) x(4) h(0) x(1) g12(0) x(1) X(4) x(5) h(1) x(3) g12(1) x(5) X(5) x(6) h(2) x(5) h12(0) x(3) X(6) x(7) h(3) x(7) h12(1) x(7) X(7) 频率抽取FFT算法是将N点序列x[n]分成前(N/2)和后(N/2)点组成的序列x1[n]和x2[n]。x1[n]和x2[n]可写成如下形式: x1[n]=x[n] n=0, 1, …, -1 (4-31) x2[n]=x[n+] n=0, 1, …, -1 (4-32) 公式推导不再赘述。 按奇偶分组方法的计算步骤如图4-9所示。 图4-9 按奇偶分组经逐次一分为二后得到8点的DFT 图4-10 按顺序分组经逐次一分为二后得到8点的DFT 图4-11 两种FFT算法的蝶式运算 2) 实数FFT算法的实现 根据上面的分析,实现FFT算法包括以下4个步骤: (1) 定义要进行FFT的输入数据序列(实数或复数)和FFT的结果数据序列(复数)。 (2) 对输入数据序列按位倒序方式混序排列后复制到FFT结果数据序列,复制时实数序列要转换为复数序列。 (3) 复数FFT计算。 (4) 计算结果转换为实数序列。 3) 8—1024复数点FFT的实用程序 8—1024复数点FFT的实用程序由5部分组成: (1) 位码倒序程序; (2) 第1级蝶形运算; (3) 第2级蝶形运算; (4) 第3级至第lbN级蝶形运算; (5) 求功率谱程序及输出程序。 程序空间段的分配如下: sin1:正弦余数表。 cosine1:余弦余数表。 fft_prg:程序代码。 .vectors:复位向量和中断向量表。 数据空间段的分配如下: sin:正弦余数表。 cosine:余弦余数表。 d_input:输入数据。 fft_data:FFT结果(实部、虚部)。 fft_out:FFT结果(功率谱)。 I/O空间配置如下: PA0:输出口。 PA1:输入口。 ********************************************* *** N(8--1024) 点FFT 程序 *** ********************************************* .title FFT.asm .mmregs .copy coeff.inc .def start sine: .usect sine, 512 cosine: .usect cosine, 512 fft_data: .usect fft_data, 2048 d_input: .usect d_input, 2048 fft_out: .usect fft_out, 1024 STACK: .usect STACK, 10 K_DATA_IDX_1 .set 2 K_DATA_IDX_2 .set 4 K_DATA_IDX_3 .set 8 K_TWID_TBL_SIZE .set 512 K_TWID_IDX_3 .set 128 K_FLY_COUNT_3 .set 4 K_FFT_SIZE .set 1024
文档评论(0)