




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的升余弦滤波器设计(大连海事大学 信息科学与技术学院 大连116026 )摘要:升余弦在通信系统中有着广泛的应用,本文介绍了一种基于FPGA的升余弦滤波器的设计,用Verilog HDL和FPGA的系统设计工具的可定制IP核与MATLAB的综合运用和联系,达到了很好的效果。其中更加证实了Altera中定制IP核的方便性与稳定性,使升余弦滤波器更加的简单和简洁。关键字:FPGA;升余弦滤波器;Quatrus;Matlab;IP coreDesign and Implemention of the raised cosine filter based on FPGASunQiming(Dalian maritime university,Dalian,116026 )Abstract: the raised cosine filter has been widely used in Communication system. in this paper, we introduce the design and implemention of the raised cosine filter based on FPGA, with tools of the IP core and Matlab ,this design has a good effect and it is simpler and faster to use IP core to implement the raised cosine filter.Keys: FPGA; the raised cosine filter; Quatrus;Matlab;IP core我们知道数字信号处理的最主要应用领域就是数字滤波,数字滤波器与快速傅里叶变换(FFT)被公认为数字信号处理的两大基石。本文介绍的升余弦滤波器就是在FIR滤波器下的设计。在现代电子系统中,FIR数字滤波器以其良好的线性特性被广泛使用,本文就在FPGA器件上实现高阶FIR数字滤波器进行了研究,并对其性能进行优化。所以FIR滤波器的基础就是设计本文升余弦滤波器的基础。下面介绍一下FIR数字滤波器的原理、结构和设计方法以及采用升余弦滤波器的目的,并使用FPGA进行FIR滤波器设计,采用自顶向下的数字系统设计方法,层次化,模块化的设计思想,将整个滤波器划分成多个功能模块,利用Verilog硬件描述语言进行各个模块的设计。FIR滤波器只存在N个抽头h(n),N也被称为滤波器的阶数,则滤波器的输出可以通过卷积的形式表示为: 通过Z变换可以将其方便地表示为: 可以看出,FIR滤波器只在原点处存在极点,这使得FIR滤波器具有全局稳定性。FIR滤波器是由一个“抽头延迟线”加法器和乘法器的集合构成的,每一个乘法器的操作系数就是一个FIR系数。因此,也被人们称为“抽头延迟线”结构。FIR滤波器的一个重要特性是具有线性相位,即系统的相移和频率成比例,可达到无失真传输。FIR滤波器可以用方框图的形式方便地表示。用方框图法表示有以下几个好处:可通过观察法容易地写出算法,通过调整框图得到不同算法的等效框图,可以容易地确定硬件的需求;此外,还可以从传输函数所生成的框图直接得到多种等效表示。直接形式的FIR滤波器我就是根据上面的滤波器结构编的程序。下面分别介绍matlab的滤波器实现和fpga的滤波器硬件实现。FIR滤波器的MATLAB设计在MATLAB信号处理工具箱中,MATLAB提供了几个子程序来实现上面的窗函数,同时还提供了两个基于窗函数的FIR数字滤波器设计函数b=fir1(n,Wn,options)和b=fir2(n,Wn,options)。前者多用于标准通带FIR滤波器的设计,后者多用于设计多带FIR滤波器。两者可以设计高通、低通、带通等多种FIR滤波器。1fir1函数功能:设计标准频率响应的基于窗函数的FIR滤波器。语法:b=fir1(n,Wn)b=fir1(n,Wn,ftype)b=fir1(n,Wn,window)b=fir1(n,Wn,ftype,window)b=fir1(,normalization)说明:fir1函数可以设计标准的加窗线性相位的FIR数字滤波器,可设计出标准低通、高通、带通和带阻滤波器。2fir2函数功能:设计任意频率响应的基于频率采样法的FIR滤波器。语法:b=fir2(n,f,m)b=fir2(n,f,m,window)b=fir2(n,f,m,npt)b=fir2(n,f,m,npt,window)b=fir2(n,f,m,npt,lap)b=fir2(n,f,m,npt,lap,window)说明:fir2函数可以用于设计具有任意频率响应的加窗FIR滤波器,可设计出标准低通、高通、带通和带阻滤波器。其频域特性主要由参数f和m决定。3FDATool的使用简介FDATool(Filter Design & Analysis Tool)是MATLAB信号处理工具箱里专用的滤波器设计分析工具。在FDATool中可以灵活地采用不同方法设计几乎所有的经典滤波器,查看滤波器的各种指标,并得到所设计滤波器的系数。在MATLAB的Command Window窗口中键入:fdatool命令,则会出现如图5-4所示的界面,总共分两大部分:一部分是Design Filter,在界面的下半部,用来设置滤波器的设计参数;另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。FDATool界面FIR滤波器的FPGA设计FIR滤波器的实现方法有很多种,最常见的有串行结构、并行结构及分布式结构等,本节主要讨论串行结构与并行结构。1FIR滤波器的串行实现根据F I R滤波器的实现表达式,滤波器实质就是做一个乘累加运算。一次乘累加运算的次数由滤波器的阶数来决定,其串行结构如图。滤波输出输入寄存系数表累加器 滤波器串行实现结构图利用串行结构来实现FIR滤波器所使用的资源少,只要一些寄存器、一个乘累加器就可以完成整个滤波运算,但是其最大的缺点是滤波速度慢,一次滤波需要的时钟数由滤波器的阶数决定。对于设计一个32阶的滤波器,就需要32个时钟周期才能得到一次滤波的结果。2FIR滤波器的并行实现把上面FIR滤波器的串行实现展开,就可以直接根据滤波器的信号流图用多个乘法器和加法器并行实现,其结构如图所示。系数i系数N/2系数1数据输出数据输入R0R1RN-1RN+乘法器乘法器乘法器加法树并行滤波器的实现结构图直接并行滤波器可以在一个时钟周期内完成一次滤波,但是要占用大量的乘累加器,器件延迟比较大,所以其工作频率不可能太高。为了提高滤波器速度,可以在中间加上适当的寄存器,构成流水线结构,这样,滤波器不仅可以工作在更高频率上,对于速率固定的数据,可以通过多次复用乘累加器来节省资源。以上简单介绍了FIR滤波器的原理和MATLAB设计滤波器的步骤。现在我介绍一下我所做的MATLAB和FPGA的步骤。(一)、MATLAB步骤1启动MATLAB,输入fdatool进入下图所示管理器窗口。设计升余弦滤波器。具体参数:阶数 30 采用hamming窗 Alpha = 0.22 Fs=20Mhz Fc=0.5Mhz具体设置如下图:2,生成h(0),h(1),h(30)为const int BL = 31;const uint16_T B31 = 38, 53, 84, 137, 215, 320, 451, 606, 776, 955, 1133, 1297, 1438, 1547, 1615, 1638, 1615, 1547, 1438, 1297, 1133, 955, 776, 606, 451, 320, 215, 137, 84, 53, 38;(二)FPGA实现1,首先定制乘法器,生成的乘法器为的时序图为下图2,根据上述定制的乘法器IP核和生成的系数,编译出硬件描述语言。如下:timescale 1ns / 1ps/ Company: / Engineer: / / Create Date: 08:56:38 1/10/2011 / Design Name: / Module Name: fir / Project Name: / Target Devices: module fir(clk,rst,data_in,data_out);parameter b0=16d38,b1=16d53,b2=16d84,b3=16d137,b4=16d215,b5=16d320,b6=16d451,b7=16d606,b8=16d776,b9=16d955,b10=16d1133,b11=16d1297,b12=16d1438,b13=16d1547,b14=16d1615,b15=16d1638,b16=16d1615,b17=16d1547,b18=16d1438,b19=16d1297,b20=16d1133,b21=16d955,b22=16d776,b23=16d606,b24=16d451,b25=16d320,b26=16d215,b27=16d137,b28=16d84,b29=16d53,b30=16d38;input clk,rst;input1:0 data_in;output 22:0 data_out;/output m;reg1:0 sample0:30;integer i;wire 17:0 p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20,p21,p22,p23,p24,p25,p26,p27,p28,p29,p30;always(posedge clk )if(!rst)for(i=0;i=30;i=i+1)samplei=0;elsebeginsample0=data_in;for(i=1;i=30;i=i+1)samplei=samplei-1;endmult q1(.clock(clk),.datab(b0),.dataa(sample0),.result(p0);mult q2(.clock(clk),.datab(b1),.dataa(sample1),.result(p1);mult q3(.clock(clk),.datab(b2),.dataa(sample2),.result(p2);mult q4(.clock(clk),.datab(b3),.dataa(sample3),.result(p3);mult q5(.clock(clk),.datab(b4),.dataa(sample4),.result(p4);mult q6(.clock(clk),.datab(b5),.dataa(sample5),.result(p5);mult q7(.clock(clk),.datab(b6),.dataa(sample6),.result(p6);mult q8(.clock(clk),.datab(b7),.dataa(sample7),.result(p7);mult q9(.clock(clk),.datab(b8),.dataa(sample8),.result(p8);mult q10(.clock(clk),.datab(b9),.dataa(sample9),.result(p9);mult q11(.clock(clk),.datab(b10),.dataa(sample10),.result(p10);mult q12(.clock(clk),.datab(b11),.dataa(sample11),.result(p11);mult q13(.clock(clk),.datab(b12),.dataa(sample12),.result(p12);mult q14(.clock(clk),.datab(b13),.dataa(sample13),.result(p13);mult q15(.clock(clk),.datab(b14),.dataa(sample14),.result(p14);mult q16(.clock(clk),.datab(b15),.dataa(sample15),.result(p15);mult q17(.clock(clk),.datab(b16),.dataa(sample16),.result(p16);mult q18(.clock(clk),.datab(b17),.dataa(sample17),.result(p17);mult q19(.clock(clk),.datab(b18),.dataa(sample18),.result(p18);mult q20(.clock(clk),.datab(b19),.dataa(sample19),.result(p19);mult q21(.clock(clk),.datab(b20),.dataa(sample20),.result(p20);mult q22(.clock(clk),.datab(b21),.dataa(sample21),.result(p21);mult q23(.clock(clk),.datab(b22),.dataa(sample22),.result(p22);mult q24(.clock(clk),.datab(b23),.dataa(sample23),.result(p23);mult q25(.clock(clk),.datab(b24),.dataa(sample24),.result(p24);mult q26(.clock(clk),.datab(b25),.dataa(sample25),.result(p25);mult q27(.clock(clk),.datab(b26),.dataa(sample26),.result(p26);mult q28(.clock(clk),.datab(b27),.dataa(sample27),.result(p27);mult q29(.clock(clk),.datab(b28),.dataa(sample28),.result(p28);mult q30(.clock(clk),.datab(b29),.dataa(sample29),.result(p29);mult q31(.clock(clk),.datab(b30),.dataa(sample30),.result(p30); assign data_out= 5p017,p0+5p117,p1+5p217,p2+5p317,p3+5p417,p4+5p517,p5+5p617,p6+5p717,p7+5p817,p8+5p917,p9+5p105,p10+5p1117,p11+5p1217,p12+5p1317,p13+5p1417,p14+5p1517,p15+5p16
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国圆扁鞋带市场调查研究报告
- 2025年中国双立柱卧式带锯床市场调查研究报告
- 2025年中国功放机前镜片市场调查研究报告
- 2025年中国再生碳黑市场调查研究报告
- 2025年中国光隔离超远程驱动器市场调查研究报告
- 2025年中国仿石吊灯市场调查研究报告
- 2025年中国中高压空压机市场调查研究报告
- 2025年中国TM卡办公智能门锁市场调查研究报告
- 2025年中国DVD包市场调查研究报告
- 2025年脱硫脱硝设备合作协议书
- 2025电力物资检储配一体化建设技术导则
- 农业碳汇开发咨询服务合同范本(CCER项目)
- 劳务外包服务投标方案(技术标)
- 初中体育课程改革与发展计划
- 第四单元-植物细胞工程(教师版)高二生物单元复习知识清单
- 《建筑与市政工程施工现场专业人员职业标准》(JGJ/T 250-2011)
- 拟写文学(新闻)点评、前言、微新闻、串台词等-2025年高考语文一轮复习知识清单(解析版)
- 普通地质学知到智慧树章节测试课后答案2024年秋临沂大学
- 广东高职高考英语必背单词2024
- 【MOOC】创业基础-暨南大学 中国大学慕课MOOC答案
- 小学四年级奥数教程30讲(经典讲解)
评论
0/150
提交评论