标题：TDD
时分双工
起源  TDD2000年5月5日，在土耳其举行的ITU-R全会上，通过了包括中国提案在内的五种无线传输技术的规范，其中三种基于CDMA技术，两种基于TDMA技术。(1)基于CDMA的技术规范
IMT-2000CDMA DS(WCDMA、cdma2000 DS) IMT-2000 CDMA TDD(TD-SCDMA、TD-CDMA )
(2)基于TDMA技术的技术规范
IMT-2000 CDMA SC(uwc 136) IMT-2000 TDMA MC(DECT)
由于TDMA技术不是第三代移动通信的主流技术，所以TDMA SC和TDMA MC只作为区域性标准，用于IS-136和DECT系统的升级。
基于CDMA技术的三种RTT技术规范是第三代移动通信的主流技术，也称为一个家庭，三个成员。CDMA DS和CDMA MC是频分双工模式(FDD)，CDMA TDD是时分双工模式(TDD)，ITU-R为3G的FDD模式和TDD模式划分了独立的频段，在将来的组网上，TDD模式和FDD模式将共存于3G网络。
特点
TDD(Time Division Duplexing)时分双工技术，在移动通信技术使用的双工技术之一，与FDD相对应。
  TDD在TDD模式的移动通信系统中，接收和传送在同一频率信道(即载波)的不同时隙，用保证时间来分离接收和传送信道。该模式在不对称业务中有着不可比拟的灵活性，TD-SCDMA只需一个不对称频段的频率分配，其每载波为1.6MHz。由于每RC内时域上下行切换的切换点可灵活变动，所以对于对称业务(语音和多媒体等)和不对称业务(包交换和因特网等)，可充分利用无线频谱。
TDD系统有如下特点：
(1)不需要成对的频率，能使用各种频率资源，适用于不对称的上下行数据传输速率，特别适用于IP型的数据业务；
(2)上下行工作于同一频率，电波传播的对称特性使之便于使
(3)设备成本较低，比FDD系统低20%-50%。用智能天线等新技术，达到提高性能、降低成本的目的；
ITU要求TDD系统移动速度达到120km/h，要求FDD系统移动速度达到500km/h。FDD是连续控制的系统，TDD是时间分隔控制的系统。在高速移动时，多普勒效应会导致快衰落，速度越高，衰落变换频率越高，衰落深度越深。在目前芯片处理速度和算法的基础上，当数据率为144kb/s时，TDD的最大移动速度可达250km/h，与FDD系统相比，还有一定差距。
在TDD模式的移动通信系统中，基站到移动台之间的上行和下行通信使用同一频率信道(即载波)的不同时隙，用时间来分离接收和传送信道，某个时间段由基站发送信号给移动台，另外的时间由移动台发送信号给基站。基站和移动台之间必须协同一致才能顺利工作。
FDD模式的特点是在分离的两个对称频率信道上，进行接收和传送，用保证频段来分离接收和传送信道。某些系统中上下行频率间隔可以达到190MHz。
与FDD相比，TDD具有一些独到的优势，也有一些明显的不足。
技术优势  TDD（1）使用TDD技术时，只要基站和移动台之间的上下行时间间隔不大，小于信道相干时间，就可以比较简单的根据对方的信号估计信道特征。而对于一般的FDD技术，一般的上下行频率间隔远远大于信道相干带宽，几乎无法利用上行信号估计下行，也无法用下行信号估计上行；这一特点使得TDD方式的移动通信体制在功率控制以及智能天线技术的使用方面有明显的优势。
（2）TDD技术可以灵活的设置上行和下行转换时刻，用于实现不对称的上行和下行业务带宽，有利于实现明显上下行不对称的互联网业务。但是，这种转换时刻的设置必须与相邻基站协同进行。
（3）与FDD相比，TDD可以使用零碎的频段，因为上下行由时间区别，不必要求带宽对称的频段。
（4）TDD技术不需要收发隔离器，只需要一个开关即可。
（5）更高的频谱利用率
第三代移动通信系统的频段是在2GHz范围，但分配给公共陆地移动通信系统使用的频谱为155 MHz，仅为整个2GHz频段的7%，这样希望的带宽也仅相当于一个2GHz宽带电缆的7%。面对日益高速增长和扩展的移动业务，第三代系统的首要要求是更高的频谱利用率。TDD模式具有更高的频谱利用率主要是因为只有TDD模式能利用非对称频段，以及提供同样速率的业务时TDD模式占用的带宽较FDD模式少。
（6）功率控制要求降低
在FDD模式的CDMA移动通信系统中，为减少同道干扰，每个移动台必须在保证可接收性能的前提下以最低功率传送信息，这需要很精确的功率控制；同时为克服所谓远近效应，需要快速高效的功率控制；另外上下行链路的衰落因子是不相关的，这需要用闭环功率控制。所以FDD模式的CDMA移动通信系统对功率控制极其敏感，功率控制的失败会导致十分严重的系统容量下降。但对TDD模式的CDMA移动通信系统，上下行链路的衰落因子是相关的，仅需开环功率控制即可。
（7）预选择天线分集
在移动通信系统中广泛采用分集结合技术来缩短信道的衰落周期。对选择性分集，接收机通过测量相互独立的路径来选择最好的路径接收信号电平，以提高接收性能，但接收机的复杂性也相应提高了。在这种情况下，基站能容忍复杂性的提高，而手持机则不行，此时天线（空间）分集是为手持机提供分集接收的仅有方法。
根据TDD模式原理，基于TDD模式系统的上下行链路的衰落是相同的，基站通过测量它从每个天线接收到的上行链路信号功率估计最强的路径，从而估计和选择最好的天线用于下行链路下一帧的传送。这样手持机可在不增加复杂性的情况下，借助基站的天线分集设备实现预选择天线分集，使接收性能得以改进。
（8）预RAKE结合分集
CDMA系统的一个重要特点之一是在多径环境利用RAKE接收机取得多径分集增益。RAKE接收机是由多路相关器组成，每一路都跟踪一路信号、估计脉冲响应，然后加权合并后作为RAKE接收机输出，因加权因子与各路信号的信噪比成正比，所以充分利用了多径信号能量，取得多径分集增益，但需要相当的信号处理工作和功率消耗。
FDD系统的基站和手持机都需要多路相关器并估计信道的脉冲响应，这对手持机是不理想的。而由于TDD系统上下行信道的脉冲响应在一个时间周期内是相同的，于是仅基站需要估计上行信道的脉冲响应，然后将预RAKE信号传送到手持机，手持机用一个匹配滤波器就行了。
对手持机来说RAKE接收机结合处理不仅增强了有用信号也增强了干扰，但预RAKE处理没有这种情况，因此TDD系统的预RAKE性能比FDD的RAKE性能还好一些。
（9）智能天线分集
在基于TDD模式的TD-SCDMA移动通信系统的基站中采用了智能天线技术。一个智能天线系统由一个多天线阵、相干接收机和高级数字信号处理算法组成。与仅有一个固定波束的传统天线比较，智能天线能有效地形成多波束赋型，每一个波束指向一个特定的用户且能自适应地跟踪任何移动用户。如此特点使得在接收边实现空间选择性分集，提高了接收灵敏度、减少了不同位置的同道用户的同道干扰、抵消了多径衰落和增加了上行容量。在发送边，智能的空间选择波束成型传送降低了输出功率要求、减少了同道干扰和提高了下行容量。
（10）低功耗袖珍多模式终端
低功耗袖珍多模式终端不仅给移动用户带来通信与携带的方便，也使购买与使用成本降低，这是未来移动通信系统的必然要求和追求的目标。TDD模式系统具有上下行信道的互惠性，对功率控制的要求相对较低，实现预选择天线分集、预RAKE结合分集和智能天线分集等技术，使得TDD模式的终端可以与基站共用一些设备，配置比FDD模式终端更少的功能单元，从而更容易实现低功耗袖珍多模式终端。
（11）具有竞争优势的基站设备成本
具有竞争优势的基站设备成本可以从两方面来分析：一方面，TDD模式移动通信系统的频谱利用率高，同样带宽可提供更多的移动用户和更大的容量，降低了移动通信系统运营商提供同样业务对基站的投资；另一方
  TDD面，TDD模式的移动通信系统具有上下行信道的互惠性，基站的接收和发送可以共用一些电子设备，从而降低了基站的制造成本。可见，TDD模式的基站设备无论对运营商还是对制造商都有竞争优势。
不足
应用优势TDD在3G中的优势有以下几点：1．第三代移动通信系统的频谱
国际无委会为第三代移动通信系统分配的频谱如下：
A．1 885～1 900 MHz：在欧洲被DECT占用；
B．1 900～1 920 MHz：TDD公共陆地移动通信频段；
C．1 920～1 980 MHz：FDD公共陆地移动通信频段；
D．1 980～2 010 MHz：FDD卫星通信频段；
F．2 010～2 025 MHz：TDD公共陆地移动通信频段；
G．2 110～2 170 MHz：FDD公共陆地移动通信频段；
H．2 170～2 200 MHz：FDD卫星通信频段。
目前，已有欧洲和日本决定采用这个频段分配，中国基本遵循国际无委会的频段分配，不同的是：
A′．1 880～1 900 MHz 分配给FDD的WLL系统；
B．1 900～1 920 MHz 分配给TDD的WLL系统，日本分配给PHS系统；
I．1 785～1 805MHz 分配给TD-SCDMA系统，即中国第三代TDD移动通
信系统。
其中，B或I，F两个频段是不对称的，FDD模式无法使用，因此只有采用TDD模式的移动通信系统才能充分利用第三代的所有频段。
2．业务方面
第二代移动通信系统主要面向话音业务，而第三代移动通信系统除了提供话音外、还可以提供数据和多媒体业务。由于Internet、文件传输和多媒体业务常常上下行容量不对称，因此如果用FDD模式提供这些业务，或者会造成下行资源的浪费，或者需通过十分复杂的控制措施来改善这种浪费现象。而TDD模式上下行信道不固定，可以通过调整时隙交换点很方便地动态分配上下行信道的容量，因此用于非对称业务的通信是很理想的。
3．覆盖方面
理论研究和现场实验均证明，TDD模式的移动通信系统适合于微小区、业务量繁忙、上下行业务不对称且低速移动性的环境。因此从移动通信的覆盖规划来看，TDD模式的系统与FDD模式的系统可以互相补充，相得益彰。在提交的第三代移动通信系统RTT草案中也反映出这种情况。
4．上下行信道的互惠性
由于多径传播导致的快衰落现象依赖于传输频率，在FDD模式的移动通信系统中上下行信道处于不同的频段，上下行信道之间是不相关的，这样FDD传送器不能预测快衰落对传输的影响。在TDD模式的移动通信系统中，上下行信道用同样的频率，基于接收信号，TDD传送器能知道多径信道的快衰落。这种上下行信道的互惠性可以降低移动台与基站设备的复杂性，从而降低成本和减少功耗。
对比FDD
由于移动数据业务的增长、通信个人化和宽带化的要求，移动通信正在向第三代发展，估计21世纪初（2002年）第三代移动通信系统将开始全面商用。回顾第一二代移动通信系统的建设，中国几乎100%依靠进口国外产品。现在的情况已有所不同。1997年6月，中国提交了第三代移动通信标准草案（TD-SCDMA），其TDD模式及智能天线新技术等特色受到高度评价并成为三个主要候选标准之一，同时TD-SCDMA移动通信系统的基站设备正在加紧开发。在第一代和第二代移动通信系统中，FDD模式一统天下，TDD模式没有引起重视，但由于新业务的需要和新技术的发展，TDD模式将日益受到重视。基于CDMA技术的三种RTT技术规范是第三代移动通信的主流技术，也称为一个家庭，三个成员。CDMA DS和CDMA MC是频分双工模式(FDD)，CDMA TDD是时分双工模式(TDD)，ITU-R为3G的FDD模式和TDD模式划分了独立的频段，在将来的组网上，TDD模式和FDD模式将共存于3G网络。
在TDD模式的移动通信系统中，基站到移动台之间的上行和下行通信使用同一频率信道(即载波)的不同时隙，用时间来分离接收和传送信道，某个时间段由基站发送信号给移动台，另外的时间由移动台发送信号给基站。基站和移动台之间必须协同一致才能顺利工作。
FDD模式的特点是在分离的两个对称频率信道上，进行接收和传送，用保证频段来分离接收和传送信道。某些系统中上下行频率间隔可以达到190MHz。
与FDD的区别优势
（1）使用TDD技术时，只要基站和移动台之间的上下行时间间隔不大，小于信道相干时间，就可以比较简单的根据对方的信号估计信道特征。而对于一般的 FDD技术，一般的上下行频率间隔远远大于信道相干带宽，几乎无法利用上行信号估计下行，也无法用下行信号估计上行；这一特点使得TDD方式的移动通信体制在功率控制以及智能天线技术的使用方面有明显的优势。
（2）TDD技术可以灵活的设置上行和下行转换时刻，用于实现不对称的上行和下行业务带宽，有利于实现明显上下行不对称的互联网业务。但是，这种转换时刻的设置必须与相邻基站协同进行。
（3）与FDD相比，TDD可以使用零碎的频段，因为上下行由时间区别，不必要求带宽对称的频段。
（4）TDD技术不需要收发隔离器，只需要一个开关即可。
不足　1）移动台移动速度受限制。在高速移动时，多普勒效应会导致快衰落，速度越高，衰落变换频率越高，衰落深度越深，因此必须要求移动速度不能太高。例如在使用了TDD的TD-SCDMA系统中，在目前芯片处理速度和算法的基础上，当数据率为144kb/s时，TDD的最大移动速度可达250km/h，与FDD系统相比，还有一定差距。一般TDD移动台的移动速度只能达到FDD移动台的一半甚至更低。
（2）覆盖半径小。也是由于上下行时间间隔的缘故，基站覆盖半径明显小于FDD基站。否则，小区边缘的用户信号到达基站时会不能同步。
（3）发射功率受限。如果TDD要发送和FDD同样多的数据，但是发射时间只有FDD的大约一半，这要求TDD的发送功率要大。
（4）需要更复杂的网络规划和优化技术。
目前，由我国提出的3G技术标准TD-SCDMA是三个3G标准中唯一使用TDD技术的标准。
TDD中存在的问题1．干扰问题
TDD模式的CDMA移动通信系统的干扰问题主要包括上下行链路之间的干扰，不同运营者之间的干扰和来自功率脉冲的干扰。
上下行链路之间的干扰分为小区内上下行链路之间的干扰和小区间上下行链路之间的干扰。前者是因为在一个小区内用户间的同步受到破坏或上下行链路的时间分配不平衡。对于后者，非对称的TDD时隙将影响邻近小区的无线资源并导致小区间的上下行链路干扰，另外高功率的基站会阻塞邻近小区的基站接收本小区的终端，处在小区边界的高功率终端也会阻塞邻近小区的具有不同时隙分配的终端。
当同一地理环境有几个运营商用同一TDD 频率时，由于基站之间的同步问题以及上下行链路之间非对称的动态分配，不同运营者之间会发生干扰，这是TDD模式所特有的。
来自功率脉冲的干扰是由于短的TDD帧的短传输时间，以及为了袖珍的语音终端设计在终端内部的设备之间的脉冲传输。
2．同步要求高
由于基站不能同时接收和发送，移动终端的传送必须在基站停止发送时开始，这意味着同一小区内的不同用户之间，用户与基站之间需严格同步，后一同步破坏会发生通信阻塞，前一同步破坏将导致严重干扰，这是FDD的CDMA移动通信系统所没有的问题。
另外，因为小区之间和不同操作者之间的干扰问题，邻近小区的基站之间要求是同步的，并且一般是符号级的精确同步。这样的同步要求在基站有GPS接收机或公共的分布式时钟，这些都增加了移动蜂窝网的费用。
3．移动速度受限
对于TDD模式的CDMA移动通信系统，上下行链路利用同一频率，根据接收信号TDD发射机能知道多径信道的快衰落，这给TDD模式的系统带来许多优势，但这是基于TDD帧长比相干时间短的前提。因为TDD帧很短，导致移动速度受到限制，所以通常人们认为TDD模式适合于室内、低速移动的微小区环境。
应该指出的是，已有研究显示TDD模式的移动通信系统在结合智能天线和联合检测技术后可以用于高速移动的环境，在中国目前开发的第三代移动通信系统TD-SCDMA中采用了这个方案，模拟结果显示了较好的性能。
未来发展由于移动数据业务的增长、通信个人化和宽带化的要求，移动通信正在向第三代发展，估计21世纪初（2002年）第三代移动通信系统将开始全面商用。回顾第一二代移动通信系统的建设，中国几乎100%依靠进口国外产品。现在的情况已有所不同。1997年6月，中国提交了第三代移动通信标准草案（TD-SCDMA），其TDD模式及智能天线新技术等特色受到高度评价并成为三个主要候选标准之一，同时TD-SCDMA移动通信系统的基站设备正在加紧开发。在第一代和第二代移动通信系统中，FDD模式一统天下，TDD模式没有引起重视，但由于新业务的需要和新技术的发展，TDD模式将日益受到重视。

以测试驱动开发
简介  TDD测试驱动开发是敏捷开发中的一项核心实践和技术，也是一种设计方法论。TDD的原理是在开发功能代码之前，先编写单元测试用例代码，测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践，但不只适用于XP（Extreme Programming），同样可以适用于其他开发方法和过程。
  TDDTDD的基本思路就是通过测试来推动整个开发的进行，但测试驱动开发并不只是单纯的测试工作，而是把需求分析，设计，质量控制量化的过程。
TDD的重要目的不仅仅是测试软件，测试工作保证代码质量仅仅是其中一部分，而且是在开发过程中帮助客户和程序员去除模棱两可的需求。TDD首先考虑使用需求（对象、功能、过程、接口等），主要是编写测试用例框架对功能的过程和接口进行设计，而测试框架可以持续进行验证。
优缺点优点：在任意一个开发节点都可以拿出一个可以使用，含少量bug并具一定功能的产品。
缺点：增加代码量。测试代码是系统代码的两倍或更多。
TDD = TFD + Refactoring
(TFD -- Test First Development) 
计算机领域：
Test Drived Develop
测试驱动开发是一种开发方法，是开发人员参与的活动。 其效果是以可执行的形式文档化你的需求，迫使你分清职责隔离依赖以驱动你的设计，编织安全网以便将Bug扼杀在在摇篮状态，防止其逃逸。可传统测试人员的活动是试图找到已经逃逸的Bug。这两种活动都是必要的，而且毫不冲突，互为补充。
那么测试人员在新的特性还没开发完成之前做什么呢? 除了提前写测试用例，无论是自动化的还是非自动化的，而需要测试人员参加的一项重要活动，就是参与特性验收条件的制定。 之前经常发生开发人员按照自己的理解去编码，测试人员按照自己的理解去测试，直到开发完成，测试过程中才发现理解的不一致，开始产生争执并阻塞等待业务分析人员(如果幸运的话)或者行政主管(如果开发过程混乱的话)的仲裁。 解决办法就是，在开始开发新特性前的一刹那，由业务分析人员，测试人员，开发人员进行一次讨论，就验收条件达成一致并形成记录，然后测试人员和开发人员分头去写测试和实现。
TDD原则
独立测试：不同代码的测试应该相互独立，一个类对应一个测试类（对于C代码或C++全局函数，则一个文件对应一个测试文件），一个函数对应一个测试函数。用例也应各自独立，每个用例不能使用其他用例的结果数据，结果也不能依赖于用例执行顺序。 一个角色：开发过程包含多种工作，如：编写测试代码、编写产品代码、代码重构等。做不同的工作时，应专注于当前的角色，不要过多考虑其他方面的细节。
测试列表：代码的功能点可能很多，并且需求可能是陆续出现的，任何阶段想添加功能时，应把相关功能点加到测试列表中，然后才能继续手头工作，避免疏漏。
测试驱动：即利用测试来驱动开发，是TDD的核心。要实现某个功能，要编写某个类或某个函数，应首先编写测试代码，明确这个类、这个函数如何使用，如何测试，然后在对其进行设计、编码。
先写断言：编写测试代码时，应该首先编写判断代码功能的断言语句，然后编写必要的辅助语句。
可测试性：产品代码设计、开发时的应尽可能提高可测试性。每个代码单元的功能应该比较单纯，“各家自扫门前雪”，每个类、每个函数应该只做它该做的事，不要弄成大杂烩。尤其是增加新功能时，不要为了图一时之便，随便在原有代码中添加功能，对于C++编程，应多考虑使用子类、继承、重载等OO方法。
及时重构：对结构不合理，重复等“味道”不好的代码，在测试通过后，应及时进行重构。
小步前进：软件开发是复杂性非常高的工作，小步前进是降低复杂性的好办法。