本帖最后由 putaoshu 于 2014-5-27 09:28 编辑
是这篇帖子 “LTE小区搜索App加入对HACKRF的支撑,有望将来解调LTE SIB信息”的后续,终于看到曙光了。
原文发表于: hackrf.net
HACKRF比起电视棒的巨大优势之一是带宽和采样率高了很多,因此如果不用来玩完整带宽的LTE信号的话让掏了比电视棒贵xx倍的钱买HACKRF的人情何以堪!
从HACKRF公开的指标来看,带宽和采样率最大约20M。目前部署的主流LTE(至少用小区搜索程序在国内看到的)均为20MHz带宽配置。那么用HACKRF能接收整个20MHz带宽的LTE信号吗?这里给出答案:
YES!
根 据LTE标准,20MHz带宽的配置下,基本采样率为30.72Msps,但HACKRF最高采样率约20Msps,这是大家需要克服的第一个困难。根据 采样理论和HACKRF的硬件架构,HACKRF应该是能无损保存20MHz带宽信号的(不考虑A/D量化噪声和模拟电路非理想因素),这扫清了理论上的 障碍。只不过HACKRF保存下来的信号采样率为20Msps左右,剩下的就是怎么把采集的信号从大约20Msps变换为LTE标准的 30.72Msps。其实这在数字信号处理里是一个再经典不过的问题,就是"分数倍采样率变换"。一般的做法是进行M倍过采样和N倍抽取,得到M/N倍的 有理数倍采样率变换。需要选择合适的参数使得M和N不是太大,否则处理负担会很重,当然采样率变换过程中滤波器也少不了,采用成熟设计手段即可。最终采样 率变换使用的参数为:
HACKRF设置采样率19.2M;M=8;N=5;最终得到30.72M采样率。
(其实这里有两点我 们非常幸运。一是国内扫到的LTE信号基本都是100RB的,即实际带宽为100*180kHz=18MHz。二是经过测试HACKRF和计算机之间 USB实际传输带宽,发现最大吞吐也就支撑20Msps左右采样率。大家能用19.2Msps采样率搞定一切真的很幸运,基本上已经将HACKRF的能力 发挥到极致了!)
其实一开始知道HACKRF采样率只有20M时,我心想看来最多只能玩玩10MHz的LTE了,因为LTE-10MHz所 需的15.36Msps采样率对于HACKRF还是没问题的,但30.72Msps采样率HACKRF就不行了。不过有一次王康打电话和我讨论LTE,我 说LTE信号带宽是20MHz,王康问那是不是能用HACKRF接收?因为HACKRF最大支撑20MHz带宽。就在那一瞬间激发了我的灵感,心想:是 啊,虽然采样率比标准规定的低,但理论上应该没问题。于是答应下来想想怎么弄。到今天终于证明了其可行性。“无知者无畏”绝对是褒意词!估计手机芯片商和 基站厂商没一个这么做的,人家都是不差钱的高大上,30.72M的采样率还不是小case?A/D直接给支撑喽!你要30.72M给你61.44M行不 行?
这里用19.2Msps玩LTE,借用某工匠的话:不是为了证明我赢了那些厂商,只是认真做做看行不行。
有了 30.72Msps采样率的LTE信号,剩下的就好办了。把LTE下行接收机所需的流程和算法一溜烟做一遍就是了:PSS(主同步) SSS(辅同步)检测、时频同步、信道估计和PBCH(物理广播信道)盲捡得到MIB和其他一些必要信息(SFN(系统帧号),端口数之类的)、然后就是 在整个20M带宽内提取各个信道的符号,按照标准去解调解码: PCIFCH(物理控制信息格式信道) --> PHICH(物理HARQ指示信道) --> PDCCH(物理下行控制信道)盲检,最后可以看到format1A的DCI(控制格式指示)所指示的SIB(系统信息块)的星座图。从开始到PBCH盲 检借用了原编辑James Peroulas的不少代码,TDD支撑以及PCFICH之后都是按照标准自己做的。
2360MHz 解析出来的TD-LTE 20MHz时频格(纵轴子载波,横轴OFDM符号)。这是一帧10ms信号。TDD模式,帧号310、上下行配置2、物理层小区ID 30、端口数1、Normal CP、PHICH duration Normal、PHICH resource 1(参见图标题)。图中可明显看到CRS、PSS、SSS、PBCH、PDCCH和子帧5上的一个PDSCH(SIB1)。
2360MHz MATLAB的一些解调输出信息:
TDD SFN-310 ULDL-2-|D|S|U|D|D|D|S|U|D|D| CID-30 nPort-1 CP-normal PHICH-DUR-normal-RES-1
SF5 PHICH1 PDCCH3 RNTI: SI-RNTI SI-RNTI
No.0 4CCE: Localized VRB from RB0 to RB6 MCS-2 HARQ-0 NEWind-0 RV-1 TPC-1 DAI-0
No.0 8CCE: Localized VRB from RB0 to RB6 MCS-2 HARQ-0 NEWind-0 RV-1 TPC-1 DAI-0
以上信息表明在子帧5上检测到一个PDCCH(通过SI-RNTI校验),和时频格相符合。这是一个format1A的DCI指示SIB1的位置,根据这个指示,找到SIB1所在的PDSCH资源格,画出均衡后的星座图:
上面的基站正好在发射单端口的信号,因此时频格和星座图比较好看。下面是一个双端口发射信号。
2585MHz 解析出来的TD-LTE 20MHz时频格。这是一帧10ms信号。TDD模式,帧号900、上下行配置2、物理层小区ID 216、端口数2、Normal CP、PHICH duration Normal、PHICH resource 1(参见图标题)。图中可明显看到CRS、PSS、SSS、PBCH、PDCCH和子帧4、5上的PDSCH。
2585MHz MATLAB的一些解调输出信息:
TDD SFN-900 ULDL-2-|D|S|U|D|D|D|S|U|D|D| CID-216 nPort-2 CP-normal PHICH-DUR-normal-RES-1
SF4 PHICH1 PDCCH1 RNTI: SI-RNTI SI-RNTI
No.0 4CCE: Localized VRB from RB0 to RB5 MCS-2 HARQ-0 NEWind-0 RV-0 TPC-1 DAI-0
No.0 8CCE: Localized VRB from RB0 to RB5 MCS-2 HARQ-0 NEWind-0 RV-0 TPC-1 DAI-0
SF5 PHICH1 PDCCH1 RNTI: SI-RNTI SI-RNTI
No.0 4CCE: Localized VRB from RB0 to RB5 MCS-2 HARQ-0 NEWind-0 RV-3 TPC-1 DAI-0
No.0 8CCE: Localized VRB from RB0 to RB5 MCS-2 HARQ-0 NEWind-0 RV-3 TPC-1 DAI-0
以上信息表明在子帧4、5上都检测PDCCH(通过SI-RNTI校验),和时频格相符合。具体信息已在上面列出。
按照惯例,最后放出视频:
(好像hack或者hackrf变成youku过滤词了,得避免才能发布)
补充内容 (2014-10-26 14:45):
我的新浪博客被新浪粗暴关掉了。所有博文现在已经迁移至:sdr-x.github.io
补充内容 (2014-10-26 14:55):
我的博客被新浪粗暴关闭了,所有博文已经迁移至:http://sdr-x.github.io/
|