⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 实验5.txt

📁 本函数利用调用库函数的方法实现了实函数快速傅里叶变换
💻 TXT
字号:
实验内容:
	用c语言实现512点的FFT算法,对给定文件进行FFT变换。
实验内容说明:
	在Visual DSP++里,已经提供了对于数字信号处理中常用算法,如FIR,IIR,
FFT的支持,本实验主要学习在自己的project中如何调用这些函数。
实验过程:
	1. 阅读文档“DSP Run-Time Library Reference”,重点阅读以下部分:
	a)第510页对于N点实信号输入进行FFT的函数rfft_fr16的说明;在试验中使用此
函数计算实信号输入的FFT;同时阅读对于N点复信号输入进行FFT的函数cfft_fr16的说明
(第452页)
	b)在计算中引入的新的数据类型16位小数fract16的说明,参见文档第128页、
第148页(ETSI Support for Data Types)和第214页的说明
	c)计算FFT时使用系数数组的计算,采用函数twidfftrad2_fr16,对此函数的说
明参见第518页;
	d)FFT计算结果为复数,对于复数的定义和使用参见第215页中的描述。
	e)计算复数的模(幅度),采用函数cabs_fr16,对于此函数的说明参见第446页。
	2. 按照实验1的步骤新建project,生成对应的ldf文件,并加入新的c文件;
	3. 编写c程序,实现对于长度为512的数组(保存在input_dec.dat)中的数据的
FFT计算;计算输出复数数组的模(幅度),并将计算结果打印输出。
	4. 使用Visual DSP++提供的绘图功能,分别绘制输入数据的时域波形,以及由
plot软件提供的频域分析结果;同时绘制输出数据的波形,比较两者之间的差别。
	5. 有兴趣的同学可以阅读fft实现的源文件rfft_fr16.asm,了解其具体
算法实现(位于VisualDSP 3.5 16-Bit\219x\lib\src\libdsp_src目录下)。
	本实验需要上交整个project,计入平时成绩。
实验注意事项:
	1. 在文档148页,可以看到对于fract16的定义:
		typedef short fract16
	可以看出,fract16在dsp内部本质上仍是整数,只是在解释时解释成小数,因此
对于其初值的赋值,可以采用类似
	fract16 input_data={0, 18957,-3290,8595,...};
	的方式;
	2. 对于数据输入文件,可以采用读文件的方式输入,也可以在初始化时直接产生;
	3. 在函数rfft_fr16的说明中,对于参数block_exponent的类型说明有误,
请参见函数cfft_fr16的说明。
	4. 为了用Visual DSP++绘制波形,最好将需要绘图的数组声明为全局变量。





input_dec.dat

0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497,
3290,
-462,
5323,
-5597,
5323,
-8595,
3290,
-18957,
0,
18957,
-3290,
8595,
-5323,
5597,
-5323,
462,
-3290,
-15497,
0,
15497

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -