虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

峰均功率比

  • 功率倒置算法在北斗抗干扰天线系统中的应用

    为解决北斗导航接收机干扰功率强、有效信号弱的不足,提出了一种基于功率倒置自适应算法的抗干扰设计方案。该方案以自适应天线系统为平台,采用FPGA处理器Virtex5芯片实现自适应算法,根据最小均方误差原则迭代计算功率倒置的最优权值并产生加权输出。测试结果显示:功率倒置算法在干扰形式、干扰方向未知的情况下能够有效抑制干扰,为北斗导航接收机提供最高50 dB的抗干扰能力。

    标签: 功率倒置 中的应用 算法 北斗

    上传时间: 2013-11-07

    上传用户:born2007

  • 应对CDMA系统有界干扰的鲁棒自适应功率控制

    提出了一种应对CDMA系统中有界干扰的鲁棒自适应功率控制算法.仿真结果表明,与传统的功率控制算法相比,该算法性能优越,可以使用户获得更高的信噪比和较低的发射功率,且系统容量得到了提高.

    标签: CDMA 干扰 功率控制

    上传时间: 2013-11-02

    上传用户:yimoney

  • Arduino学习笔记4_Arduino软件模拟PWM

    注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言.      2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\   所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-08

    上传用户:dingdingcandy

  • PCB布线原则

    PCB 布线原则连线精简原则连线要精简,尽可能短,尽量少拐弯,力求线条简单明了,特别是在高频回路中,当然为了达到阻抗匹配而需要进行特殊延长的线就例外了,例如蛇行走线等。安全载流原则铜线的宽度应以自己所能承载的电流为基础进行设计,铜线的载流能力取决于以下因素:线宽、线厚(铜铂厚度)、允许温升等,下表给出了铜导线的宽度和导线面积以及导电电流的关系(军品标准),可以根据这个基本的关系对导线宽度进行适当的考虑。印制导线最大允许工作电流(导线厚50um,允许温升10℃)导线宽度(Mil) 导线电流(A) 其中:K 为修正系数,一般覆铜线在内层时取0.024,在外层时取0.048;T 为最大温升,单位为℃;A 为覆铜线的截面积,单位为mil(不是mm,注意);I 为允许的最大电流,单位是A。电磁抗干扰原则电磁抗干扰原则涉及的知识点比较多,例如铜膜线的拐弯处应为圆角或斜角(因为高频时直角或者尖角的拐弯会影响电气性能)双面板两面的导线应互相垂直、斜交或者弯曲走线,尽量避免平行走线,减小寄生耦合等。一、 通常一个电子系统中有各种不同的地线,如数字地、逻辑地、系统地、机壳地等,地线的设计原则如下:1、 正确的单点和多点接地在低频电路中,信号的工作频率小于1MHZ,它的布线和器件间的电感影响较小,而接地电路形成的环流对干扰影响较大,因而应采用一点接地。当信号工作频率大于10MHZ 时,如果采用一点接地,其地线的长度不应超过波长的1/20,否则应采用多点接地法。2、 数字地与模拟地分开若线路板上既有逻辑电路又有线性电路,应尽量使它们分开。一般数字电路的抗干扰能力比较强,例如TTL 电路的噪声容限为0.4~0.6V,CMOS 电路的噪声容限为电源电压的0.3~0.45 倍,而模拟电路只要有很小的噪声就足以使其工作不正常,所以这两类电路应该分开布局布线。3、 接地线应尽量加粗若接地线用很细的线条,则接地电位会随电流的变化而变化,使抗噪性能降低。因此应将地线加粗,使它能通过三倍于印制板上的允许电流。如有可能,接地线应在2~3mm 以上。4、 接地线构成闭环路只由数字电路组成的印制板,其接地电路布成环路大多能提高抗噪声能力。因为环形地线可以减小接地电阻,从而减小接地电位差。二、 配置退藕电容PCB 设计的常规做法之一是在印刷板的各个关键部位配置适当的退藕电容,退藕电容的一般配置原则是:􀁺?电电源的输入端跨½10~100uf的的电解电容器,如果印制电路板的位置允许,采Ó100uf以以上的电解电容器抗干扰效果会更好¡���?原原则上每个集成电路芯片都应布置一¸0.01uf~`0.1uf的的瓷片电容,如遇印制板空隙不够,可Ã4~8个个芯片布置一¸1~10uf的的钽电容(最好不用电解电容,电解电容是两层薄膜卷起来的,这种卷起来的结构在高频时表现为电感,最好使用钽电容或聚碳酸酝电容)。���?对对于抗噪能力弱、关断时电源变化大的器件,ÈRA、¡ROM存存储器件,应在芯片的电源线和地线之间直接接入退藕电容¡���?电电容引线不能太长,尤其是高频旁路电容不能有引线¡三¡过过孔设¼在高ËPCB设设计中,看似简单的过孔也往往会给电路的设计带来很大的负面效应,为了减小过孔的寄生效应带来的不利影响,在设计中可以尽量做到£���?从从成本和信号质量两方面来考虑,选择合理尺寸的过孔大小。例如¶6- 10层层的内存模¿PCB设设计来说,选Ó10/20mi((钻¿焊焊盘)的过孔较好,对于一些高密度的小尺寸的板子,也可以尝试使Ó8/18Mil的的过孔。在目前技术条件下,很难使用更小尺寸的过孔了(当孔的深度超过钻孔直径µ6倍倍时,就无法保证孔壁能均匀镀铜);对于电源或地线的过孔则可以考虑使用较大尺寸,以减小阻抗¡���?使使用较薄µPCB板板有利于减小过孔的两种寄生参数¡���? PCB板板上的信号走线尽量不换层,即尽量不要使用不必要的过孔¡���?电电源和地的管脚要就近打过孔,过孔和管脚之间的引线越短越好¡���?在在信号换层的过孔附近放置一些接地的过孔,以便为信号提供最近的回路。甚至可以ÔPCB板板上大量放置一些多余的接地过孔¡四¡降降低噪声与电磁干扰的一些经Ñ?能能用低速芯片就不用高速的,高速芯片用在关键地方¡?可可用串一个电阻的方法,降低控制电路上下沿跳变速率¡?尽尽量为继电器等提供某种形式的阻尼,ÈRC设设置电流阻尼¡?使使用满足系统要求的最低频率时钟¡?时时钟应尽量靠近到用该时钟的器件,石英晶体振荡器的外壳要接地¡?用用地线将时钟区圈起来,时钟线尽量短¡?石石英晶体下面以及对噪声敏感的器件下面不要走线¡?时时钟、总线、片选信号要远ÀI/O线线和接插件¡?时时钟线垂直ÓI/O线线比平行ÓI/O线线干扰小¡? I/O驱驱动电路尽量靠½PCB板板边,让其尽快离¿PC。。对进ÈPCB的的信号要加滤波,从高噪声区来的信号也要加滤波,同时用串终端电阻的办法,减小信号反射¡? MCU无无用端要接高,或接地,或定义成输出端,集成电路上该接电源、地的端都要接,不要悬空¡?闲闲置不用的门电路输入端不要悬空,闲置不用的运放正输入端接地,负输入端接输出端¡?印印制板尽量使Ó45折折线而不Ó90折折线布线,以减小高频信号对外的发射与耦合¡?印印制板按频率和电流开关特性分区,噪声元件与非噪声元件呀距离再远一些¡?单单面板和双面板用单点接电源和单点接地、电源线、地线尽量粗¡?模模拟电压输入线、参考电压端要尽量远离数字电路信号线,特别是时钟¡?对¶A/D类类器件,数字部分与模拟部分不要交叉¡?元元件引脚尽量短,去藕电容引脚尽量短¡?关关键的线要尽量粗,并在两边加上保护地,高速线要短要直¡?对对噪声敏感的线不要与大电流,高速开关线并行¡?弱弱信号电路,低频电路周围不要形成电流环路¡?任任何信号都不要形成环路,如不可避免,让环路区尽量小¡?每每个集成电路有一个去藕电容。每个电解电容边上都要加一个小的高频旁路电容¡?用用大容量的钽电容或聚酷电容而不用电解电容做电路充放电储能电容,使用管状电容时,外壳要接地¡?对对干扰十分敏感的信号线要设置包地,可以有效地抑制串扰¡?信信号在印刷板上传输,其延迟时间不应大于所有器件的标称延迟时间¡环境效应原Ô要注意所应用的环境,例如在一个振动或者其他容易使板子变形的环境中采用过细的铜膜导线很容易起皮拉断等¡安全工作原Ô要保证安全工作,例如要保证两线最小间距要承受所加电压峰值,高压线应圆滑,不得有尖锐的倒角,否则容易造成板路击穿等。组装方便、规范原则走线设计要考虑组装是否方便,例如印制板上有大面积地线和电源线区时(面积超¹500平平方毫米),应局部开窗口以方便腐蚀等。此外还要考虑组装规范设计,例如元件的焊接点用焊盘来表示,这些焊盘(包括过孔)均会自动不上阻焊油,但是如用填充块当表贴焊盘或用线段当金手指插头,而又不做特别处理,(在阻焊层画出无阻焊油的区域),阻焊油将掩盖这些焊盘和金手指,容易造成误解性错误£SMD器器件的引脚与大面积覆铜连接时,要进行热隔离处理,一般是做一¸Track到到铜箔,以防止受热不均造成的应力集Ö而导致虚焊£PCB上上如果有¦12或或方Ð12mm以以上的过孔时,必须做一个孔盖,以防止焊锡流出等。经济原则遵循该原则要求设计者要对加工,组装的工艺有足够的认识和了解,例È5mil的的线做腐蚀要±8mil难难,所以价格要高,过孔越小越贵等热效应原则在印制板设计时可考虑用以下几种方法:均匀分布热负载、给零件装散热器,局部或全局强迫风冷。从有利于散热的角度出发,印制板最好是直立安装,板与板的距离一般不应小Ó2c,,而且器件在印制板上的排列方式应遵循一定的规则£同一印制板上的器件应尽可能按其发热量大小及散热程度分区排列,发热量小或耐热性差的器件(如小信号晶体管、小规模集³电路、电解电容等)放在冷却气流的最上(入口处),发热量大或耐热性好的器件(如功率晶体管、大规模集成电路等)放在冷却Æ流最下。在水平方向上,大功率器件尽量靠近印刷板的边沿布置,以便缩短传热路径;在垂直方向上,大功率器件尽量靠近印刷板上方布置£以便减少这些器件在工作时对其他器件温度的影响。对温度比较敏感的器件最好安置在温度最低的区域(如设备的µ部),千万不要将它放在发热器件的正上方,多个器件最好是在水平面上交错布局¡设备内印制板的散热主要依靠空气流动,所以在设计时要研究空气流动的路径,合理配置器件或印制电路板。采用合理的器件排列方式,可以有效地降低印制电路的温升。此外通过降额使用,做等温处理等方法也是热设计中经常使用的手段¡

    标签: PCB 布线原则

    上传时间: 2015-01-02

    上传用户:15070202241

  • 基于纳什博弈论的功率控制策略及其牛顿迭代算法

     在某系统码相关测距中,每一个飞机的询问信号都可能会成为其他飞机的干扰。在有限的可用功率下,就需要一个可靠和高效的功率控制策略。纳什博弈(非合作博弈)理论是适合于功率控制问题的一种理论,是飞机在信噪比和功率利用之间选择一种均衡。文献[1]研究了这个问题的纳什博弈论策略,得到了一个非线性系统代数方程,并提出了一种定点迭代的功率控制算法。文中研究了一种新的基于牛顿迭代的功率控制策略来解决此类代数方程。仿真结果说明了牛顿迭代算法的效率明显提高。

    标签: 博弈论 功率控制 策略

    上传时间: 2013-10-13

    上传用户:AISINI005

  • 驻波比换算表

    电压驻波比、反射损耗、传输损耗、电压反射系数、传输功率、功率反射换算表

    标签: 换算表

    上传时间: 2013-10-17

    上传用户:tianyi996

  • Arduino学习笔记4_Arduino软件模拟PWM

    注:1.这篇文章断断续续写了很久,画图技术也不精,难免错漏,大家凑合看.有问题可以留言.      2.论坛排版把我的代码缩进全弄没了,大家将代码粘贴到arduino编译器,然后按ctrl+T重新格式化代码格式即可看的舒服. 一、什么是PWM PWM 即Pulse Wavelength Modulation 脉宽调制波,通过调整输出信号占空比,从而达到改 变输出平均电压的目的。相信Arduino 的PWM 大家都不陌生,在Arduino Duemilanove 2009 中,有6 个8 位精度PWM 引脚,分别是3, 5, 6, 9, 10, 11 脚。我们可以使用analogWrite()控 制PWM 脚输出频率大概在500Hz 的左右的PWM 调制波。分辨率8 位即2 的8 次方等于 256 级精度。但是有时候我们会觉得6 个PWM 引脚不够用。比如我们做一个10 路灯调光, 就需要有10 个PWM 脚。Arduino Duemilanove 2009 有13 个数字输出脚,如果它们都可以 PWM 的话,就能满足条件了。于是本文介绍用软件模拟PWM。 二、Arduino 软件模拟PWM Arduino PWM 调压原理:PWM 有好几种方法。而Arduino 因为电源和实现难度限制,一般 使用周期恒定,占空比变化的单极性PWM。 通过调整一个周期里面输出脚高/低电平的时间比(即是占空比)去获得给一个用电器不同 的平均功率。 如图所示,假设PWM 波形周期1ms(即1kHz),分辨率1000 级。那么需要一个信号时间 精度1ms/1000=1us 的信号源,即1MHz。所以说,PWM 的实现难点在于需要使用很高频的 信号源,才能获得快速与高精度。下面先由一个简单的PWM 程序开始: const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { if((bright++) == 255) bright = 0; for(int i = 0; i < 255; i++) { if(i < bright) { digitalWrite(PWMPin, HIGH); delayMicroseconds(30); } else { digitalWrite(PWMPin, LOW); delayMicroseconds(30); } } } 这是一个软件PWM 控制Arduino D13 引脚的例子。只需要一块Arduino 即可测试此代码。 程序解析:由for 循环可以看出,完成一个PWM 周期,共循环255 次。 假设bright=100 时候,在第0~100 次循环中,i 等于1 到99 均小于bright,于是输出PWMPin 高电平; 然后第100 到255 次循环里面,i 等于100~255 大于bright,于是输出PWMPin 低电平。无 论输出高低电平都保持30us。 那么说,如果bright=100 的话,就有100 次循环是高电平,155 次循环是低电平。 如果忽略指令执行时间的话,这次的PWM 波形占空比为100/255,如果调整bright 的值, 就能改变接在D13 的LED 的亮度。 这里设置了每次for 循环之后,将bright 加一,并且当bright 加到255 时归0。所以,我们 看到的最终效果就是LED 慢慢变亮,到顶之后然后突然暗回去重新变亮。 这是最基本的PWM 方法,也应该是大家想的比较多的想法。 然后介绍一个简单一点的。思维风格完全不同。不过对于驱动一个LED 来说,效果与上面 的程序一样。 const int PWMPin = 13; int bright = 0; void setup() { pinMode(PWMPin, OUTPUT); } void loop() { digitalWrite(PWMPin, HIGH); delayMicroseconds(bright*30); digitalWrite(PWMPin, LOW); delayMicroseconds((255 - bright)*30); if((bright++) == 255) bright = 0; } 可以看出,这段代码少了一个For 循环。它先输出一个高电平,然后维持(bright*30)us。然 后输出一个低电平,维持时间((255-bright)*30)us。这样两次高低就能完成一个PWM 周期。 分辨率也是255。 三、多引脚PWM Arduino 本身已有PWM 引脚并且运行起来不占CPU 时间,所以软件模拟一个引脚的PWM 完全没有实用意义。我们软件模拟的价值在于:他能将任意的数字IO 口变成PWM 引脚。 当一片Arduino 要同时控制多个PWM,并且没有其他重任务的时候,就要用软件PWM 了。 多引脚PWM 有一种下面的方式: int brights[14] = {0}; //定义14个引脚的初始亮度,可以随意设置 int StartPWMPin = 0, EndPWMPin = 13; //设置D0~D13为PWM 引脚 int PWMResolution = 255; //设置PWM 占空比分辨率 void setup() { //定义所有IO 端输出 for(int i = StartPWMPin; i <= EndPWMPin; i++) { pinMode(i, OUTPUT); //随便定义个初始亮度,便于观察 brights[ i ] = random(0, 255); } } void loop() { //这for 循环是为14盏灯做渐亮的。每次Arduino loop()循环, //brights 自增一次。直到brights=255时候,将brights 置零重新计数。 for(int i = StartPWMPin; i <= EndPWMPin; i++) { if((brights[i]++) == PWMResolution) brights[i] = 0; } for(int i = 0; i <= PWMResolution; i++) //i 是计数一个PWM 周期 { for(int j = StartPWMPin; j <= EndPWMPin; j++) //每个PWM 周期均遍历所有引脚 { if(i < brights[j])\   所以我们要更改PWM 周期的话,我们将精度(代码里面的变量:PWMResolution)降低就行,比如一般调整LED 亮度的话,我们用64 级精度就行。这样速度就是2x32x64=4ms。就不会闪了。

    标签: Arduino PWM 软件模拟

    上传时间: 2013-10-23

    上传用户:mqien

  • 据我们使用24CXXEEPROM的经验,当用"指定地址_读"时,若该地址不在一页开头,会常出错。尝试多种措施,均未彻底消除 按页读写则彻底解决了。本程序就是按页读写编写的

    据我们使用24CXXEEPROM的经验,当用"指定地址_读"时,若该地址不在一页开头,会常出错。尝试多种措施,均未彻底消除 按页读写则彻底解决了。本程序就是按页读写编写的,但它也支持单个﹑多个﹑甚至整个芯片内数据的读写。本程序已在山东风光电子公司的变频器和功率信号源上通过并使用使用,读写绝对可靠。

    标签: CXXEEPROM 地址 读写

    上传时间: 2015-06-05

    上传用户:星仔

  • 多频道功率谱计算程序

    多频道功率谱计算程序,比常规功率分辨率更高,matlab2006a平台调试通过

    标签: 多频 功率谱 计算 程序

    上传时间: 2015-09-03

    上传用户:coeus

  • 【摘  要】论文总结了CDMA通信系统功率控制的目的和方法

    【摘  要】论文总结了CDMA通信系统功率控制的目的和方法,重点介绍了基于信噪比的功率控制算法,最后利用 MATLAB工具,对开闭环结合的功率控制方法进行了仿真,给出了实验结果。 【关键词】 CDMA  功率控制  MATLAB仿真

    标签: 论文 功率控制 通信系统

    上传时间: 2013-12-06

    上传用户:asdkin