完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
大家好!
不知道谁有利用BCP实现PDCCH的例子?实现的不仅仅是编码部分还包括加扰和调制部分?我现在的DSP型号是C6670. 求大神赐予!不胜感激! |
|
相关推荐
16个回答
|
|
|
|
|
|
你好!Andy, 现在这部分我是实现的差不多了,但就是有一个很大的问题摆在我的前面,那就是所有DCI做完了速率匹配之后CPU会进行复用,那么我们直接将复用的数据送入BCP做加扰和调制的操作,根据我目前的调试结果,BCP不识别我速率匹配后的结果啊,不知道有什么还需要配置的?或者有什么该注意的,目前我的调制结果一直是错误的。非常期待您的解答! 谢谢! |
|
|
|
阿布蛋蛋 发表于 2018-6-21 11:00 CRC/ENC/RM是分PDCCH依次输入处理,MOD是将一个TTI所有PDCCH复用后再次输入处理,你的复用是DSP CORE完成的么,确认一下复用输出结果及MOD的配置。你现在MOD输出的结果是怎样的,有什么规律么。如果复用没有问题,对于MOD模块而言没什么特殊的配置,无非就是按照手册说明配置相应的modulation type、enable scrambling、CINIT等参数。 |
|
|
|
zbb9612 发表于 2018-6-21 11:14 hi, Andy, 非常感谢您的回答! 关于您说的我解释一下: 复用结果输出时正确的,因为我将这个结果直接进行软件加扰和调制是OK的!结果如下: 0x01000101 0x00010100 0x00000101 0x01000001 0x00010100 0x00000001 0x01010000 0x00010001 0x01010101 0x00010001 0x01010000 0x01010100 0x00010001 0x01010100 0x01010001 0x01000001 0x01010101 0x00000101 另外我的MOD的配置如下: pPureModHdrCfg->moduleId = BcpSubModuleId_MOD; pPureModHdrCfg->mode = 1; pPureModHdrCfg->swapIQOutput = EBcpSwapIQ_Disabled; pPureModHdrCfg->localHdrLength = 4; pPureModHdrCfg->modeType = EBcpModType_QPSK; pPureModHdrCfg->uvaValue = 0; pPureModHdrCfg->enScr = 1; pPureModHdrCfg->rmuxLength = 0; pPureModHdrCfg->indexTableB = 0; pPureModHdrCfg->cmuxLength = 0; pPureModHdrCfg->qFormat = 0; pPureModHdrCfg->cqiLength = 0; pPureModHdrCfg->riLength = 0; pPureModHdrCfg->ackLength = 0; pPureModHdrCfg->cinitP2Value = cinit; pPureModHdrCfg->splitMode = 0; 然后我的输出有一个规律那就是,如果速率匹配之后的结果输入后进行加扰,加扰公式是由(c(i)+b(i))mod2,加扰后的经过MATLAB反推回去发现我的b(i)竟然一直为0,加扰全部是采用c(i)实现的,我的cinit为x02083. 所以我们现在怀疑MOD模块对数据是否有特殊要求呢? |
|
|
|
uvaValue配成0当然调制结果全是0了,uvaValue这个值是调制幅度定标值,每个调制符号都会乘上这个幅度值,应根据实际应用功率定标配置。 |
|
|
|
zbb9612 发表于 2018-6-21 11:42 Hi Andy, 可是我的调制输出时选择了硬调制压缩输出,也就是我仅仅需要输出的是星座点的索引,所以这个值在这边为0不影响结果吧?而且星座点索引输出是有值的: 0x05030203 0x05040404 0x04030403 0x05020204 0x04050205 0x04050404 0x03020305 0x05020302 0x04020204 谢谢! |
|
|
|
阿布蛋蛋 发表于 2018-6-21 11:51 输出上述列出的索引结果的话说明mod之后结果不全是0呀,如果结果还是错的看看输入输出数据格式设置 |
|
|
|
Hi Andy, 是啊,并不全为0 ,但是这个结果反推回去发现是做加扰的时候仅仅利用c(i)来做加扰,而b(i)的值却全为0 ,但是我的b(i)是有值的啊,那个值是: 0x01000101 0x00010100 0x00000101 0x01000001 0x00010100 0x00000001 0x01010000 0x00010001 0x01010101 0x00010001 0x01010000 0x01010100 0x00010001 0x01010100 0x01010001 0x01000001 0x01010101 0x00000101 另外在BCP的用户指导书中讲到MOD的输入有三种格式: The MOD input data is usually provided by the RM submodule. The data is formatted as a stream of 8-bit integers. Each 8-bit integer will represent one of the following: • Soft bit LLR in 2's complement format - used in the soft-decision PIC/SIC uplink LTE receiver • Soft bit LLR in 2's complement format (extreme values: 0x7f for 1 and 0x81 for 0) - used in the hard-decision PIC/SIC uplink LTE receiver • Bit to be hard modulated format (0x01 for 1 and 0x00 for 0) - used in the downlink LTE or WiMAX transmitter 可是并没有看到任何寄存器指示这个输入格式是选择哪种?是不是BCP里面会自动识别?如果自动识别,为何不能识别我的RM模块输出的结果? 谢谢您的解答哈! |
|
|
|
阿布蛋蛋 发表于 2018-6-21 12:07 建议你先修改uval的值为非0试试,我怀疑是这个值导致的,因为即使是由于工作在大端模式下TM flow table中endian in/out format不匹配的话也不应该是你推导出的原始bit全0. |
|
|
|
zbb9612 发表于 2018-6-21 12:14 Hi Andy, 这个值不为0 的情况也尝试过了,具体修改为: if(m_BcpParams.modulation == 1 || m_BcpParams.modulation == 2) // BPSK pPureModHdrCfg->uvaValue = (m_BcpParams.linAmpl * 23170 + 0x4000) >> 15; else if(m_BcpParams.modulation == 4) //16 QAM pPureModHdrCfg->uvaValue = (m_BcpParams.linAmpl * 10362 + 0x4000) >> 15; else if(m_BcpParams.modulation == 6) //64 QAM pPureModHdrCfg->uvaValue = (m_BcpParams.linAmpl * 5056 + 0x4000) >> 15; else //256 QAM pPureModHdrCfg->uvaValue = (m_BcpParams.linAmpl * 2513 + 0x4000) >> 15; 但是结果还是一样的。因为RM的输出结果是BCP输出的,我们没有做任何操作就直接输入BCP,可是BCP 不识别这些数据,后来我们尝试直接写输入值,全为FF或者8F或者7F好像有点效果,但是输出的值还是和自己预期的对应不上, 所以目前就不清楚BCP期望输入的值是什么,有何规律? 谢谢您的解答! |
|
|
|
阿布蛋蛋 发表于 2018-6-21 12:28 1. 你是用的大端还是小端测试;大端测试需要注意TM flow table endian in/out format; 2. 将scramble diable,测试看看MOD调制输出结果; 3. 由于你中间涉及到DSP core参与复用处理,数据如果放在共享memory,需要注意cache一致性维护,如在复用后需要执行cache write back。 |
|
|
|
zbb9612 发表于 2018-6-21 12:44 hi Andy, 关于你的问题,我的回答如下: 1. 你是用的大端还是小端测试;大端测试需要注意TM flow table endian in/out format; 我现在采用的大端测试,flow Table的配置如下: tmFlowCfg.endianIn = EBcpEndianFormat_128; tmFlowCfg.formatIn = EBcpTmDataFormat_Reverse8; tmFlowCfg.endianOut = EBcpEndianFormat_128; tmFlowCfg.formatOut = EBcpTmDataFormat_NoChange; 2.将scramble diable,测试看看MOD调制输出结果; 直接Disable了加扰,输出结果都是0;如下: 0x02020202 0x02020202 0x02020202 0x02020202 0x02020202 0x02020202 0x02020202 ......... 3.由于你中间涉及到DSP core参与复用��理,数据如果放在共享memory,需要注意cache一致性维护,如在复用后需要执行cache write back。 我将BCPRM的输出和复用的结果放在全局变量中,所以应该不会出现cache不一致的现象,而且假设我不用不bcp的输出,而是直接赋值送进BCP也是一样的结果。 谢谢您的解答! |
|
|
|
zbb9612 发表于 2018-6-21 12:44 Hi Andy, 昨天我把加扰关掉,然后固定地输入某些值,发现一个规律:输入大于0x81的值都被BCP解释为1,小于0x7F的值都被BCP解释为0,所以如果我按照RM输出的输入那BCP肯定都解释为0了,不过这个是为什么?难道BCP是按照软解的来读数据? 求大神帮忙啊! 谢谢啊! |
|
|
|
阿布蛋蛋 发表于 2018-6-21 12:54 我觉得你的flow table配置的有问题,MOD的输入是一个字节代表一个bit,及0->0x00, 1->0x01,所以formatIn肯定不能配置为EBcpTmDataFormat_Reverse8,你输入MOD的数据是怎么排列的。 把你MOD输入数据格式发上来说明一下,另外把你最终生成的MOD header发上来。 |
|
|
|
zbb9612 发表于 2018-6-21 13:17 Hi Andy, MOD输入的数据格式用memory Dump如下: 0x01000101 0x00010100 0x00000101 0x01000001 0x00010100 0x00000001 0x01010000 0x00010001 0x01010101 0x00010001 0x01010000 0x01010100 0x00010001 0x01010100 0x01010001 0x01000001 0x01010101 0x00000101 因为只有1个CCE,所以也就才72 Bits,所以只有前18个WORD有值。 另外MOD的头部如下: pPureModHdrCfg->moduleId = BcpSubModuleId_MOD; pPureModHdrCfg->mode = (EBcpModMode)HardModulation_Compressed; pPureModHdrCfg->swapIQOutput = EBcpSwapIQ_Disabled; pPureModHdrCfg->localHdrLength = 4; pPureModHdrCfg->modeType = EBcpModType_QPSK; pPureModHdrCfg->uvaValue = 0 pPureModHdrCfg->enScr = EBcpScrambling_Enabled; pPureModHdrCfg->rmuxLength = 0; pPureModHdrCfg->indexTableB = 0; pPureModHdrCfg->cmuxLength = 0; pPureModHdrCfg->qFormat = 0; pPureModHdrCfg->cqiLength = 0; pPureModHdrCfg->riLength = 0; pPureModHdrCfg->ackLength = 0; pPureModHdrCfg->cinitP2Value = cinit; pPureModHdrCfg->splitMode = EBcpSplitMode_Disabled; |
|
|
|
问题解决了么,根本原因是什么? |
|
|
|
只有小组成员才能发言,加入小组>>
574 浏览 1 评论
408 浏览 1 评论
609 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
863 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
695 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
161浏览 29评论
1064浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
306浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
267浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
117浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 17:39 , Processed in 1.089939 second(s), Total 106, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号