职场 | 联发科MTK手机通信协议软件开发工程师面试总结

面试流程:

笔试:1小时

面试:两轮

本文主要是对笔面试过程的知识点查漏补缺

1.多普勒效应

生活中的例子:警车/救护车向你驶来的时候,警笛声音越来越大,离你而去的时候,警笛声音越来越小.

医学上的应用:彩超

原理:在运动的波源前面,波被压缩,波长变得较短,频率变得较高(蓝移blue shift);在运动的波源后面时,会产生相反的效应。波长变得较长,频率变得较低(红移red shift);波源的速度越高,所产生的效应越大。所有的波都存在多普勒效应.

在通信上的体现:当移动台以恒定的速率沿某一方向移动时,由于传播路程差的原因,会造成相位和频率的变化.

 

2.多径效应

电磁波经不同路径传播后,各分量场到达接收端的时间不同,按各自香味相互叠加而造成干扰,使原来的信号失真,产生错误.特殊情况,路径差正好为半个波长的时候波峰与波谷重合,信号相互抵消,看电视时候的重影就是这个.

3.LTE TDD LTE FDD有什么异同以及各自的优点?

TDD时分双工,FDD频分双工.

FDD系统在发送和接受数据上使用不同的频率,在上行和下行频率之间有双工间隔,常见的2G 3G制式的网络中,GSM CDMA WCDMA是典型的FDD系统.FDD以1.8G作为首选频率,2.1G为辅助频率.FDD速度快,适合逛覆盖,理论下行速率是150Mbps

TDD系统在发送和接受数据上使用相同的频率,上下行数据在发送的时候通过时间错开,通过在时间上错开上下行数据,可以避免上下行干扰.我国自主的TD-SCDMA技术就是典型的TDD系统.TDD以2.6G为主要频率.TDD省资源,适合区域覆盖,理论下行速率是100Mbps.

4.LTE的关键技术以及各自的优点

  • OFDM(Orthogonal Frequency Division Multiplexing)正交频分多址技术,属于调制复用技术,把系统带宽分成多个相互正交的子载波,在多个子载波上并行传输数据.各个子载波的正侥幸是由系带IFFT(Inverse Fast Fourier Transform)实现的.由于子载波带宽较小(15kHz),多径时延将导致符号间干扰ISI,破坏子载波之间的正交性,由此在OFDM符号间插入保护间隔,通常采用循环前缀CP来实现.
  • MIMO(Multiple-Input Multiple-Output)多入多出技术.LTE下行技术支持MIMO技术进行空间维度的复用.空间服用支持单用户SU-MIMO 或者MU-MIMO模式.SU-MIMO MU-MIMO都支持通过Pre-coding的方法来降低或者控制空间服用数据流之间的干扰.MU-MIMO中,空间服用的数据流调度给多个用户,多个用户通过空分方式共享同一时频资源,系统可以通过空间维度的多用户调度获得额外的多用户分集增益.
  • 调度和链路自适应

  LTE支持时间和频率两个维度的链路自适应,根据视频与新到质量信息对不同的视频资源选择不同的调职编码方式.

功率控制在CDMA系统中是一项终于的链路自适应技术,可以避免远近效应带来的多址干扰.在LTE系统之后,上下行均采用正交的OFMD技术对多用户进行复用.因此,工控主要用来降低邻小区上行的干扰,补偿链路损耗,也是一种慢速的链路自适应机制.

  • 小区干扰控制

LTE系统中,系统中各校区采用相同的频率进行发送和接受.与CDMA系统不同的是,LTE系统并不能通过合并不同小区的信号来降低邻小区信号的影响.因此必将在小区间产生干扰,小区边缘干扰尤为严重.

为了改善小区边缘的性能,系统上下行都需要采用一定的方法进行小区干扰控制.目前正在研究方法有:

干扰随机化:被动的干扰控制方法.目的是使系统在时频域收到的干扰尽可能平均,可通过加扰,交织,跳频等方法实现;

干扰对消:终端解调邻小区信息,对消邻小区信息后在解调本小区信息;或利用交织多址IDMA进行多小区信息联合解调;

干扰抑制:通过终端多个天线对空间有色干扰特性进行估计和抑制,可以分为空间维度和频率维度进行抑制.系统复杂度较大,可通过上下行的干扰抑制合并IRC实现.

干扰协调:主动的干扰控制技术,对小区边缘可用的时频资源做一定的限制,这是一种比较常见的小区干扰抑制方法.

5.现代通信系统所采用的分级技术有哪些?

分级技术是用来补偿衰落信道损耗的,通常通过两个或更多的接收天线来实现.同均衡器一样,它在不增加传输功率和带宽的前提下,而改善无线通信信道的传输质量.在移动通信中,基站和移动台的接收机都可以采用分集技术.分集是指分散传输和集中接收,所谓分散传输是使接收端能获得多个统计独立的,携带同一信息的衰落信号,集中接收是指接收机把收到的多个统计独立的衰落信号进行合并(选择与组合)以降低衰落的影响.

目前常用的分集方式有两种:宏分集和微分集.

宏分集也称为"多基站分集",主要是用于蜂窝系统的分集技术.在宏分集中,把多个基站设置在不同的地理位置和不同的方向上,同时和小区内的一个移动台进行通信.只要在各个方向上的信号传播不是同时受到阴影效应或地形的影响而出现严重的慢衰落,这种方法就可以保证通信不会中断,它是一种减少慢衰落的技术

6.现代通信系统中接收机的同步主要采用哪种方式?

首先什么是同步?同步通常是指通信系统的收发双方在时间上步调一至。同步是进行信息传输的必要和前提,同步性能的好坏直接影响着通信系统的性能。

按照同步的功能来分,有载波同步、位同步(码元同步)、群同步(帧同步)、网同步(通信网络中使用)。

  • 载波同步:相干解调中,在接收端恢复出与发送端的载波在频率上具有相同频率的相干载波的过程。
  • 位同步(码元同步):位同步脉冲与接收码元的重复频率和相位的一致。接收端“马原定是脉冲序列”的重复频率和相位(位置)要与接收码元一致,以保证:接收端的定时脉冲重复频率和发送端的码元速率相同;取样判决时刻对准最佳取样判决位置。这个码元定时脉冲序列称为“码元同步脉冲”或“位同步脉冲”。
  • 群同步(帧同步):在数字时分多路通信系统中,各路信码都安排在制定的时隙内传送,形成一定的帧结构。在接收端为了正确地分离各路信号,首先要识别出每帧的起始时刻。从而找出各路时隙的位置。也就是说。接收端必须产生与字、句和帧起止时间相一致的定时信号,称获得这些定时序列的过程为帧(字、句、群)同步。
  • 网同步:通信网也有模拟和数字之分,在一个数字通信网中,往往需要把各个方向传来的信码,按他们的不同目的进行分路、合路和交换,为了有效的完成这些功能,必须实现网同步。

7.数字通信系统的结构,简要概括各部分的功能.

 

8.python中set dict list tuple的区别

序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表list和元组tuple。具体的不想讲了,就总结一下吧,已经很晚了呢。

各自的特点:

  • list(列表):有序集合,随时增删
  • set(集合):无序集合、key不重复
  • tuple(元组):有序列表,一旦初始化,无法修改
  • dict(字典):键值对(key-value)方式存储,查找速度快

总结:

          1、list、tuple是有序列表;dict、set是无序列表

     2、list元素可变、tuple元素不可变

     3、dict和set的key值不可变,唯一性

     4、set只有key没有value

     5、set的用途:去重、并集、交集等

     6、list、tuple:+、*、索引、切片、检查成员等

     7、dict查询效率高,但是消耗内存多;list、tuple查询效率低、但是消耗内存少

9.C语言中的malloc/free与C++中的new/delete的区别

  • new/delete是C++的操作符,而malloc/free是C中的函数。
  • new做两件事,一是分配内存,二是调用类的构造函数;同样,delete会调用类的析构函数和释放内存。而malloc和free只是分配和释放内存。
  • new建立的是一个对象,而malloc分配的是一块内存;new建立的对象可以用成员函数访问,不要直接访问它的地址空间;malloc分配的是一块内存区域,用指针访问,可以在里面移动指针;new出来的指针是带有类型信息的,而malloc返回的是void指针。
  • new/delete是保留字,不需要头文件支持;malloc/free需要头文件库函数支持。

10.什么是远近效应

在CDMA系统中,许多移动台共用一个频率发送或接收信号,近地强信号干扰远地弱信号的现象称为远近效应,解决远近效应的方法是功率控制.

11.什么是链路自适应技术?都有哪些?

链路自适应技术,就是指系统根据当前获取的信道信息,自适应地调整系统传输参数的行为,用以克服或者适应当前信道变化带来的影响。从链路自适应技术的基本原理可以看出,链路自适应技术主要包含两方面的内容:一方面是信道信息的获取,准确和有效地获得当前信道环境参数,以及采用什么样的信道指示参数能够更为有效和准确地反映信道的状况;另一方面是传输参数的调整,其中包含调制方式、编码方式、冗余信息、发射功率以及时频资源等参数的调整。

通常情况下,链路自适应技术主要包含以下几种技术:

  • 自适应调制与编码技术,根据无线信道的变化调整系统传输的调制方式和编码速率,在信道条件比较好的时候,提高调制等级以及编码速率,在信道条件比较差的时候,降低调制等级以及信道编码速率。
  • 功率控制技术,根据无线信道的变化调整系统发射的功率,在信道条件比较好的时候,降低发射功率,在信道条件比较差的时候,提高发射功率。
  • 混合自动重传请求,通过调整数据传输的冗余信息,从而在接收端获得重传/合并增益,实现对信道的小动态范围的、精确的、快速的自适应。
  • 信道选择性调度技术,根据无线信道测量的结果,选择信道条件比较好的时频资源进行数据的传输。

12.堆栈是什么?局部变量和全局变量的存放位置.

  • 申请方式

栈:由系统自动分配,例如,生命在函数中一个局部变量 int b;系统自动在栈中为b开辟空间;

堆:由程序员自己申请,并指明大小。例如:

在C中malloc函数 
如p1 = (char *)malloc(10); 
在C++中用new运算符 
如p2 = (char *)malloc(10); 
但是注意p1、p2本身是在栈中的。 

  • 申请后系统的反应

栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 

堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时, 
会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。

  • 申请大小的限制

栈:在Windows下,栈是向低地址扩展的数据结构,是一块连续的内存的区域。这句话的意思是栈顶的地址和栈的最大容量是系统预先规定好的,在 WINDOWS下,栈的大小是2M(也有的说是1M,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间时,将提示overflow。因此,能从栈获得的空间较小。 
堆:堆是向高地址扩展的数据结构,是不连续的内存区域。这是由于系统是用链表来存储的空闲内存地址的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟内存。由此可见,堆获得的空间比较灵活,也比较大。 

  • 申请效率的比较

栈由系统自动分配,速度较快。但程序员是无法控制的。 
堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便. 
另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用起来最不方便。但是速度快,也最灵活。

  • 存储内容上

栈:在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。 
当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。 
堆:一般是在堆的头部用一个字节存放堆的大小。堆中的具体内容有程序员安排。

13.python 3.6中下列程序的输出是什么,具体的题目记不清楚了,在这里补充一下python2 和python3在输出上的区别

1.python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;

2.Python2打印时可以不加括号:print 'hello world', Python3则需要加括号 print("hello world")

3.Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的一些行为,不得不使用raw_input()代替input()

14.linux使用过哪些命令?

ls;cd;pwd;mkdir;rm;cp;chmod;ll;ifconfig;grep;ps;df;kill

15.在对字符串数组求sizeof的时候算不算最后的\0

答案是:算。
sizeof 运算符能得出静态数组的长度。与'\0'没有关系的。
与'\0' 相关的是strlen函数 遇到'\0'就结束了。可以查看strlen实现。
举个栗子:
char c[] = "abcde"
这是一个字符串常量,会隐式的在末尾加上空字符'\0';
sizeof 计算出来的是 6
strlen 算出来是5

 

  • 11
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值