基于FPGA的FIR complier IP核 学习资料(二)

接上篇,写一下如何只配置一个核就能分别对I、Q两路进行滤波。

首先还是先打开IP核的配置界面(第一页),如下图所示:

在图中1部分,我们仍是既可以选择向量的方式,也可以选择文件的方式。这里是用的文件的方式。如果配置两个IP核的话,就需要用到两个滤波系数文件,这里只配置一个文件,只要一个系数文件就行。系数文件的格式如下:

radix=10;  //十进制表示
coefdata=   //前20个是I路的滤波系数,后20个是Q路的滤波系数。
1,
-3,
6,
-9,
12,
-13,
9,
5,
-47,
413,
179,
-83,
49,
-29,
15,
-7,
2,
0,
-1,
1,    
1,
-1,
0,
2,
-7,
15,
-29,
49,
-83,
179,
413,
-47,
5,
9,
-13,
12,
-9,
6,
-3,
1;

然后把文件加载进去,在图中3部分选择系数集的个数为2个(I路和Q路)。注意:在用这种方法的时候,一定要注意让两个系数集内部的系数个数相等,不然IP核怎么去区分哪些系数是I路的哪些系数是Q路的呢。

其他的参数配置都和(一)中的保持一致就行,这时候再看IP symbol,如下图所示:

多了一个滤波器选择接口。通过这个接口,我们在实例化时候就可以选择两组滤波器系数中的一个了。其实例化的代码如下:

//i路滤波							
my_iqfir ddc2_ifir_inst (
	.clk(clk250), // input clk
	.filter_sel(1'b0), // input [0 : 0] filter_sel,0选择I路(第一组)滤波系数
	.rfd(rfd_i), // output rfd
	.rdy(rdy_i), // output rdy
	.din(i_out), // input [11 : 0] din
	.dout(idataout)); // output [21 : 0] dout	
//q路滤波				
my_iqfir ddc2_qfir_inst (
	.clk(clk250), // input clk
	.filter_sel(1'b1), // input [0 : 0] filter_sel,1选择Q路(第二组)滤波系数
	.rfd(rfd_q), // output rfd
	.rdy(rdy_q), // output rdy
	.din(q_out), // input [11 : 0] din
	.dout(qdataout)); // output [21 : 0] dout	

“filter_sel”这个接口的值filter_sel可以是静态的(如上面的代码所示)也可以是动态的(在送入数据的同时,送入是I路还是Q路的信号),这就看自己所编写的代码了。

然后我就想着仿真吧,但是,在加载仿真文件的时候总是报错“ERROR:HDLCompiler   Instantiating from unknown module (错误:HDLCompiler从未知模块实例化)”,觉得是模块名称在实例化时候写错了,可转念一想,不应该啊,我是从.veo文件直接拷贝过来的,这也能错?!抱着试试看的态度,我把ISE关掉重新启动,然后再次加载仿真文件,成......了......

仿真的结果如下图所示:

结果和matlab仿真结果对着呢。说明可以只配置一个IP核,然后根据 “filter_sel”这个接口来动态的选择使用哪组滤波系数(可以是三组、四组......等等)

关于这个数字下变频中的滤波器的使用,应该就到这儿结束了,如果后期还有改进啥的,再添加吧。

 

 

对于基于FPGA的高通滤波器,可以使用FIR(Finite Impulse Response)IP核来实现。FIR滤波器是一种线性时不变滤波器,通过对输入信号的离散样本进行加权求和来实现滤波效果。在FPGA中,可以通过使用FIR IP核来快速实现高通滤波器。 FIR IP核通常提供了一些参数,例如滤波器的阶数、截止频率以及滤波器系数等。根据所需的滤波器规格,可以选择适当的参数值。一旦设置好参数,可以将FIR IP核实例化到FPGA设计中,并将输入信号和时钟连接到该IP核。 在FPGA中,FIR IP核通常采用流水线结构,以提高处理速度。输入信号经过滤波器系数的乘法和累加操作,得到输出信号。由于FPGA的并行计算能力,可以同时处理多个输入样本,从而实现高效的滤波操作。 使用FIR IP核进行高通滤波的具体步骤如下: 1. 根据滤波器要求设置FIR IP核的参数,包括阶数、截止频率等。 2. 实例化FIR IP核并将其连接到FPGA设计中。 3. 将输入信号和时钟连接到FIR IP核。 4. 根据需要,可以对输入信号进行预处理或后处理。 5. 在FPGA中生成时钟信号以驱动FIR IP核的工作。 6. 获取FIR IP核的输出信号,即滤波后的高通信号。 需要注意的是,具体的实现细节可能会根据所选用的FPGAFIR IP核的供应商而有所不同。因此,在使用FIR IP核进行高通滤波之前,建议参考相关文档和资源,以确保正确配置和使用IP核
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值