Cypress技术论坛
直播中

彭菲

7年用户 174经验值
私信 关注
[问答]

为什么在运行时更改DFB的过滤系数都位于FiltTeDATAYB中?

论坛上有任何问题之前:我可以在运行时更改过滤器常量吗?我的回答是:是的,你可以。
这里有一个代码片段,抱怨它是如何工作的。
空LoadFilter(UIT8FLTR)//FLTR是指向专用参数块的指针。
{//DIF-DFB RAM在总线上:
滤子RAMI DRILYRG = FILTRE RAMI DRIYBUS;
如果(FLTR=1)
CytMeCpPy(FieldBdYRAM,Fiter 100xDATAYB,FieldBdl RAMYLA大小);
否则,如果(FLTR=2)
CytMeCpPy(FieldBdYRAM,Field200,DATAAB,FieldBdl RAMOLY大小);
否则,如果(FLTR=3)
CytMeCpPy(FieldBdYRAM,Field400,DATAAYB,Fielder-dBa RAMOLY大小);
否则,如果(FLTR=4)
CyMeMcPy(FieldBdYRAM,FiTrTpP2500,DATAYB,Fielder-dBa RAMYSIZE);
/从总线上取出DFB RAM:
滤子RAMI DRILYRG=FILTRE RAMI DILYDFB;
}
可以使用嵌入式筛选器向导计算的筛选器数据。设置参数后
在筛选器块中,构建应用程序,然后读取文件过滤器:RAMixDATa.
CONTU-UIT8 Cyter FieldAdDaaYB[]=
{
0x14,0xd0,0x01,0x00,0x28,0xa0,0x03,0x00,…
如果你想改变过滤器结构(FIR ->IIR),你必须以同样的方式交换下面的矩阵:
CONST UtiT8 Cyter Fielter控件[]=
{
0x20,0x13,0x00,0x25,0x61,0x17,0x80,0x26,…
不知道为什么所有的过滤系数都位于FiltTeDATAYB中,甚至当你使用过滤级A.时。
祝你好运!

回帖(3)

张琳

2019-9-3 12:06:18
谢谢你的信息。你也可以邮寄样品项目吗?
奥迪赛1
举报

彭菲

2019-9-3 12:11:18
这里只有一个“大”的程序,包括集中的线。
请注意:编译与PSoC Creator 2.2,因为我用CY8CKIT-014与CY55 88 AXI.060-ES1。
有趣的是:
C线723…
C完成
H线13…
玩得高兴!
MySE5ES1.BuffLe01.CyWrk.SaveV01.Zip
804 K
举报

杨军

2019-9-3 12:22:37
从技术支持看系数的位置
1。为什么,当做一个Chan-A和Chan-B过滤器,每个64个抽头,所有的过滤器数据都显示在FiltTeDATAYB[]中,在Filter?DATAAYA[]中没有?
DFB有2个数据RAM。2个RAM块中的一个用于存储两个通道的滤波器效率。另一个RAM块用于存储中间数据或传入样本。
这就是为什么信道的共同效率都存储在数据RAM B中的原因。
2。为什么数组都定义为32个系数?这是因为对称性,所以你只需要1/2个系数?”
对。
三。对于BiQuad也,数据RAM B将保持CO效率。
问候,Dana。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分