




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【精品】信号处理原理上机实验任务书和指导书 课程名称信号处理原理上机学时16适用专业计算机科学与技术先修课程C语言 一、上机实验总体目标信号处理原理是计算机科学与技术专业本科生的一门专业课程。 实验目的是使学生掌握信号处理,尤其是数字信号处理的基本原理和方法。 要求学生通过实验熟练掌握基2时域抽选的快速傅立叶变换算法的基本原理,为快速傅立叶变换的实际应用打下坚实基础,了解二维快速傅立叶变换的算法原理及其应用。 二、上机实验课时分配序号上机实验项目1整序算法程序设计与调试2基2时域抽选的FFT程序设计与调试3基2时域抽选的快速傅立叶反变换程序设计与调试4FFT与IFFT的实际应用程序设计与调试 三、上机实验环境硬件CPU P3500Hz,内存256MB,硬盘500MB或以上软件Windows98/2000/XP,Turbo C或Visual C+ 四、参考书 1、董绍平,陈世耕,王洋.数字信号处理基础.哈尔滨工业大学出版社, 19992、程佩青.数字信号处理教程.清华大学出版社, 20003、黄顺吉.数字信号处理及其应用.国防工业版社, 19994、陈永彬.数字信号处理.南京工业学院出版社, 19995、王世仪.数字信号处理.北京工业学院出版社, xx6、吴镇扬.数字信号的原理与实现.东南大学出版社,1997. 7、赵尔沅等.数字信号处理实用教程.人民邮电出版社,1999. 8、姚天任等.现代数字信号处理.华中理工出版社,1999. 9、丁玉美等.数字信号处理.西安电子科大出版社(第2版),xx. 10、A.V.奥本海姆,R.W.谢弗著,黄建国等译.离散时间信号处理.科学出版社,2000.实验类型设计设计设计每组人数上机学时444设计4实验1整序算法程序设计与调试【实验目的】使学生掌握整序算法的基本原理,为实现基2时域抽选的快速傅立叶变换算法做好准备,了解快速傅立叶变换算法的基本原理。 【实验准备】1原位计算从基2时域抽选FFT运算流图可知,在某列进行蝶形运算的任意两个节点(行)k和j的节点变量就完全可以确定蝶形运算的结果,与其它行(节点)无关。 这样,蝶形运算的两个输出值仍可放回蝶形运算的两个输入所在的存储器中,即实现所谓原位运算。 2倒位序规律由基2时域抽选FFT运算流图可知,输出X(k)按正常顺序排列在存储单元,而输入是按顺序x (0)、x (4)、x (2)、x (6)、x (1)、x (5)、x (3)、x (7),这些数据表面上是乱序的,实际上是有规律的,恰为二进制意义下的倒序,这种顺序称作倒位序。 设N=8点FFT运算,输入序列的序号为n,二进制为(n2n1n0)2,倒位序顺序用n表示,其倒位序二进制为(n0n1n2)2,如下表自然顺序n0二进制n2n1n0000倒位序二进制n0n1n2倒位顺序n000010011004xx010230111106410000115101101561100113711111173整序算法原理输入序列先按自然顺序存入存储单元A,然后经整序(变址运算)来实现倒位序排列。 存储单元A (0)A (1)A (2)A (3)A (4)A (5)A (6)A (7)自然顺序I x (0)x (1)x (2)x (3)x (4)x (5)x (6)x (7)变址倒位序J x (0)x (4)x (2)x (6)x (1)x (5)x (3)x (7)图1变址处理方法其中I表示顺码,J表示倒码。 从上图可以看出,只要按图中连线指示换位,就可以实现整序。 可以看出I=J时不用换位,IJ时换位。 若IJ就不需要再换位了。 通常把倒码和换位两个过程总称为整序。 【实验内容】1编写一个函数,求某个数的二进制倒码。 int IBR(int i,int m)即求i的二进制倒码。 其中m表示二进制位数。 例若i=1,m=3;则1的3位二进制编码为001,001的倒码为100,100的十进制值为4,所以m=3时1的二进制倒码为4,即IBR(1,3)的值为4。 2编写一个函数,实现整序功能。 void ReverseOrder(flaot A,int m)即实现将序列A中的数据按倒位序重新排列。 其中m表示二进制位数。 例若数组A中原有数据依次为A 0、A 1、A 2、A 3、A 4、A 5、A 6、A7,经过调用函数ReverseOrder(A,3)后,数组A中的数据依次为A 0、A 4、A 2、A 6、A 1、A 5、A 3、A7,此时A中的数据表面上是乱序的,实际上是有规律的,恰为二进制意义下的倒序。 3实验的测试编写测试用的主程序,对已编写的IBR和ReverseOrder函数进行测试并给出测试结果。 【思考题】1在基2时域抽选的FFT算法中,为什么要对输入数据进行整序?实验2基2时域抽选的FFT程序设计与调试【实验目的】使学生掌握信号处理,尤其是数字信号处理的基本原理和方法。 要求学生通过实验熟练掌握基2时域抽选的快速傅立叶变换算法(FFT)的基本原理,了解二维及多维快速傅立叶变换算法。 【实验准备】1复数类型对于FFT算法涉及的复数运算,使用自定义的PLEX来定义复数类型,其使用方法与常规类型(如int,float,double)相似。 typedef structfloat real,imag;PLEX;2FFT基本原理FFT改进了DFT的算法,减少了运算量,主要是利用了旋转因子W(a)W的周期性W=W的两个性质(b)WFFT把N点DFT运算分解为两组N/2点的DFT运算,然后求和)()(1kXkX?的对称性W=-W)(2kXWkN?1,1,0),()()2(221?NkNkkXWkXNkX?其中,?r?r?r?r?10102210101122222222)12(x)()()2(x)()(NNNNNNNNrkrkrkrkWrWrxkXWrWrxkX算法。 3蝶形运算从基2时域抽选FFT运算流图可知蝶形两节点的距离为2m-1,其中,m表示第m列,且m=1,L。 例如N=8=23,第一级(列)距离为21-1=1,第二级(列)距离为22-1=2,第三级(列)距离为23-1=4。 考虑蝶形运算两节点的距离为2m-1,蝶形运算可表为Xm(k)=Xm-1(k)+Xm-1(k+2m-1)WN Xm(k+2m-1)=Xm-1(k)-Xm-1(k+2m-1)WN在计算X1(k)与X2(k)时,仍利用上述公式,把它们看成是新的X(k)。 如此递归下去,便是FFTr r由于N为已知,所以将r的值确定即可确定WN边位置补零,就可得到(r)2的值,即(r)2=(k)22L-m。 例如N=8=23 (1)k=2,m=3的r值,k=2= (010)2左移L-m=3-3=0,r= (010)2=2; (2)k=3,m=3的r值;k=3= (011)2,左移0位,r=3; (3)k=5,m=2的值;k=5= (101)2左移L-m=1位r= (010)2=2。 4存储单元r。 为此,令k=(n2n1n0)2,再将k左移(L-m)位,右存输入序列x(n),n=0,1,N-1,计N个单元;存放系数WN共计(N+N/2)个存储单元。 5程序框图r,r=0,1,(N/2)-1;需N/2个存储单元;开始送入x(n),MN2M倒序L1,M0,B?1P2M?LJkJ,N?1,2LpNpNWBkXkXBkXWBkXkXkX)()()()()()(?输出结束B2L?1【实验内容】1编写一个实现FFT算法的函数。 void fft(PLEX A,int m)其中,PLEX是复数类型的名称,A是要变换的数据,m是FFT点数N的以2为底的幂次(即N=2m)。 2编写测试用的主程序对fft函数进行测试,并给出测试结果。 【思考题】1.计算基2时域抽选FFT算法的运算量。 2序列x(n)=1(0n3),对其作4点和8点的FFT运算,其结果是否相同?为什么?实验3基2时域抽选的快速傅立叶反变换程序设计与调试【实验目的】使学生通过实验熟练掌握基2时域抽选的快速傅立叶反变换(IFFT)算法的基本原理,了解快速傅立变换算法的实际应用。 【实验准备】1IFFT算法原理?nkNN?kN?nnkNW)kXNkXIDFTnxW)nxnxDFTkX?1010 (1)()()()(比较两式可知,只要DFT的每个系数WN的快速算法IFFT,所以稍微变动FFT程序和参数可实现IFFT。 另外,可以将常数1/N分配到每级运算中。 1/N=1/2L=(1/2)L,也就是每级蝶形运算均乘以1/2。 【实验内容】1编写一个的函数,快速傅立叶反变换(IFFT)算法。 void ifft(PLEX A,int m)nk换成WN-nk,最后再乘以常数1/N就可以得到IDFT其中,PLEX是复数类型的名称,A是要变换的数据,m是FFT点数N的以2为底的幂次(即N=2m)。 2编写测试用的主程序对fft和ifft函数进行联合测试。 首先调用fft函数对输入数据进行正变换,给出中间结果;然后调用ifft函数进行反变换,并给出测试结果。 【思考题】1除了本实验采用的方法,快速傅立叶反变换(IFFT)还有哪些方法?实验4FFT与IFFT的实际应用程序设计与调试【实验目的】使学生掌握二维FFT算法原理,掌握利用二维FFT与IFFT实现去除燥声的方法,理解FFT变换在信号处理中的作用。 【实验准备】1二维FFT(IFFT)算法原理在图像处理的广泛领域中,傅立叶变换起着非常重要的作用,包括图像的增强、图像分析、图像复原和图像压缩等。 在图像数据的数字处理中常用的是二维离散傅立叶变换,它能把空间域的图像转变到频域上进行研究,从而很容易地了解到图像各空间频域成分,进行相应处理。 二维FFT(IFFT)实际上就是对二维数组的行和列分别进行一维FFT(IFFT)。 其流程如下先逐行进行一维FFT(IFFT),计算结果存入矩阵中,再逐列进行一维FFT(IFFT),即先取得第j列的数据coli=xij;对第j列数据进行一维FFT(IFFT)计算结果在数组col中,将结果放回矩阵第j列中。 2文本数据转化成数值用和O组成的“国”字图形存储在文本文件中,需要转换成数值才能进行FFT变换。 其处理方法如下首先设置点(.)对应的数值POINT_VAL=0,圈(o)对应的数值CIRCLE_VAL=1.0;然后,初始化Data用于存储图像数据的复数矩阵;然后打开文件,读取文件中的文本数据,每次读取一个字符,如果为o,则Dataij.real=CIRCLE_VAL;如果如果为,则Dataij.real=POINT_VAL;最后,关闭文件。 3数值转化成文本数据经过处理后的Data中的数值数据,需要转换成用和O组成的“国”字图形,才知其是否已经去除噪声。 其处理方法如下首先设置数值转化为字符的控制阈值TH=0.5;然后,打开文件,依次读取Data中数值,如果大于TH,向文件输出o,如果小于TH,向文件输出;最后,关闭文件4去除燥声用和O组成的“国”字图形,个别地方有燥声,调用二维FFT与IFFT实现对它进行二维FFT变换与反变换还得到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 影视在线课程创新设计-洞察及研究
- 监管协同与绿色产业-洞察及研究
- 哈希表在数据结构中的应用解析
- Linux系统安装报告
- 北京移动DSMP系统异地容灾平台建设项目的风险管理:策略与实践
- 北京地铁盾构近距离下穿既有地铁的风险防控与实践探索
- 功能化金纳米粒子:生物流体中半胱氨酸和高半胱氨酸的精准识别探索
- 慢性病远程监测技术-洞察及研究
- 深度学习与置换密码-洞察及研究
- 人工智能决策过程中的道德考量-洞察及研究
- 设计交底记录表
- 2023年安徽省公安机关警务辅助人员条例训练题库211题及答案
- 华为质量管理评估模型(31个评估要素和评估报告)
- 模具凸凹模工艺文件工序卡
- 麻醉科降低围术期低体温PDCA
- GB 42590-2023民用无人驾驶航空器系统安全要求
- 《精神科护理学》练习题及答案
- 护士执业注册体检表
- 直升机结构与系统版
- 新生儿疾病诊疗规范诊疗指南诊疗常规2022版
- 《智能投顾 大数据智能驱动投顾创新》读书笔记思维导图
评论
0/150
提交评论