FIR滤波器的DSP实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计一FIR滤波器的DSP实现
一、课程设计目的
1、复习用C语言对数字信号处理器的编程方法,熟悉如何使用C5000系列数字信号处理器中的模数转换器;
2、复习用窗函数法设计FIR数字滤波器;
3、对TMS320VC5509编程实现不同参数的FIR滤波器。
二、课程设计原理
(一)TMS320VC5509简介
TMS320VC5509是TI公司出产的定点DSP芯片,它的源代码与C54x系列兼容,但速度更快,时钟频率可达300MHz,功耗是C54x系列的1/6。C5509的CPU内部有2个乘法器、1个40位的加法器、1个16位的加法器、4个累加器。共有12组总线,其中3组数据存储器读总线,2组数据存储器写总线,及相应5组数据存储器地址总线,程序存储器读总线及地址线各一组。片内外设资源也比C54x系列数字信号处理器丰富,4通道10位A/D、DMA单元、RTC电路、McBSP、定时器等。本设计中将用到A/D单元。
TMS320C5509A内部有一个4通道10位A/D,相关寄存器有4个,通过对这4个寄存器的操作来控制A/D模块。
1.、ADC控制寄存器:ADCCTL
ADCSTART:0 无作用;1 启动A/D转换
CHSELECT:从4个模拟通道中选择一个作为输入信号
Reserved:保留
2、ADC数据寄存器:ADCDA TA
ADCBUSY:0 ADC数据准备好,即A/D转换结束;1 正在进行A/D转换
CHSELECT:从4个模拟通道中选择一个作为输入信号
ADCDA TA:A/D转换得到的10位二进制数
3、ADC时钟控制寄存器:ADCCLKCTL
IDLEEN:0 不允许ADC处于休眠状态;1 允许ADC处于休眠状态
CPUCLKDIV:决定ADC时钟频率
ADC Clock:(CPU Clock) / ( CPUCLKDIV+1)
4、ADC时钟分频寄存器:ADCCLKDIV
SAMPTIMEDIV :与CONVRA TEDIV 一起决定采样/保持周期
ADC Sample and Hold Time = (ADC Clock Period)*2*(CONVRA TEDIV+1+ SAMPTIMEDIV)
CONVRA TEDIV :决定A/D 转换时钟频率
ADC Conversion Clock = (ADC Clock) / (2*( CONVRA TEDIV+1))
完成一次A/D 转换需要13个A/D 转换时钟,所以,一次转换时间是
t = 13 / ADC Conversion Clock
一次完整的A/D 转换时间是采样/保持周期和转换时间的和,采样频率是其倒数
ADC Total Conversion Time = ADC Sample and Hold Period+t
Sampling Rate = 1/ ADC Total Conversion Time
(二)窗函数法设计FIR 滤波器的原理
根据阻带最小衰减和过渡带宽选择合适的窗函数,实现不同指标的各种类型FIR 数字滤波器的设计。
1、利用窗函数设计FIR 滤波器的具体步骤如下:
(1)由给定的滤波器的幅频响应参数求出理想的单位脉冲响应h d (n )(下面已给出,直接用)。
(2)根据下表,由阻带最小衰减选择窗函数类型w (n ),由设计指标和过渡带宽△ω确定滤波器阶数N ,对于高通滤波器,N 只能取奇数。
(3)计算滤波器的单位脉冲响应h (n ) =h d (n ) w (n )。
2、理想滤波器单位脉冲响应h d (n )
(1) 理想低通滤波器单位脉冲响应
⎪⎪⎩⎪
⎪⎨⎧=≠=--=απ
ωαααπαωn n n n n h c c d 21-N )()]
(sin[)(其中
(2) 理想高通滤波器单位脉冲响应
⎪⎪⎩
⎪
⎪⎨⎧=-≠=----=απωαααπαωαπn n n n n n h c c d 121-N )()]
(sin[)](sin[)(其中
(3) 理想带通滤波器单位脉冲响应
⎪⎪⎩
⎪
⎪⎨⎧=-≠=----=απωωαααπαωαωn n n n n n h d 121221-N )()]
(sin[)](sin[)(其中
(4) 理想带阻滤波器单位脉冲响应
⎪⎪⎩
⎪
⎪⎨⎧=-+≠=----+-=απωωπαααπαωαωαπn n n n n n n h d 212121-N )()]
(sin[)](sin[)](sin[)(其中
3、典型窗函数
(1)矩形窗(Rectangle Window)
)
()(n R n w N =
(2)三角形窗(Bartlett Window)
⎪⎩
⎪⎨
⎧
-≤<----≤≤-=1
2
1,
1222
10,
12)(N n N N n N n N n n w
(3)汉宁(Hanning)窗,又称升余弦窗
)
()]1
2cos(
1[2
1)(n R N n n w N --=
π
(4)海明(Hamming)窗,又称改进的升余弦窗
)
()]1
2cos(
46.054.0[)(n R N n n w N --=π
(5)布拉克曼(Blankman)窗,又称二阶升余弦窗
)
()]1
4cos(
08.0)1
2cos(
5.042.0[)(n R N n N n n w N -+--=ππ
详细设计原理参见《数字信号处理教程》课本窗函数设计法。
三、课程设计步骤
1、安装驱动
将方形下载线与实验箱上橙色铁盒接口相连;在弹出的“找到硬件向导”会话框中依次做如下操作:选“否,暂时不”→下一步→从列表指定位置安装→下一步→浏览框中选择c:\TI2\ICETEK →完成。 2、配置并运行CCS
(1)双击Setup CCS2(C5000);
(2)在Import Configuration 框中选择ICETEK USB Emulator for ‘C55x ,点击Import ,点击close 。
(3)清除其他项(右键单击相应项,点击remove ),保证My System 下只有一项:C55xx XDS5510 Emulator ,右键点击该项选Properties ,在弹出的关联框中选Startup GEL Files 标签,Startup GEL 栏选择ICETEK-VC5509-A.GEL ,保存。关闭Setup CCS2(C5000)。