电子科技大学研究生DSP实践课实验报告
更新时间:2024-03-13 05:45:01 阅读量: 综合文库 文档下载
- 电子科技大学研究生院推荐度:
- 相关推荐
电子科技大学
实验报告
学生姓名:
学号:
指导教师:向超
一、 实验室名称:
电子科技大学—美国德州仪器DSP技术/培训中心 实验项目名称: FIR数字滤波器
二、
1 实验目的
数字滤波的作用是滤除信号中某一部分频率分量。信号经过滤波处理,就相当于信号频谱与滤波器的频率响应相乘的结果。从时域来看,就是输入信号与滤波器的冲激响应作卷积和。数字滤波器在各种领域由广泛的应用,例如数字音响、音乐和语音合成、躁声消除、数据压缩、频率合成、谐波消除、过载检测、相关检测等。
本实验主要学习数字滤波器的DSP实现原理和C54X编程技巧,并通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。该实验应该安排在串口和定时器操作实验之后进行。
2 实验要求
该实验涉及到DSP的串口、中断响应等复杂操作,应该在完成前面的串口和定时器实验后完成。
本实验重点研究FIR滤波器的DSP实验方法,没有讨论FIR滤波器的设计原理和方法。你可以使用数字滤波器辅助设计软件包或自行计算FIR滤波器的系数。本实验例子利用DES320PP-U实验系统的模拟信号输出通道产生一个800Hz的方波,然后利用信号输入通道对产生的方波进行低通滤波,得到一个1KHz的正弦信号,并使用CCS的图形显示工具显示输入和输出的波形。这里我们使用的是一个38阶的对称结构的FIR带通滤波器,其采样频率Fs为20KHZ,通带频率是1KHz-3KHz。
3 实验原理
1) FIR滤波器的实现
如果FIR滤波器的冲激响应为h(0),h(1),...,h(N-1)。X(n)表示滤波器在n时刻的输入,则n时刻的输出为:
y(n) = h(0)x(n) + h(1)x(n-1)+ ... + h(N-1)x[n-(N-1)] 使用MAC或FIRS指令可以方便地实现上面的计算。
图1说明了使用循环寻址实现FIR滤波器的方法。为了能正确使用循环寻址,必须先初始化BK,块长为N。同时,数据缓冲区和冲激响应(FIR滤波器的系数)的开始地址必须是大于N的2的最小幂的倍数。例如,N=11,大于N的最小2的幂为16,那么数据缓冲区的第一个地址应是16的倍数,因此循环缓冲区起始地址的最低4位必须是0。
图1 FIR滤波器存储器里的数据存储方式
在图1中,滤波系数指针初始化时指向h(N-1),经过一次FIR滤波计算后,在循环寻址的作用下,仍然指向h(N-1)。而数据缓冲区指针指向的是需要更新的数据,如x(n)。在写入新数据并完成FIR运算后,该指针指向x(n-(N-1))。所以,使用循环寻址可以方便地完成滤波窗口数据的自动更新.
另一种方法是利用C54x系列芯片的提供的FIRS指令来实现FIR滤波器。图2为一种有限单位冲激响应呈现对中心点对称的FIR滤波器。长度为N 的线性相位FIR滤波器的输出表达式为:
N/2?1y(n)?
?h(k)[x(n?k)?x(n?(N?1?k))]k?0
图2 N阶均衡FIR滤波器框图
要利用FIRS指令,需要将输入数据缓冲分成两个,循环缓冲区大小寄存器的值设为N/2。 图3显示了输入序列在两个循环缓冲器里的存储情况。设辅助寄存器AR2指到缓冲区1(Buffer1)的顶部,AR3指到缓冲区2(Buffer2)的底部。每次进行滤波之前,应先将缓冲区1顶部的数据移到缓冲区2的底部,新来的一个样本存储到缓冲区1中时,并对缓冲区1指针AR2加1(使用循环寻址)。处理器然后使用FIRS指令进行乘加运算,即h(0){x(0)+x(-N+1)。当然,在使用FIRS指令前,需要预先计算一次求和,以初始化A 。在RPTZ重复指令和循环寻址的配合下,完成FIR滤波.滤波完成后,需要对两个数据缓冲的指针进行修正,以便对下一个点进行处理。将Buffer1的指针减1和Buffer2的指针减2,使他们指向各自缓冲的数据队列的最后。
2) AC01的初始化
DSE320PP-U使用AC01作为模拟信号接口。AC01提供一个14bit的D/A和一个14bit的A/D通道。AC01与VC5402通过串口0连接。DSP通过串口可以控制AC01的采样频率、增益、低通/高通滤波器的截止频率等参数。这一步是通过读写AC01的寄存器来实现的。
下面是初始化AC01的代码,有关AC01的详细介绍请参考AC01的技术手册。
3) 800Hz方波信号的产生
利用AC01的D/A通道产生一个1KHz的方波,作为FIR滤波器的输入信号。由于串口发送中断将每0.05ms(20KHz)产生一次,所以我们将一个周期的方波信号分20次送出,这样经D/A变化后便可得到800Hz的方波。产生方波的数据参见如下:
4) 串口的初始化和串口中断服务程序
本实验通过DSP的串口0输入/输出数据。在串口通讯中,数据时钟和帧同步信号都由AC01产生,所以VC5402将使用外部时钟和帧同步信号。串口设置代码如下,详细介绍请参见串口操作实验:
完成串口设置后,还需要修改中断向量表以便正确响应串口0的接收和发送中断请求。本实验中使用发送中断产生方波信号和完成对AC01的初始化;使用接收中断存贮输入的数据,并设置新数据到达标志。主循环在检测到该标志后,调用FIR滤波程序,完成对输入数据的处理。另外,为了方便观察,我们还使用了一个定时器,交替使XF为高和低。所以,在滤波程序正常运行时,你会看到D2在不停地闪烁。
4 实验内容
本实验需要使用C54X汇编语言实现FIR滤波器,并通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。实验分以下几步完成:
1) 短接JP12,使得DES320PP-U的模拟信号输出通道与模拟信号输入通道相连。 2) 启动CCS,在Project选项中打开fir5402.pjt文件。
3) 使用Build选项完成编译、连接,然后使用File菜单中的Load Program将OUT文件装
入。按F5键启动程序运行,若有示波器,可以观察DSE320PP-U板上的JP12的引脚。
4) 请使用Debug -> Halt暂停程序的执行。在Project管理栏中打开fir5402.asm文件,并在
ccs_show(在fir子程序中)行后的nop语句处上增加一个断点。添加断点的方法是先用鼠标单击某行,将光标移动到需要增加断点的行上,然后选择工具栏的手状图标。当该行被设置了一个断点后,可以看到红色的圆点。
5) 选择View -> Graph-> Time/Frequency菜单打开一个图形显示窗口,参见图6-4。将“Start
Address”项改为地址0x1800,将“Display Data Size”项设置为128,将“DSP Data Type”改为“16-bit signed integer”。这样,将在图形显示窗口中显示从0x1800(信号输入缓冲)开始的128个点的16位有符号整数。再打开一个图形窗口,显示从地址0x1020(滤波信号输出缓冲)开始的128点的16位有符号整数。
正在阅读:
电子科技大学研究生DSP实践课实验报告03-13
绿化养护考核标准08-18
街道办事处上半年工作总结及下半年工作安排08-08
初三数学06-12
关心下一代工作经验交流会上的讲话10-03
体育新闻播音稿02-20
第2章 核酸的结构与功能01-12
亚低温治疗04-20
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 研究生
- 实践
- 实验
- 报告
- 大学
- 电子
- 科技
- DSP
- 趣味化学公选课结课论文
- 七年级体育教学工作计划
- 浅谈净化空调自动控制的设计
- 13考评员管理
- 牛津英语模块四Unit3 Words学案
- 中小学优秀外语教师出国留学奖学金项目
- 自建和托管的区别
- 更新理念提升自我 - 图文
- 关于新形势下档案利用和服务工作的探讨
- 托福雅思阅读词汇记忆(三)
- 鄂教版三年级科学上册教案设计一日食谱教学设计
- 华南理工大学 计算机组成原理-随堂练习题
- 多径时变信道模型仿真及性能分析分解
- 操作系统安全配置之高级篇
- 小学语文人教版《五年级下》《第五组》《18. 将相和》精品专题课
- 华为标准质保技术服务和保修内容
- 孕妇咳嗽怎么办?孕妇咳嗽吃什么好
- 民族文化与高校美术教学的融合
- 上虞市港口信息化建设初步探索
- 周庄高级中学2007—2008学年度第二学期第二次调研试题高二生物