ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:171.20KB ,
资源ID:15741347      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/15741347.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(并行fft频谱分析仪设计Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

并行fft频谱分析仪设计Word下载.docx

1、运算器189c52FFT频谱分析仪系统框图控制器Pc输出电路ADC外存储器6264运算器4运算器3运算器2系统框图如上所示,由五个51单片机最小系统组成,其中四个用于fft的具体运算,一个用于控制。控制器两个专门输出端接于运算器1的两个中断管脚,运算器1的两个输出端接于运算器2的两个中断管脚,以此类推,最终运算器4的输出端接到控制器的某个输入端,作为反馈信号,当某一动作完成时通知控制器。四、 调试流程系统运行流程大致如下图所示:五、 遇到的问题及解决方法1. 每一步蝶形所需数据不同,若每一层蝶形运算都重新取值的话则大大浪费时间。解决:若使用“先倒序后计算”方法,则前4步蝶形是单独一个片内64点

2、本身的运算,后两步则才需要其他几个片子的运算结果。所以为解决每一步存取浪费时间的问题,在前4步中,用各自的倒序代替存取,便可以大大节省时间,最后两步则将所有数据集合到扩展存储器中,重新分配给每个运算器。这样也可以使控制器后期的程序设计更加连贯,控制器在完成了最后一步倒序后,直接组织输出2. 控制器对四个运算器控制的实现。51单片机外部中断引脚有两个int0和int1,这样,每个运算器中只允许两个中断服务程序,而每个运算器又要完成“读、写、计算”几个动作。在程序设计的过程中,我们将“读”和“计算”合并,即读数过后直接进算,只在读数结束后输出一个信号,通知下一个片子开始读数。这样的话,后面的片子还

3、在取值过程中的时候,前面的片子已经开始了计算,一定程度上节省了时间,同时解决了控制的问题。3. W值的获得由于c51编程中,允许变量定义的空间并不多。在程序调试过程中:auto segment too large的问题出现了多次。经过我们粗略计算,发现对于256点fft,每个片中128点的w值是占空间的首要。所以,我们将w值定义为常量,由扩展存储器中取出,放在每个片子的程序中去,而每个片子放程序的rom又足够大,这样,既节省了计算w值所需要的时间,又节省了空间。4. 几个片子对于一个扩展存储器的共享实际上,这个问题我们在硬件实现上遇到的麻烦远比软件上麻烦很多,5个片子都要共享同一些地址/数据管

4、脚,会遇到诸如“电流串扰“等等问题,这可能也成为了我们最终结果不尽如人意的原因之一。在软件方面,考虑到硬件实现中的延迟等问题,同步问题不好解决,对存储器的存取操作采用时分的方式进行,虽然地址指针改变等问题实现起来较为繁琐,但具有很高的可操作性,可实现性。六、 原理图总体图单个最小系统图控制器与扩展存储器Adc七、 程序流程图和原代码Fft核心算法流程结束写值T = A(k) + A(k + B)WNpA(k + B) = A(k) A(k + B) WNpA(k) = T倒序读入x(n) 64点 128点w值开始 源代码:Ic1:#include /51芯片管脚定义头文件intrins.h /

5、内部包含延时函数_nop_();absacc.h /绝对地址访问的头文件#define uchar unsigned char#define uint unsigned intuint RAMADDR=0x6000;#define RAM_6264 XBYTERAMADDR /6264地址范围H-7FFFHsbit st=P30;sbit ce=P26;sbit oe=P25;sbit in=P31;uchar n;/*延时t毫秒11.0592MHz时钟,延时约ms*/void delayms(uint t)uchar k;while(t-)for(k=0; k125; k+);主函数void

6、 main()uchar val;n=0;EA=1;EX0=1;IT0=1;val=0;P0=0xff;P1=0xff;P2=0xff;P3=0xff;RAMADDR=0x6000; /6264首地址 oe=0; ce=0;st=1;delayms(100);st=0;delayms(500);val=P1;RAM_6264=val; /数据写入RAMADDR+;for(n=0;n /数学函数struct compx /*定義一個複數結構*/char real;char imag;struct compx idata dat65; /FFT輸入輸出均從是s1開始存入struct compx E

7、E(struct compx,struct compx); /定義複數相乘結構void FFT(struct compx xin,int N); /*定義FFT函數*/struct compx EE(struct compx a1,struct compx b2) /兩複數相乘的程序struct compx b3; /b3保存兩複數間的結果b3.real=a1.real*b2.real-a1.imag*b2.imag; /兩複數間的運算b3.imag=a1.real*b2.imag+a1.imag*b2.real;return(b3); /*返回結果*/sbit rw=P35;sbit fin=P10;sbit enwrite=P17;uchar vol=0;uchar enread=0;uchar calfin=0;void write();void read();void cal();FFTvoid fft(struct compx xin,int N) /*FFT函數體*/int f,m,nv2,nm1,i,k,j=1,l; /*定義變量*/struct compx v,w,t; /*定義結構變量*/nv2=N/2; /*最高位值的權值*/f=N; /*f為中間變量*/for(m=1;(f=f/2)!=1;m+);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1