WiFi产品的一般射频电路设计

合宙Air724UG Cat.1模块硬件设计指南--天线接口 阻抗线阻抗的相关参数有:PCB 的介电常数,PCB 的厚度,阻抗线的宽度,阻抗线到同层 GND 的宽度以 及 PCB 的叠层结构。对于 4层或者 4 层以上的板子,PCB 的叠层不同,走线的阻抗差别非常大,推荐让 PCB 板厂来做阻抗控制。答:任何一款规范的产品,天线设计至关重要,一定要到正规的天线厂,针对整机,对天线做匹配性调试。50 欧姆特性阻抗,不推荐使用PCB板载天线,建议使用调试过的FPC天线或棒状天线。2.天线厂在调试天线时,根据前期的评估与实际环境,确定天线以及天线匹配电路; 阅读详情
AI摘要

本文深入解析Wi-Fi产品的射频电路设计,涵盖无线收发器、功率放大器、低噪声放大器、切换电路及天线连接器的组件与设计细节。

I. 前言

这是一篇针对性很强的技术文章。在这篇文章中,我只是分析研究了Wi-Fi产品的一般射频电路设计,而且主要分析的是Atheros 和Ralink的解决方案,对于其他厂商的解决方案并没有进行研究。

这是一篇针对性很不强的技术文章。在这篇文章中,我研究,讨论了Wi-Fi产品中的射频电路设计,包括各个组成部分,如无线收发器,功率放大器,低噪声放大器,如果把这里的某一部分深入展开讨论,都可以写成一本很厚的书。

这篇文章具有一般性。虽然说这篇文章主要分析了Atheros和Ralink的方案,但是这两家厂商的解决方案很具有代表性,而且具有很高的市场占有率,因此,大部分Wi-Fi 产品也必然是具有一致或者类似的架构。经常浏览相关网站的人一定知道,在中国市场热卖的无线路由器,无线AP很多都是这两家的解决方案。

这篇文章具有一定的实用性。这篇文章的编写是基于我们公司的二十余种参考设计电路,充分吸收了参考设计的精华,并提取其一般性,同时,本文也重在分析实际的电路结构和选择器件时应该注意的问题,并没有进行深入的理论研究,所以,本文具有一定的实用性。

这篇文章是我在自己的业余时间编写的(也可以说我用这种方式消磨时间),如果这篇文章能够为大家的工作带来一点帮助,那将是我最高兴的事。

由于时间有限,编写者水平更加有限,错误之处在所难免,欢迎大家批评指正。

第1章. 射频设计框图

做技术的,讲解某个设计的原理时,都会从讲解框图开始,本人也不例外,先给大家展示一下Wi-Fi产品的一般射频设计框图。

图1-1 Wi-Fi产品的一般射频设计框图

如图1-1所示,一般Wi-Fi产品的射频部分由五大部分组成(这是我个人的见解,不同的工程师可能会有不同的想法),蓝色的虚线框内统一看成是功率放大器部分。无线收发器(Radio Transceiver)一般是一个设计的核心器件之一,除了与射频电路的关系比较密切以外,一般还会与CPU有关,在这里,我们只关注其与射频电路相关的一些内容。发送信号时,收发器本身会直接输出小功率的微弱的射频信号,送至功率放大器(Power Amplifier,PA)进行功率放大,然后通过收发切换器(Transmit/Receive Switch)经由天线(Antenna)辐射至空间。接收信号时,天线会感应到空间中的电磁信号,通过切换器之后送至低噪声放大器(Low Noise Amplifier,LNA)进行放大,这样,放大后的信号就可以直接送给收发器进行处理,进行解调。

在后续的讲解中,我会将图1-1中的各个部分逐个展开,将每一个都暴露在大家眼前,也会详细讲解每一部分的设计,相信大家在认真仔细的阅读这篇文档之后,就可以对射频的各个组成部分有一个比较清晰的认识。

第2章. 无线收发器

我把无线收发器(在本章的以下内容中简称收发器)放在了第一个模块,主要原因就是因为,它一般会是一个设计的核心器件之一,有的时候还可能集成在CPU上,就会是一个设计中的最重要的芯片,同时,理所当然,收发器的重要性决定了它的外围电路必然很复杂,实际上也是如此。而且,如果没有参考设计,完全由我们自主设计的时候,这颗芯片也是我们应该放在第一优先的位置去考虑,这颗芯片从根本上决定着整个设计的无线性能。这样,这一部分的设计讲解起来会比较困难,可是还是想最先讲解这里。

收发器通常会有很多的管脚,在如图2-1中,我只给出了射频电路设计时会关注的管脚,可以看到,有几个电源管脚,数字地,模拟地,射频输出,功率放大器增益控制,功率检测,温度检测,射频输入,低噪声放大器增益控制,发射、接收切换等管脚,在接下来的内容中,我会把这些管脚分模块逐个讲解。

图2-1 一般的无线收发芯片(射频电路设计相关)

2.1. 无线收发器芯片的技术参数

不同的设计,收发器一般会很不一样,我们大多数时候都不会想着去更换它。一般我们选用收发器,会直接按照参考设计进行,尽管如此,我还是像从一个研发人的角度出发,说一说,在选择无线收发器时应该关注的一些参数(射频电路相关的参数)。

2.1.1. 协议,频率,通路与传输速率

在收发器的Datasheet中,一般会在开始的几段话中就指出该芯片支持哪些协议,工作在什么频率上,几条通路(也就是几发几收),我们公司目前的主打产品设计都是支持802.11n的。这三项参数的重要性想必不用我说,大家也应该体会得到,它们参数决定着最终的产品的功能。

一段典型的描述如:The Atheros AR9220 is a highly integrated single-chip solution for 2.4GHz and 5GHz 802.11n-ready wireless local area network (WLANs) that enables high-performance 2×2 MIMO configurations for wireless stations applications demanding robust link quality and maximum throughput and range.

 

从这段描述中,我们可以知道,AR9220支持802.11n草案(一般来说都会兼容802.11b/g)。同时,AR9220也支持双频,2.4GHz和5GHz,这样,我们就可以得知,它也支持802.11a。2×2 MIMO说明AR9220是二发二收(2T2R)。

传输速率和协议及通路密切相关,感兴趣的同事可以查阅相关资料。

从AR9220的Datasheet中我们可以得知,20MHz带宽,最高传输速率可以达到130Mbps,40MHz带宽时,最高的传输速率可以达到300Mbps。

2.1.2. 调制方式

调制方式和传输速率是密切相关的,不同的传输速率对应着不通的调制方式。芯片支持的调制方式一般会在Datasheet的特性描述中给出。例如,AR9220支持的调制方式有BPSK,QPSK,16QAM,64QAM,DBPSK,DQPSK,CCK。

2.1.3. 时钟频率

时钟频率,时钟频率包括两种,收发器外接晶振的频率和内部倍频后的工作频率,这项参数同样应该是我们关注的。

2.1.4. 输出功率

有一个现象我一直也弄不清楚,为什么在收发器的Datasheet中不给出其发射功率?这项参数对于我们RF工程师是很重要的,因为这项参数决定着后续功率放大电路的设计,我们要保证收发器的输出功率足以驱动功率放大器,这样,我们才能够设计合理有效的放大器。

2.1.5. 接收灵敏度

和输出功率一样,收发器接收灵敏度这项参数也不会在Datasheet中给出,在实际的设计过程中,有了这项参数,我们才能合理地设计低噪声放大器的放大倍数,才能保证低噪声放大器的输出可以被收发器有效的接受。

2.1.6. 射频接口

这项参数关系着我们后续的射频电路的结构。一般来说,收发器应该具有的射频输入管脚包括:射频输出管脚,功率放大器增益控制管脚,功率放大器输出功率检测输入管脚,低噪声放大器增益控制管脚,切换器收发控制管脚,一般Ralink的方案还会有PA温度检测管脚。

2.1.7. 供电电压与功耗

从全局的角度看,供电电压与功耗同样会是我们不得不关注的技术参数,这两项参数关系着电源电路的设计和散热的设计。

2.2. 差分射频信号的处理

2.2.1. 收发器本身具有的管脚

对于射频信号,为了增强收发器的抗干扰能力,一般会采用差分信号的处理方式,也就是说,收发器会以差分形式将信号发送出去,同时外部电路也必须为收发器提供差分射频信号的输入。如图2-2所示,红色方框内的四只管脚就是这个收发器的差分射频信号的输入,输出管脚,也是最重要的射频信号管脚。

图2-2 收发器的射频输入与输出管脚

这里必须指出的是,Atheros的收发器一般会同时对输入与输出做差分处理。但是Ralink一般要求外部输入的信号是差分的,而自身输出的射频信号则不是差分的。图2-3和图2-4分别给出了RT3052(Ralink)和AR9220(Atheros)的主要射频信号管脚。不难发现,Atheros的设计相比Ralink要更加细腻,不只是收发器芯片,在后续电路的设计中,也会发现,Atheros考虑的问题很周全,我想,这也是我们作为研发人应该具备的一种精神。

图2-3 RT3052的主要射频信号管脚

图2-4 AR9220的主要射频信号管脚

2.2.2. 收发器发送的差分信号

 

收发器发送的差分信号,我们要想办法把他们合二为一。为什么要这样做,收发器送出的信号是要给功率放大电路的,功率放大电路处理的是单端信号。

平衡器通常用来处理差分信号的问题,除此之外,我们知道,电感和电容都能够改变信号的相位,从差分信号到单端信号,基本的方法就是用电感和电容组成两条不同的通路,这样,经过处理电路的两路信号就在相位上相差了180°,从而可以使原本相位相差180°的差分信号同相,得到单端信号。相反,使单端信号通过两条不同的通路,就得到了差分信号。

下面让我们来分别看一下这两种方法的电路形式。

方法一,使用平衡器。原本相位相差180°的差分信号经过平衡器(Balun,俗称巴伦),就可以得到合二为一的单端射频信号。如图2-5所示,图中的F1就是一个平衡器,差分信号RFOUT_P和RFOUT_N经过F1得到单端信号RF_OUT。

图2-5 典型的平衡电路

方法二,使用分立元件。典型的使用分立元件的处理电路如图2-6所示。

图2-6 典型的分立元件处理电路

2.2.3. 平衡器的参数与选择

在Atheros的方案中,平衡器往往使用的很多,我在这里给出平衡器的主要参数和简要的选型指南。如前所述,在我们的Wi-Fi产品中,平衡器常用于处理差分信号,其主要的参数如下:
* 不平衡阻抗
* 平衡阻抗
* 工作频率
* 不平衡端口回波损耗
* 相位变化
* 插入损耗

例如,常用的平衡器HHM1711D1典型参数如图2-7所示。这样我们在设计是就可以根据我们的需求选择合适的平衡器了。

图2-7 HHM1711D1的典型参数

2.2.4. 收发器接收的差分信号

收发器接收的信号来自于前端的低噪声放大器,和功率放大器一样,低噪声放大器处理的也是单端射频信号,这样,我们必须将低噪声放大器输出的信号进行转换。同样,对于低噪声放大器的输出信号同样有两种处理方式:使用平衡器和使用分立元件。Atheros的方案中,有些使用平衡器;Ralink的方案中,至今还没有使用过。

其实大家也一定想到了,收发器接收信号和收发器发送信号差不多就是互为逆过程,因此电路的结构也差不多是相反的。没错,看了下面的实际电路图就知道了。 先来介绍使用平衡器的方案。在某实际案例中,采用了如图2-8所示的平衡器电路。单端信号RF_IN经过平衡器F5后得到差分的射频信号RFIN_P和RFIN_N。

图2-8 某案例采用的平衡器电路

再来看看采用分立元件实现的方法,图2-9是Ralink惯用的方式,图2-10是Atheros常用的处理方式。可以看出,这两种设计方法大同小异。

图2-9Ralink常用的分立元件信号处理方式

图2-10 Atheros常用的分立元件信号处理方式

2.3. 收发器的电源管脚

收发器一般会有很多个电源管脚,可以大概分为几类,从图2-2也可以看出来,一般会具有主电源管脚,核电压电源管脚,IO电源管脚,锁相环(Phase Lock Loop,PLL)电源管脚等。

在射频电路设计中,我们一般会比较关注的是模拟电源。对于射频电路的供电,如果让我在线性稳压电源(LDO)和开关电源(DC/DC)之间选择,那么我会毫不犹豫的选择线性电源。

为什么?和开关电源有仇?的确有仇!

直到现在我还清晰得记着在大学里面的遭遇。一次我为某高校设计一款校园广播设备,考虑到校园广播的较大的输出功率,对电源的要求也就比较苛刻,我到科技市场转了一圈发现了一款做工精良的开关电源,当时我就被这个家伙华丽的外表欺骗了,毫不犹豫地买了下来。可是当我完整设计后,接通电源,从收音机里面传来的不是悦耳的音乐声,而是令人极度反感的“嗡嗡”声,巨大的交流声。为了解决这个问题,我几乎绞尽脑汁,把有可能造成问题的部分都重新设计了,可是问题依然没有解决。后来,我突然意识到:“是不是开关电源的问题?”刚好手头有一台车载电台的电源(大功率线性稳压电源),当我把这个电源接上去之后,哇,整个世界都安静了!开关电源害得我不但损失了一些钱,还浪费了我大量的时间,从那以后,我的设计再也没用过开关电源。

对于收发器的电源管脚,通常的处理方法就是在每个电源的管脚处都放置一个0.1uF的电容,耗电比较大的管脚旁,需要放置更大容量的电容,1-10uF或者更大。一般来说,收发器的模拟电源供电和数字电源供电要用电感或者磁珠隔开,并且一定要在电感或磁珠后放置容量比较大的电容,如果条件允许的话,最好放置电解电容,会对电源的性能起到很大的提升作用,同时并联几个容量比较小的瓷片电容,就可以滤除不同频率的交流成分。

2.4. 收发器完整的外围电路设计

回想一下,我们在前面的叙述中讲解了如何选择收发器,收发器相关的差分信号处理,收发器的电源供给,这三方面的内容基本上较完整的覆盖了收发器射频电路设计的内容,也就是说,把这三部分弄清楚,基本上就完成了这部分的设计。

想必大家应该比较清楚那三部分的结构了,好,让我们来试一下,在图2-2那个芯片的外围放置一些器件,再连上几条线,完成无线收发器及其外围电路设计。在这里,我们对收发器输出的差分信号用平衡器处理得到单端信号RFOUT,来自低噪声放大器的接收信号RFIN用分立元件处理得到差分信号RFIN_P,RFIN_N。这样,就得到了如图2-11所示的原理图。

图2-11 完整设计的无线收发器外围电路

第3章. 功率放大器

功率放大器,Power Amplifier,俗称PA,主要的作用就是将无线收发器(Radio Transceiver)送来的射频信号进行功率放大,保证有足够大的输出功率满足设计需求。功率放大器的设计是一个十分专业的话题,也有很多人,很多高级的射频工程师在这方面进行过十分深入的研究,我在这里只针对我们的Wi-Fi产品的常用的设计方法进行讨论。

我们的产品中,功率放大器的组成无非就是一颗芯片配上几颗外围的器件,但是在大功率的场合,几乎不会有人用集成电路去做功率放大,一般都是用分立元件设计出来的,晶体管或场效应管。在我们目前的所有设计中,功率放大器都是用集成电路来实现的。如图3-1所示,是通常的功率放大器的设计框图。

图3-1 功率放大器的框图

功率放大器的设计会考虑很多参数,但主要分为三类:增益,噪声,非线性。增益,和最终的输出功率有关,噪声和非线性关系着信号质量。

我在这里把功率放大器(在本章的以下内容中简称功放)分为以下几个部分进行讨论:功放芯片的选择,功放芯片的供电,输入回路,输出回路,功率检测,增益控制,温度检测。

3.1.1. 功放芯片的管脚

功放芯片属于微波功率器件的范畴,图3-2给出了一个典型的功放芯片的原理图符号,包括以下管脚:

 

VCC 主电源供电管脚
VC1 一级功率放大供电管脚
VC2 二级功率放大供电管脚
RFIN 射频信号输入管脚
RFOUT 射频信号输出管脚
GAIN_1 增益控制管脚之一
GAIN_2 增益控制管脚之二
POWER_DETECT 内建功率检测输出管脚



图3-2 典型的功放芯片

值得注意的是,GAIN_1和GAIN_2是来自收发器(Transceiver)的控制信号,是直流电压,POWER_DETECT是功放芯片输出的发射功率检测值,也是直流电压,而RFIN和RFOUT是最重要的射频信号管脚。

3.1.2. 功放芯片的主要厂商

在市场上的产品中,功放芯片的供应商基本上就是这四家:SiGe,SST,Microsemi,Richwave,表3-1,表3-2给出了几个实际项目中所采用的功放芯片的型号。

表3-1 Atheros的设计中采用的功放芯片

表3-2 Ralink的设计中采用的功放芯片

通过以上表格,我们很容易发现,Atheros很喜欢Microsemi的芯片,而Ralink则比较喜欢Richwave和SST的,在BCM4323这个项目中,使用的功放芯片是SiGe的,在AP96现在的设计中,使用的也是SiGe的Frontend Module。

3.1.3. 功放芯片的主要参数

功放芯片的选择是一个复杂的过程,在实际的选择过程中,我们一般会考虑如下的几项参数:
工作频率
小信号增益
最大线性输出功率
1dB压缩点输出功率
误差向量幅度(EVM)
相邻信道功率比(ACPR)
噪声系数
是否内建功率检测功能
是否内建增益控制功能
供电电压
消耗的电流

以上的这些参数,并不是在每颗功放芯片的Datasheet中都会完整给出,有些Datasheet只能给出部分参数。各项参数的意义想必大家都很清楚,我在这里就不做过多的解释了。一个典型的功放芯片的Datasheet(片段)如下:
2.3-2.5GHz Operation
Single Positive Supply Voltage Vcc = 3.3V
Power Gain ~ 27dB
Quiescent Current ~ 90mA
EVM ~ -30dB at Pout = +19dBm
Total Current ~ 150mA for Pout = +19dBm
Pout ~ +26dBm for 11g OFDM Mask Compliance
Total Current ~220mA for Pout = +23dBm 1 Mbps DSSS
On-Chip Input Match
Simple Output Match
Robust RF Input Tolerance > +5dBm
Small & Low-Cost 3x3x0.9mm3 MLP Package
Cost Reduction over LX5510, LX5510B

从以上的叙述中我们了解到,这颗功放芯片的工作频率是2.3-2.5GHz,采用3.3V单电源供电,静态工作电流是90mA,19dBm功率输出时,EVM的值是-30dB,等等。

功放芯片的性能很重要,当然,在满足性能的前提下,我们会选择最便宜的

3.2. 功放芯片的供电

图3-2展示的一般功放芯片有三个电源管脚,分别是VCC,VC1,VC2,其中的VCC是主电源供电,VC1是芯片内部第一级放大的供电,VC2是芯片内部第二级放大的供电。这里有个很重要的问题需要注意,VC1和VC2 不是简单的供电管脚,这两个管脚通常不会直接连接到电源上,一般会串联一个电感(或者电阻)再连接到电源上,为什么呢?这是因为这是为芯片内的功率晶体管(或场效应管)供电的管脚,通常在分离元件组成的功率放大电路中,我们都会看到在晶体管的集电极(或者场效应管的漏极)上都串有电感,而电感是不容易集成到芯片中的,这样,就需要在芯片的外部放置电感,这样,就得到了典型的功放芯片的供电方式,如图3-3所示。

 



图3-3 典型的功放芯片供电方式

除了上面提到的电感的问题,另一个值得注意的就是,功放电路处理的模拟信号,是正统的模拟电路,因此需要尤其注意其电源要与数字电路的电源分开。另一个极为重要的问题是,如图3-3所示,在每个电源管脚处,都需要放置一个滤波电容组合,例如VCC管脚处放置的是100pF和1000pF的滤波电容组合,VC1管脚处是10pF的电容。滤波电容的组合形式是这样的,对于主电源管脚VCC,需要尽量多地放置不同容量的电容,而且这些电容的容量最好是不同数量级的,例如可以这样组合:10uF+1uF+0.1uF+1000pF+100pF+10pF,不同容量的电容用于滤除不同频率成分的扰动。对于VC1和VC2这两个管脚,要注意,放置的滤波电容容量要较小,通常在1-10pF。

3.3. 输入回路

功放电路的输入回路一般包括两个部分,一个是带通滤波器(Band Pass Filter,BPF),一个是Π型匹配网络,我们分开两部分来讲。

3.3.1. 带通滤波器

我们知道,2.4GHz频段的子载波有13个,频率从2.412GHz到2.437GHz,相邻两信道之间的频率间隔是500MHz,很容易理解,从收发器(Transceiver)输出的信号包括了从2.412GHz到2.437GHz这样的一个频率带,因此,为了能够使有用的信号顺利地进入功放芯片,无用的杂乱信号被滤除,一般会在功放芯片的输入回路上放置一个带通滤波器。

带通滤波器有三种实现方法,一种是使用已经设计好的专用带通滤波器,这在Ralink的方案中使用的很多;一种是使用分立元件组成的带通滤波器,这种方法用的不是很多;第三种方法几乎是Atheros专有的,就是印制带通滤波器,这种滤波器最突出的优点就是没有成本,最突出的缺点是占用的空间比较大,而且还需要净空区,在AP51中就使用了这种滤波器。

用分立元件设计带通滤波器需要复杂的计算过程,也需要较强的数学功底,我们在这里不进行过多的研究。接下来我们主要讨论如何选择一款已经设计好的带通滤波器。带通滤波器的参数并不多,主要有:
输入阻抗
输出阻抗
通频带
通频带内的衰减
通频带以外的衰减

通常情况下,成品的带通滤波器,输入和输出阻抗都会控制在50欧姆的标称值,对于通频带相关特性,一张图表足以反映出来。如图3-4给出了我们常用的HMD845H的S21参数与频率之间的关系。很明显,该带通滤波器的通频带为2.4GHz-2.5GHz,对于通频带以外的频率,衰落的很快。

图3-4 HMD845H的S21参数

3.3.2. Π型匹配网络

匹配,这件事在射频设计中是极其重要的,很多时候,我们设计或者调试射频电路,都是在解决匹配的问题,永远记住这样一条经典的准则:共轭匹配传输功率最大。Π型匹配网络一般直接放在功放芯片的输入端,也就是放在RFIN这个管脚处,通常芯片的管脚不会匹配到50欧姆,我们也不会知道管脚的输入特性,这样的话,Π型匹配网络的必要性就可想而知了。

Π型匹配网络,顾名思义,形状很像字母Π,我们来看一下实际的Π型匹配网络。图3-5给出的是Ralink常用的一种Π型匹配网络。



图3-5 Ralink常用的Π型匹配网络

3.3.3. 完整设计的输入回路

 

以上我们讨论了功放电路的输入回路的两个组成部分,带通滤波器和Π型匹配网络,有了这两个部分,我们就可以设计一个完整的输入回路了。如图3-6所示,就是一个设计完整的功放电路输入回路。图中的U9就是一款成品的带通滤波器,而C108,C109和L14就组成了一个Π型匹配网络。

图3-6 完整设计的功放电路的输入回路

3.4. 输出回路

在输出回路中,最重要的组成部分(在很多设计中也是唯一的组成部分)就是低通滤波器,这时可能有人会问,为什么这里要用低通滤波器,而不是像输入回路那样使用带通滤波器?原因很简单,这里的低通滤波器要解决的主要问题时由于功放引起的高次谐波,如二次谐波,三次谐波甚至更高次数的谐波,当然,低通滤波器还要解决的问题就是匹配问题。其实,在射频电路的设计中,匹配的这个问题会一直伴随着我们。

滤波器的设计需要很复杂的计算,在这里我不想探讨过多的理论知识,所以,我就不给出如何计算的方法,只给出一般的低通滤波器的形式。这里需要指出的是,Atheros的设计一般会使用三个元件,而Ralink一般会使用五个元件。如图3-7所示,是Ralink常用的滤波器形式。在图中,C112,C111,C113,C110和C114就组成了一个低通滤波器,来自功放芯片的信号PA_OUT经过滤波器后得到LPF_OUT这信号送至后续电路。

 
图3-7 Ralink常用的低通滤波器

这时,我们就可以把功放芯片的输出端与低通滤波器相连接,就得到了一般射频功率放大电路的完整的输出回路,如图3-8所示。

图3-8 完整设计的功率放大器输出回路

3.5. 功率检测

功率检测功能在我们的很多设计中都可以找到,这项功能可以使无线收发器(Radio Transceiver)时刻监视着功放电路的输出功率,这样,当功放的输出功率改变时,无线收发器就可以调整自身的输出功率或者改变功放电路的增益,使功放电路的输出功率稳定在一个固定的值。

功率检测电路输出的是直流电压值,这个电压值送给无线收发器之后,无线收发器自身内部进行A/D转换,就可以得知功放电路的输出功率了。

功率检测实现的方法通常有两种,在Ralink的设计中,通常使用功放芯片自身的功率检测功能;在Atheros的设计中,除了使用功放芯片本身的功率检测功能之外,一般还会有一种Atheros特有的设计,我们将分成两部分讨论。

3.5.1. 芯片内建的功率检测

我们在图3-2中已经看到,一般的功放芯片会有POWER_DETECT这样的一个管脚,这个管脚的作用就是用于功率检测的。使用芯片内建的功率检测功能可以简化电路设计,常见的完整形式如图3-9所示。

图3-9 常见的使用内建功率检测功能的电路形式

3.5.2. 芯片外围的功率检测电路

我们在这里用单独的一节来讨论外围的检测电路,其实要讲的就是Atheros的方案,因为这个设计实在是太有个性了,让我们来一起见识一下吧。如图3-10所示,就是Atheros常用的功率检测方案。图中的PC1就是一个印制耦合器(Printed Coupler),来自功率放大器的输出信号LPF_OUT经过耦合器,就在2,3脚感应到高频交变电压,这个电压随着输出功率的增大而增大L18,L19,D1,C217,R248组成了常规的整流电路,这样,就得到了随着输出功率的变化而变化的直流电压POWER_DETECT,无线收发器就可以得到这个电压值从而做作出相应的动作。

这里有一点需要注意的是,整流二极管D1一定要选择工作频率很高的二极管,例如这个设计中的SMS7630的工作频率就达10GHz。


图3-10 Atheros常用的功率检测方案

3.6. 增益控制

 

增益控制的作用就是可以改变功放电路的增益,从而能改变输出功率。改变功率放大器最终输出功率的方法有两种,一种是无线收发器改变自身的输出功率,另外一种就是改变功放电路的增益,在这里我们主要关注后者。通常功放芯片的增益控制管脚会有两个或者两个以上,分别改变的是第一级放大和第二级放大的增益值,图3-11是典型的增益控制原理图。来自收发器的控制信号PA_GAIN经过R245和C248组成的RC滤波电路(滤除来自收发器的可能的交流成分)通过两个电阻作用于功放芯片的GAIN_1和GAIN_2两个管脚,从而控制功率放大电路的增益,也控制着最终的输出功率。

图3-11 典型的增益控制原理图

3.7. 温度检测

温度检测功能在Ralink的方案中使用的很多,但是在Atheros的方案就未曾见过。这一功能可以检测功放芯片的温度,防止芯片温度过热而烧毁。另外一个更加重要的作用就是根据环境温度调整功放电路的输出功率。很多情况下,环境温度的改变,会对功放芯片的输出功率会造成比较大的影响,如果无线收发器通过温度检测电路得知当前的温度并适当的调整自身的输出功率或者改变功放的增益,就可以使功放电路在环境温度改变时依然可保持稳定的功率输出,这对于提高产品的稳定性是有好处的。

图3-12给出的是Ralink的典型的温度检测电路。图中的RT1是热敏电阻,当环境温度改变时,自身的阻值会发生变化,这样,显而易见,TMP_DET的值就会发生变化,这样,收发器就可以检测到环境的温度了。温度检测电路一般会放置在功放芯片的附近。

图3-12 Ralink常用的温度检测电路

3.8. 完整设计的功率放大电路

在以上的内容中,我们讨论了功率放大电路的各个组成部分,现在,让我们将这些部分组合到一起,就可以完成功率放大电路的设计了,如图3-13所示。我们来看一看,试一试能否找出之前的各部分,如果可以,那么你已经基本了解Wi-Fi产品的一般功率放大电路的架构了。

通常情况下,在功放芯片的Datasheet中会给出一份参考设计,这对于我们的设计具有一定的指导作用。



图3-13 完整设计的射频功率放大电路

第4章. 低噪声放大器

低噪声放大器在框图1-1中位于收发切换器(Transmit/Receive Switch)和无线收发器(Radio Transceiver)之间,对天线感应到的信号进行放大,这样才能使无线收发器进行有效的处理。可以说,低噪声放大器的性能直接影响着整个设计的灵敏度。

低噪声放大器的框图如图4-1所示,有四个部分组成,输入回路,输出回路,放大电路,增益控制,在以下的内容中,我们将逐个讨论。

图4-1 低噪声放大器的框图

4.1. 低噪声的放大器的主要参数

低噪声放大器,顾名思义,就可以知道其具有极低的噪声系数。噪声系数的物理含义是:信号通过放大器之后,由于放大器产生噪声,使信噪比变坏;信噪比下降的倍数就是噪声系数。
除了噪声系数以外,以下几个参数也是我们需要关注的:
功率增益
增益平坦度
工作频带
动态范围

功率增益主要就指低噪声放大器的增益能力,增益平坦度描述放大器在工作频带内频率变化引起的功率增益的波动,工作频带就是指放大器的正常工作的频率范围,动态范围是指放大器允许输入的最小和最大功率范围。

 

4.2. 低噪声微波器件的选择

芯片或者晶体管(场效应管)的选择,以下简称微波器件的选择,往往对于低噪声放大器的设计起着至关重要的影响。我们先来看一看在我们公司的设计中,通常选用什么微波器件。表4-1和表4-2给出了Atheros和Ralink常用的低噪声放大器微波器件。

我们不难发现,这些器件的选择没有太多的共性,我们能看到有四种解决方案,第一种是采用微波三极管来实现,第二种是使用专用低噪声放大器芯片,第三种是集成在前端模块(Frontend Module)中,第四种就是不使用低噪声放大器。我们在这里只讨论采用晶体管和专用芯片的方法。

表4-1 Atheros常用的低噪声放大器微波器件

表4-2 Ralink常用的低噪声放大器微波器件

微波器件(晶体管或芯片)的参数,基本上就决定了低噪声放大器的性能,我们来看一下最常用的SGA-8343的参数,如图4-2所示。图中给出的参数包括最大增益,噪声系数,S21,工作频率,供电电压,消耗的电流等等。对于专用的低噪声放大器芯片,参数也基本如此,在这里我们就不详细说了。

图4-2 SGA-8343的参数表

4.3. 输入回路

和功率放大器一样,低噪声放大器的输入回路中也会有匹配网络,但是Atheros好像是不走寻常路,很少看到低噪放的输入匹配网络,而Ralink则不一样,几乎在每个设计中都中规中矩的使用Π型匹配网络,如图4-3所示,就是Ralink常用的Π型匹配网络,我个人是比较推崇这种做法的。有了匹配网络,我们可以最大限度的保证我们的设计是高性能的,也就是High-Performance。

图4-3 Ralink常用的Π型匹配网络

4.4. 输出回路

和输入回路一样,输出回路通常也会放置匹配网络,同样,Atheros一般还是不这样做,他们最多会放置一个专有的印制带通滤波器(Printed Band Pass Filter),Ralink的输出回路上的Π型匹配网络基本上会输入回路上的一致,在这里不给出具体的形式了。

4.5. 电源与增益控制

增益控制的作用是很明显的,当接收到的信号强度较低时,我们可以提高低噪声放大器的增益,保证信号可以正常被接收;当接收信号的强度较高时,可以降低低噪声放大器的增益,以免造成信号阻塞。这就是所谓的自动增益控制(Auto Gain Control,AGC)同样,这对于提高产品的稳定性,是很重要的。

我为什么要把电源与增益控制放在同一节呢?因为低噪声放大器的增益是依靠改变供电电压来实现的,这样就很容易理解了。学过模拟电路的都会知道,三极管放大电路的放大倍数和供电电压有密切关系,对于芯片说也同样如此。图4-4给出了常见的增益控制的电路形式。图中的LNA_GAIN既是来自无线收发器(Radio Transceiver)增益控制信号,又是低噪声放大器的供电电源,C104是滤波电容,显而易见,低噪声放大器的增益直接与LNA_GAIN的电压有关。



图4-4 常见的增益控制的电路形式

4.6. 完整设计的低噪声放大器

在这里,我要向大家展示的是一款设计十分细腻的低噪声放大器,这也是我见过的设计最为优秀的低噪声放大器,就是来自某实际案例中的2.4GHz频段的放大器,让我们来一同领略它的风采,如图4-5所示。

图中的LNA_GAIN是来自无线收发器(Radio Transceiver)的增益控制信号,放大器使用的晶体管就是最常用的SGA-8343,R238,R239,R240是基极的偏置电阻,C219,L20,C220组成了低通滤波器,来自切换芯片(Switch)的LNA_IN通过低通滤波器之后经由C218耦合至低噪声放大器,Q2与C221,L51,C214,R240,C210,R239,R238,C211,R241,C215,L52组成了共射极放大电路,最终输出RFIN送至收发器进行处理。

 

尤其值得我们注意的是,在每一个节点处,都放置了滤波电容,这样,就可以最大限度的消除任何可能的噪声,从而实现性能优秀的低噪声放大电路。

图4-5 某实际案例中设计精良的低噪声放大器

第5章. 收发切换电路

收发切换电路实现的功能就是进行发射与接收的切换,通常其最重要的组成部分就是一颗芯片,我们分成四个部分来讨论:芯片的选择,发射与接收回路,天线回路,控制管脚的处理。

5.1. 切换芯片的选择

切换芯片在结构上,通常就是一个单刀双掷的开关,开关掷向哪一边决定于加在控制管脚上的电压。切换芯片的典型内部结构如图5-1所示。

图5-1 切换芯片典型的内部结构

在选择切换芯片时,我们主要关注以下几个参数:
工作频率
切换速度
关断的隔离度
导通的衰减
能够承受的功率
控制电压
功率消耗

有一个比较奇怪的现象时我们很少看到在Datasheet中提到切换速度这样的参数。在绝大多数设计中,几乎无一例外的使用了NEC公司的uPG2179作为切换芯片(Switch),其典型参数如图5-2 所示。

图5-2 切换芯片的典型参数

5.2. 发射与接收回路

切换芯片位于靠近天线的地方,决定着天线作为发射天线还是作为接收天线。功率放大器和低噪声放大器都会直接与切换芯片相连,这样,发射与接收回路上的匹配就是必不可少的。关注一下Atheros和Ralink的方案,会发现,Atheros会在发射回路上放置Π型匹配网络,但是Ralink则不会,一般就是通过电容直接耦合。

如图5-3所示,就是Atheros的典型发射与接收回路SW10就是那颗切换芯片。LPF_OUT是来自功率放大器的输出信号,R186,C121与R194组成了Π型匹配网络,LNA_IN是送至低噪声放大器的信号,SWITCH_TX与SWICTH_RX这两个信号的组合就控制着是打开发射通路还是打开接收通路。

图5-3 Atheros的典型的发射与接收回路

5.3. 天线回路

在5-4中我们已经看到,在Atheros的方案中,会在天线回路中放置一个印制滤波器(Printed Filter),图中的PF1就是Atheros专有的印制滤波器。同样,Ralink一般也不会在天线回路中设置滤波器或匹配电路。

5.4. 控制信号的处理

 

我们已经知道,图5-4中的SWITCH_TX和SWITCH_RX是来自无线收发器(Radio Transceiver)的控制信号,是直流电压,这样,为了稳定这个电压值,避免造成切换器的误动作,我们一般会在控制通路上串联一个电阻(或电感),一般是小于1K的电阻,并且在控制管脚的位置放置滤波电容(1-10pF),这样,我们就可以很好的保证切换芯片没有误动作,从而,我们就得到了如图5-4所示的完整的切换电路的设计。

图5-4 完整设计的切换电路

第6章. 天线与天线连接器

在这一章里,我要讲的不是天线的设计,因为目前我还不太懂天线设计,而且天线设计是一个十分专业和复杂的学科。在这里我想要说的其实就只是一个问题:一定要在天线或者天线连接器的附近放置一个Π型匹配网络,这一点是我们做射频设计的人必须要牢记的事实。看一下Atheros 和Ralink的方案,会发现Π型匹配网络是必不可少的,典型的设计如图6-1所示。

图6-1 典型的天线连接器电路设计

第7章. 完整设计的射频电路

在前面几章的内容中,我们分成五章分别讲解了射频电路的无线收发器(Radio Transceiver),功率放大电路(Power Amplifier,PA),低噪声放大器(Low Noise Amplifier,LNA),收发切换电路(Transmit/Receive Switch),天线与天线连接器(Antenna And Connector),在每章的最后一节,我们都给出了每一部分的完整设计。我想你已经知道了——没错,只要把我们每个部分的完整设计组合在一起,那么我们就得到了Wi-Fi产品的一般射频电路的完整设计,我们不要急,我们再来回顾一下在本文一开始提到的射频设计框图,如图7-1。相信大家这时一定已经可以把每一个部分细化,得到更加详细的射频设计框图。

图7-1 射频设计框图

通过前面的讨论,我们已经知道,功率放大器是由带通滤波器,Π型匹配网络,功率微波器件,增益控制,供电电路,功率检测,温度检测低通滤波器这些部分组成的;低噪声放大器是由Π型匹配网络,低噪声放大电路和增益控制组成的;收发切换器是由Π型匹配网络,切换芯片,滤波器组成的;天线和连线连接器部分是由Π型匹配网络和连接器组成的。于是,我们得到了Wi-Fi产品一般射频电路的详细框图,如图7-2所示。

图7-2 射频设计详细框图

现在,让我们将各个模块的详细电路图,看看我们得到了什么。没错,我们得到了完整的设计图,如图7-3所示。在这个原理图中,我们设计的是一收一发的情况,如果是二发二收,那么原理图就是两个图7-3,复制而已。

图7-3 完整详细的原理图

53-WIFI&bluetooth模块电路设计 WIFI & Bluetooth模块电路设计 阅读详情

相关推荐

射频电路设计及PCB设计要点

一、射频电路中元器件封装的注意事项 成功的RF设计必须仔细注意整个设计过程中每个步骤及每个细节,这意味着必须在设计开始阶段就要进行彻底的、仔细的规划,并对每个设计步骤的进展进行全面持续的评估。而这种细致的设计技巧正是国内大多数电子企业文化所欠缺的。 近几年来,由于蓝牙设备、无线局域网络(WLAN)设备,和移动电话的需求与成长,促使业者越来越关注RF电路设计的技巧。从过去到现在,RF电路板设计如同电...

weixin_43839976的博客 2564

无线WiFi芯片电路设计

为什么要这样做无线WiFi芯片送出的信号是要给功率放大电路的,功率放大电路处理的是单端信号平衡器通常用来处理差分信号的问题,除此之外,我们知道,电感和电容都能够改变信号的相位,从差分信号到单端信号,基本的方法就是用电感和电容组成两条不同的通路,这样,经过处理电路的两路信号就在相位上相差了180°从而可以使原本相位相差 180°的差分信号同相,得到单端信号。收发器接收的信号来自于前端的低噪声放大器,和功率放大器一样,低噪声放大器处理的也是单端射频信号,这样,我们必须将低噪声放大器输出的信号进行转换。

大音希声 3300

2.4GHz WLAN射频方案图的设计分析

射频(RF, Radio Frequency)电路是用于处理无线信号的电路,通常工作在频率范围为3kHz到300GHz之间。

weixin_43199439的博客 2112

WiFi产品的一般射频电路设计1(转)

地址http://www.radiobook.cn/microwave/general-rf-design-in-wi-fi-product.html

荷兰风车 2145

WiFi射频电路设计及优化教程

本文还有配套的精品资源,点击获取 简介:WiFi产品的射频(RF)电路设计是无线通信中的核心环节,它涵盖无线信号的发射、接收与处理。本资料深入探讨了WiFi设备射频系统的设计,包括基本原理的理解,硬件组件的设计考量,以及EMC/EMI、热设计和射频指标测试等关键点。涉及功率放大器、低噪声放大器、混频器、频率合成器、滤波器、数字调制解调器和天线等重要组成部分。设计完成后,RF...

weixin_34718952的博客 2067

WiFi产品射频电路设计指南:方案选型、PCB布局与调试实战

射频电路设计是无线通信硬件开发的核心环节,直接决定了设备的信号质量、传输速率与认证通过率。在WiFi产品研发中,射频性能的优劣不仅取决于芯片方案,更与PCB布局、天线匹配、阻抗控制等工程细节密切相关。良好的射频设计需要遵循从概念到实现的系统化流程:先理解收发链路基本原理,再合理规划板级走线与匹配网络,最后借助网络分析仪等工具精准调试。针对智能家居、工业网关等典型应用场景,工程师需重点关注灵敏度、EVM等关键指标,并通过规范的调试方法解决天线匹配不良、电源噪声耦合等常见问题。本文围绕WiFi产品射频电路设计,

weixin_29188043的博客 227

Atheros对Ralink,看WiFi产品的射频电路设计

这篇文章是我结合多年的工作经验和实践编写而成的,这是一篇针对性很强的技术文章。在这篇文章中,我只是分析研究了Wi-Fi产品的一般射频电路设计,而且主要分析的是Atheros 和Ralink的解决方案,对于其他厂商的解决方案并没有进行研究。希望能够对大家的设计工作起到一定的帮助作用。 I. 前言 这是一篇针对性很不强的技术文章。在这篇文章中,我研究,讨论了Wi-Fi产品中的射频电路设计,包括各个...

weixin_39953289的博客 2197

WiFi产品射频电路设计全流程:从链路预算到PCB布局调试

射频电路设计是无线通信产品硬件开发中的核心环节,其性能直接决定WiFi设备的传输速率、覆盖范围与稳定性。从电磁波传播原理与阻抗匹配概念出发,工程师需要掌握链路预算、噪声系数、天线匹配等关键技术指标,才能在PCB布局阶段做好地过孔隔离与50欧姆阻抗控制。随着WiFi 6等高阶调制技术的普及,射频前端线性度与EVM要求愈发严苛,合理的设计流程能有效降低调试成本。无论是路由器、智能家居网关还是工业无线模块,系统化的射频设计方法论都能帮助硬件工程师快速定位问题、优化性能。本文以WiFi产品一般射频电路设计为主线,梳

weixin_29179311的博客 365

WIFI天线设计与射频电路设计资源文件介绍

WIFI天线设计与射频电路设计资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 资源概述 本资源库提供了一份关于WIFI天线设计与射频电路设计的压缩文件,文件名为“WIFI天线设计和射频电路设计.rar”。该资源文件包含了一系列的培训资料,旨在通过课程学习,帮助设计者和工程师深入了解和掌握WiFi及蓝牙天线的实际设计方法、HFSS仿真分析技术,以及矢量网络分析仪在匹配...

gitblog_06730的博客 864

WiFi产品的一般射频电路设计.docx

WiFi产品的一般射频电路设计.docx

使用moveit控制机械臂

位置设置:`target_pose.position.x = 0.12`, `target_pose.position.y = 0.41`, 和 `target_pose.position.z = 0.44` 分别设置了机械臂末端执行器的X, Y, 和 Z坐标。设定目标位置:`group.set_pose_target(target_pose)` 这一命令将之前定义的目标位置和姿态设置为当前机械臂组的目标,为接下来的路径规划做准备。在机械臂控制的过程中,设定精确的目标位置和姿态是实现精确操作的关键步骤。

realman_Rop的博客 3687

射频电路设计规范

1、射频电路中元器件封装的注意事项 成功的RF设计必须仔细注意整个设计过程中每个步骤及每个细节,这意味着必须在设计开始阶段就要进行彻底的、仔细的规划,并对每个设计步骤的进展进行全面持续的评估。而这种细致的设计技巧正是国内大多数电子企业文化所欠缺的。 近几年来,由于蓝牙设备、无线局域网络(WLAN)设备,和移动电话的需求与成长,促使业者越来越关注RF电路设计的技巧。从过去到现在,RF电路板设计如同电磁干扰(EMI)问题一样,一直是工程师们最难掌控的部份,甚至是梦魇。若想要一次就设计成功,必须事先仔细

cfxzy的专栏 4706

使用广播星历进行 GPS 卫星位置的计算

目录1.计算卫星运动的平均角速度 n2.计算观测瞬间卫星的近地点角3.计算偏近点角4.计算真近点角 f5.计算升交角距 6.计算摄动改正项7.进行摄动改正 8.计算卫星在轨道面坐标系中的位置9.计算观测瞬间升交点的经度 L10.计算卫星在瞬时地球坐标系中的位置11.计算卫星在协议地球坐标系中的位置使用广播星历进行GPS卫星位置的计算的详细步骤如下:关于在广播星历中各参数的分布情况可以参考下图:首先根据广播星历中给出的参数 计算参考时刻(TOE) 的平均角速度 式中,GM为万有引力常数 G 与地球总质量

qq_43381998的博客 5567

WIFI天线设计与射频电路设计资源文件介绍:全面掌握无线设计技能

WIFI天线设计与射频电路设计资源文件介绍:全面掌握无线设计技能 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在无线通信技术日益发展的今天,WiFi天线和射频电路设计成为了电子工程师必须掌握的核心技能。WIFI天线设计与射频电路设计资源文件,是一份专为工程师和设计者提供的培训资料,通过详细的教学内容和实际操作指南,帮助用户深入了解WiFi及蓝牙天线的实际设计方法、H...

gitblog_06775的博客 582

配置 Druid 数据源及密码加密-SpringBoot 实战基础

在SpringBoot中配置 Druid 数据源及密码加密的方法前文集成 MyBatis Plus,实现了一组增删改查接口。在启动服务时,从控制台中可以看出 Spring Boot 默认使用 Hikari 作为数据库连接池,Hikari性能很优秀。在国内使用较多的连接池还属阿里开源的 Druid,中文发音为德鲁伊。Druid 结合了 C3P0、DBCP 等 DB 池的优点,同时还加入了日志监控,可以很好的监控 DB 池连接和 SQL 的执行情况。...

m0_67698950的博客 954

HyperMesh实战:用Field工具搞定复杂载荷映射(附TCL脚本示例)

本文深入探讨了HyperMesh中Field工具在复杂载荷映射中的高级应用,包括从CSV到有限元网格的温度场映射全流程、稀疏数据处理技巧及TCL自动化脚本示例。通过Field工具,工程师可以高效实现CFD温度场到结构网格的精准映射,显著提升有限元分析的精度与效率。

white的博客 265

WIFI射频电路设计与调试资料下载:全面掌握射频技术,助力无线通信

WIFI射频电路设计与调试资料下载:全面掌握射频技术,助力无线通信 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在无线通信技术日益发展的今天,WIFI射频电路设计与调试技能成为电子工程师必备的核心能力。WIFI射频电路设计与调试资料下载项目,为您提供了一份详尽的文档资料,助力您深入了解和掌握WIFI射频电路的构建、调试与优化。 项目技术分析 WIFI射频电路设计与调...

gitblog_06783的博客 374

【干货】S7-PLCSIM Advanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

【干货】S7-PLCSIM Adavanced V3.0 无法启动实例( Error Code:-30,LicenseNotFound)问题解决方法

handinvv的博客 5万+

如何设计射频电路?

无线发射器和接收器在概念上,可分为基频与射频两个部份。基频包含发射器的输入信号之频率范围,也包含接收器的输出信号之频率范围。基频的频宽决定了数据在系统中可流动的基本速率。基频是用来改善数据流的可靠度,并在特定的数据传输率之下,减少发射器施加在传输媒介(transmission medium)的负荷。 因此,PCB设计基频电路时,需要大量的信号处理工程知识。发射器的射频电路能将已处理过的基频信号转换...

wusuowei1010的博客 913

AI量化投资开源平台——Qlib(微矿)的学习使用笔记(随缘更新)

Qlib 涵盖了量化投资的全过程,为用户的 AI 算法提供了高性能的底层基础架构,从框架设计上让用户可以更容易地应用 AI 算法来辅助解决量化投资的各个关键问题(例如 Alpha 预测,风险预测,市场动态性建模)。本文旨在记录一些面向初学者的基础内容。

in_void的博客 3133

上万条对话白分析了?智能客服质检避坑指南:90%团队倒在这些误区

当前客服质检普遍存在投入产出失衡的现象,根源在于十大误区:过度关注单点技术指标而忽视端到端解决能力、僵化的话术模板限制AI应变、数据孤岛阻碍知识进化、盲目追求拟人化牺牲效率、传统整改机制跟不上机器速度等。破局需重构质检体系,包括建立决策树质检法、设计复杂问题测试集、构建实时数据闭环、重置AI专属评价指标、实施分钟级热修复机制等。关键在于将质检从被动纠错升级为主动赋能,通过根因分析、场景化反馈、标准化评分和数据驱动优化,打造"问题诊断-改进-验证"

2202_75469062的博客 1541

WIFI射频电路设计与调试资料下载

WIFI射频电路设计与调试资料下载 去发现同类优质开源项目:https://gitcode.com/ 欢迎使用本仓库提供的WIFI射频电路设计与调试资料!本资料包含了一份详细的文档,旨在帮助您了解和掌握WIFI射频电路的设计与调试技巧。 资源简介 资源文件:WIFI射频电路的设计与调试.doc 资源描述:本资源为WIFI射频电路设计与调试的相关资料,内容丰富,深入浅出。通过阅读本文档,您可以获得以...

gitblog_06750的博客 256

【数据集】中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

中国大气污染物数据集CHAP(1km空间分辨率)-韦晶团队

WW、forever的博客 2595

【亲测免费】 WIFI射频电路EVM分析(理论篇+实践篇)

WIFI射频电路EVM分析(理论篇+实践篇) 去发现同类优质开源项目:https://gitcode.com/ 欢迎阅读 本文档是针对WIFI射频电路中的EVM(Error Vector Magnitude)分析的深度指南,分为理论篇和实践篇两大部分。无论是对于初涉无线通信领域的新人,还是寻求优化RF设计经验的专业工程师,这都将是一份宝贵的参考资料。 理论篇概述 在理论篇中,我们将深入探讨EVM的...

gitblog_09705的博客 1095

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: Android R热点部分变化
下一篇: WIFI6 feature
头铁的伦
博客等级 码龄9年 183粉丝 53原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值