Skip to content

Instantly share code, notes, and snippets.

@hplc
Last active June 19, 2019 07:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hplc/8b9a058caa8f747701e369cd27104ba8 to your computer and use it in GitHub Desktop.
Save hplc/8b9a058caa8f747701e369cd27104ba8 to your computer and use it in GitHub Desktop.
#!/usr/bin/php
<?php
$terms = [
"OFDM的英文全称为" => "Orthogonal Frequency Division Multiplexing",
"OFDMA的英文全称为" => "Orthogonal Frequency Division Multiplexing Access",
"LTE中子载波的频率间隔是" => "15KHz",
"一个OFDM的符号周期(不包含CP)是多少μs(精确到小数点后两位)" => "66.67",
"OFDM中的O的中文含义是" => "正交",
"PRB的英文全称为" => "Physical Resource Block",
"RB的英文全称为" => "Resource Block",
"RE的英文全称为" => "Resource Element",
"一个RB包含多少个RE" => "84",
"一个物理资源块PRB,频域上包含多少个子载波" => "12",
"LTE定义的Band 38频段,其最低频率为" => "2570MHz",
"LTE定义的Band 38频段,其最高频率为" => "2620MHz",
"在LTE中,帧结构时间描述的最小单位就是采样周期Ts。每个子载波为2048阶IFFT采样,所以LTE的采样周期Ts为多少μs(精确到小数点后三位)" => "0.033",
"一个TDD-LTE无线帧周期Tf包含多少Ts" => "307200",
"一个TDD-LTE半帧包含多少Ts" => "153600",
"一个TDD-LTE子帧包含多少Ts" => "30720",
"一个TDD-LTE时隙包含多少Ts" => "15360",
"一个物理资源块PRB,时域上包含多少个OFDM符号(常规CP)" => "7",
"一个物理资源块PRB,在时间上的长度约为" => "0.5ms",
"LTE无线帧,在时间上的长度为" => "10ms",
"一个LTE无线帧,包含多少个子帧" => "10",
"一个子帧,在时间上的长度为" => "1ms",
"一个子帧,包含多少个时隙" => "2",
"一个时隙,在时间上的长度为" => "0.5ms",
"一个LTE无线帧,包含多少个半帧" => "2",
"一个半帧,在时间上的长度为" => "5ms",
"一个半帧,包含多少个子帧" => "5",
"特殊子帧:DwPTS + GP + UpPTS,在时间上的长度为" => "1ms",
"LTE中,上行采用的多址技术是" => "SC-FDMA",
"LTE中,下行采用的多址技术是" => "OFDMA",
"TDD无线帧中的特殊子帧包含3个时隙,分别是(三者间用英文逗号间隔)" => "DwPTS,GP,UpPTS",
"MIMO的英文全称为" => "Multiple Input Multiple Output",
"SU-MIMO的英文全称为" => "Single User Multiple Input Multiple Output",
"MU-MIMO的英文全称为" => "Multi User Multiple Input Multiple Output",
"AMC的英文全称为" => "Adaptive Modulation and Coding",
"LTE中定义的最大小区ID个数为多少个" => "504",
"HARQ" => "Hybrid Automatic Repeat Request",
"CP" => "Cyclic Prefix",
"ISI" => "Inter Symbol Interference",
"ICI" => "Inter Carrier Interference",
"IFFT" => "Inverse Fast Fourier Transform",
"SC-FDMA" => "Single-Carrier Frequency Division Multiple Access",
"MCM" => "Multi-Carrier Modulation",
"ICIC" => "Inter-Cell Interference Indication",
"LTE的RLC和MAC之间的信道称为" => "逻辑信道",
"LTE的MAC和PHY之间的信道称为" => "传输信道",
"LTE的PHY层上的信道称为" => "物理信道",
"LTE的逻辑信道中的五个控制信道为(用英文术语简称,各术语间用英文逗号间隔)" => "BCCH,PCCH,CCCH,DCCH,MCCH",
"LTE的逻辑信道中的两个业务信道为(用英文术语简称,各术语间用英文逗号间隔)" => "DTCH,MTCH",
"LTE的传输信道中的四个下行信道为(用英文术语简称,各术语间用英文逗号间隔)" => "BCH,PCH,DL-SCH,MCH",
"LTE的传输信道中的两个上行信道为(用英文术语简称,各术语间用英文逗号间隔)" => "RACH,UL-SCH",
"LTE的物理信道中的六个下行信道为:PBCH,PDCCH,PDSCH,PCFICH,PHICH和" => "PMCH",
"LTE的物理信道中的三个上行信道为:PUCCH,PUSCH和" => "PRACH",
"LTE中物理层小区组数为" => "168",
"LTE中物理层每个小区组中的小区ID个数为" => "3",
"LTE中定义的最大小区ID个数为" => "504"
];
system("clear");
$name = readline("Input Your Exam Name(Like: 04-张三): ");
system("date");
$time_start = time();
$count = count($terms);
echo PHP_EOL;
echo "Hello, $name!";
echo PHP_EOL;
$line = "Init";
$i = 0;
// while ($term = current($terms)) {
// $key = key($terms);
while ($key = array_rand($terms)) {
$term = $terms[$key];
$i++;
while ($line !== $term) {
if ($line !== "Init") {
echo "Wrong! Try again!" . PHP_EOL;
}
$line = readline("$i/$count. $key: ");
}
echo "Good!";
$line = "Init";
echo PHP_EOL;
// next($terms);
unset($terms[$key]);
}
system("date");
$time_end = time();
echo PHP_EOL;
$seconds = $time_end - $time_start;
echo "$name, you finished the test in " . $seconds . " seconds!";
echo PHP_EOL;
echo "Great!!!";
echo PHP_EOL;
$content = "$name: $seconds seconds, " . date('Y-m-d H:i:s', $time_end) . "\n";
file_put_contents("./lte-exam.log", $content, FILE_APPEND | LOCK_EX);
while (true) { readline(); }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment