数字信号处理的FPGA实现课程报告Word下载.docx

上传人:b****4 文档编号:16574472 上传时间:2022-11-24 格式:DOCX 页数:12 大小:281.66KB
下载 相关 举报
数字信号处理的FPGA实现课程报告Word下载.docx_第1页
第1页 / 共12页
数字信号处理的FPGA实现课程报告Word下载.docx_第2页
第2页 / 共12页
数字信号处理的FPGA实现课程报告Word下载.docx_第3页
第3页 / 共12页
数字信号处理的FPGA实现课程报告Word下载.docx_第4页
第4页 / 共12页
数字信号处理的FPGA实现课程报告Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

数字信号处理的FPGA实现课程报告Word下载.docx

《数字信号处理的FPGA实现课程报告Word下载.docx》由会员分享,可在线阅读,更多相关《数字信号处理的FPGA实现课程报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

数字信号处理的FPGA实现课程报告Word下载.docx

使用FPGA的芯片EPM240F10015来实现其相应的DA表为:

LIBRARYieee;

USEieee.std_logic_1164.ALL;

USEieee.std_logic_arith.ALL;

ENTITYcase5pIS

PORT(table_in:

INSTD_LOGIC_VECTOR(4DOWNTO0);

table_out:

OUTINTEGERRANGE0TO25);

ENDcase5p;

ARCHITECTURELEsOFcase5pIS

BEGIN

--ThisistheDACASEtablefor

--the5coefficients:

1,3,5,7,9

--automaticallygeneratedwithdagen.exe--DONOTEDIT!

PROCESS(table_in)

BEGIN

CASEtable_inIS

WHEN"

00000"

=>

table_out<

=0;

00001"

=1;

00010"

=3;

00011"

=4;

00100"

=5;

00101"

=6;

00110"

=8;

00111"

=9;

01000"

=7;

01001"

01010"

=10;

01011"

=11;

01100"

=12;

01101"

=13;

01110"

=15;

01111"

=16;

10000"

10001"

10010"

10011"

10100"

=14;

10101"

10110"

=17;

10111"

=18;

11000"

11001"

11010"

=19;

11011"

=20;

11100"

=21;

11101"

=22;

11110"

=24;

11111"

=25;

WHENOTHERS=>

ENDCASE;

ENDPROCESS;

ENDLEs;

系统程序为:

--Usingpredefinedpackages

ENTITYdafsmIS------>

Interface

PORT(clk,reset:

INSTD_LOGIC;

x0_in,x1_in,x2_in,x3_in,x4_in:

lut:

OUTINTEGERRANGE0TO25;

y:

OUTINTEGERRANGE0TO1024);

ENDdafsm;

ARCHITECTUREfpgaOFdafsmIS

COMPONENTcase5p--User-definedcomponent

ENDCOMPONENT;

TYPESTATE_TYPEIS(s0,s1);

SIGNALstate:

STATE_TYPE;

SIGNALx0,x1,x2,x3,x4,table_in

:

STD_LOGIC_VECTOR(4DOWNTO0);

SIGNALtable_out:

INTEGERRANGE0TO31;

table_in(0)<

=x0(0);

table_in

(1)<

=x1(0);

table_in

(2)<

=x2(0);

table_in(3)<

=x3(0);

table_in(4)<

=x4(0);

PROCESS(reset,clk)------>

DAinbehavioralstyle

VARIABLEp:

INTEGERRANGE0TO63;

--temp.register

VARIABLEcount:

INTEGERRANGE0TO5;

--countsshifts

IFreset='

1'

THEN--asynchronousreset

state<

=s0;

ELSIFrising_edge(clk)THEN

CASEstateIS

WHENs0=>

--Initializationstep

=s1;

count:

p:

x0<

=x0_in;

x1<

=x1_in;

x2<

=x2_in;

x3<

=x3_in;

x4<

=x4_in;

WHENs1=>

--Processingstep

IFcount=5THEN--Issumofproductdone?

y<

=p;

--Outputofresulttoyand

--startnextsumofproduct

ELSE

=p/2+table_out*16;

FORkIN0TO3LOOP--Shiftbits

x0(k)<

=x0(k+1);

x1(k)<

=x1(k+1);

x2(k)<

=x2(k+1);

x3(k)<

=x3(k+1);

x4(k)<

=x4(k+1);

ENDLOOP;

=count+1;

ENDIF;

LC_Table0:

case5p

PORTMAP(table_in=>

table_in,table_out=>

table_out);

lut<

=table_out;

--Extratestsignal

ENDfpga;

如图f给出了对应序列{2,3,2,6,6}的仿真结果此仿真结果给出了clk,reset等的信号。

以及5个输入信号:

(f)

由上图可以看出在程序中通过case5p来定义分布式算法表,合成器可以使用逻辑单元来实现lut,也由此可以看出其registeredperformance为140.35MHz。

其相应生成的FIR滤波器的RTLviewer为:

2.采用直接型实现5阶FIR滤波器

如分布式一样,直接型算法的时候也采用EPM240F10015,其相应的系统代码为:

PACKAGEeight_bit_intIS--User-definedtypes

SUBTYPEBYTEISINTEGERRANGE-128TO127;

TYPEARRAY_BYTEISARRAY(0TO4)OFBYTE;

ENDeight_bit_int;

LIBRARYwork;

USEwork.eight_bit_int.ALL;

ENTITYfir_srgIS------>

PORT(clk:

x:

INBYTE;

OUTBYTE);

ENDfir_srg;

ARCHITECTUREflexOFfir_srgIS

SIGNALtap:

ARRAY_BYTE:

=(0,0,0,0,0);

--Tappeddelaylineofbytes

p1:

PROCESS------>

Behavioralstyle

WAITUNTILclk='

;

--Computeoutputywiththefiltercoefficientsweight.

--Thecoefficientsare[13579].

--DivisionforAlteraVHDLisonlyallowedfor

--powers-of-twovalues!

=tap(0)+3*tap

(1)+5*tap

(2)+7*tap(3)+9*tap(4);

FORIIN3DOWNTO1LOOP

tap(I)<

=tap(I-1);

--Tappeddelayline:

shiftone

tap(0)<

=x;

--Inputinregister0

ENDflex;

其对应脉冲10的滤波器脉冲响应y的仿真结果如图g:

(g)

也由此可以看出其registeredperformance为64.52MHz。

四.基于matlab工具的滤波器系数计算:

其指标为:

采样频率:

64.52MHz归一化截止频率:

0.4MHz

类型:

低通输入数据S(n)宽度:

9位

阶数:

5阶输出数据y(n)宽度:

10位

Fdatool是Matlab自带的一个数字滤波器的设计分析软件,里面提供了丰富的参数供调整(具体的参阅Matlab的教材),大大降低了数字滤波器的设计难度,同时又可以设计出高质量的滤波器。

fdatool虽然不是最好的滤波器设计软件,但是在Matlab响亮的名号下,得到了广泛的使用。

FIRMegacore是Altera针对其主流FPGA推出的一款商业化的数字滤波器设计软件,可以直接生成HDL代码,同时其结构针对Altera自己的FPGA做了各种各样的优化。

尽管fdatool也可以生成可综合的HDL代码,但是没有针对FPGA的M4K、DSPBlock做出相应的优化,所以性能和FIRMegacore生成的FIR滤波器有相当的差距。

然而,FIRMegacore的滤波器设计工具相当的简单,只提供了窗函数法,用户只能定义有限的几个参数。

而其他的设计方法,比如矩形系数更好的等纹波法则只能在fdatool里面找到。

所幸的是,FIRMegacore提供了滤波器的Coefficients导入的选项,可以使用第三方工具生成的Coefficients。

这使得我们能够用FIRMegacore来实现fdatool生成的滤波器。

在matlab命令编辑窗口输入Fdatool指令,敲击回车可以打开FilterDesign&

AnalysisTool窗口,在该工具的帮助下,我们可以完成f.i.r.滤波器系数的计算工作。

FilterDesign&

AnalysisTool窗口

Fdatool界面总共分两大部分,一部分是designfilter,在界面的下半部分,用来设置滤波器的设计参数,另一部分则是特性区,在界面的上半部分,用来显示滤波器的各种特性。

designfilter部分主要分为:

ResponseType(响应类型)选项,包括Lowpass(低通)、Highpass(高通)、Bandpass(带通)、Bandstop(带阻)和特殊的滤波器。

根据本次作业要求,在该选项中选择Lowpass选项。

DesignMethod(设计方法)选项,包括IIR滤波器的Butterworth(巴特沃思)法、ChebyshevTypei(切比雪夫i型)法、ChebyshevTypeii(切比雪夫ii型)法、Elliptic(椭圆滤波器)法等和FIR滤波器的Equiripple法、Least-squares(最小乘方)法、Window(窗函数)法等多种方法。

结合本次作业要求,选择FIR滤波器的窗函数法进行设计。

选定窗函数法后,会在右侧出现Options区域,进行窗函数法相关参量的设置,根据作业要求选择Kaiser窗并设置Beta为:

0.5。

FilterOrder(滤波器阶数)选项,定义滤波器的阶数,包括Specifyorder(指定阶数)和Minimumorder(最小阶数)。

在Specifyorder中填入所要设计的滤波器的阶数(n阶滤波器,specifyorder=n-1),如果选择Minimumorder则matlab根据所选择的滤波器类型自动使用最小阶数。

本次作业要求设计5阶滤波器,所以选定Specifyorder并填入4。

FrenquencySpecifications选项,可以详细定义频带的各参数,包括采样频率Fs和频带的截止频率。

它的具体选项由ResponseType选项和DesignMetho选项决定。

我们要求的Lowpass(低通)滤波器只需要定义Fs、Fc。

采用窗函数设计滤波器时,由于过渡带是由窗函数的类型和阶数所决定的,所以只需要定义通带截止频率,而不必定义阻带参数。

MagnitudeSpecifications选项,可以定义幅值衰减的情况。

采用窗函数设计时,通带截止频率处的幅值衰减固定为6db,所以不必定义。

滤波类型为:

直接型FIR

通过点击matlab的FDATool可以看出FIR滤波器的幅频响应为:

相频响应与幅频响应的比较:

由此图可以看出其时域与频域特性满足要求。

五.结论

以上理论分析和仿真结果表明,软硬件结合串行执行的DSP算法相比,DA算法具有明显的占用系统资源低和运行速度高的优点,是一种更为有效的FIR滤波器设计方法;

基于DA算法的数字信号处理设计具有DSP算法所无可比拟的优势,在极大的提高了FIR数字滤波器的处理速度和数据吞吐能力的同时,又可以保证系统很小的处理误差,是一种比较实用可靠高效的设计方法。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

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

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