积累

1- 在tomcat启动时加入系统参数:
           -Dorg.apache.tapestry.disable-caching=true  
           -Dorg.apache.tapestry.enable-reset-service=true
           如果在eclipse WTP中启动tomcat,就加在服务运行的VM arguments中。

2-
Tomcat HotSwap配置:
    没有什么特殊的,编辑tomcat的配置,在Modules子页中去掉项目的Auto Reload选项,
    打开Overview子页Server区域中的Enable Tomcat debug mode,
    这样,更新了class文件后,就不用重新启动服务器或者重新加载context了。配合(1、)可以出现即时    修改即时观看结果的效果了,很方 便D。

3-
Tapestry4.0的一些默认编码是iso-8859-1的,一般我们要用UTF-8的,这样修改就行了。
    在${yourServletName}.application文件中加入如下配置:
        <meta key="org.apache.tapestry.messages-encoding" value="UTF-8" />
        <meta key="org.apache.tapestry.output-encoding" value="UTF-8" />
        <meta key="org.apache.tapestry.template-encoding" value="UTF-8" />

4-
一个页面对应一个class文件,这个class文件是BasePage的抽象子类,Tapestry中的特殊怪异用法,因为框架会自己生成实现类来管理变量寿命周期,因此,如果要声明页面参数(就是原来request中的传来的参数),一定要按照下面方式:
        @Persist
        public abstract String getName();
        public abstract void setName(String name);
        其中@Persist意思是把这个参数保存在session中以备后用
        注意:万万不可自己随便去做个完整的java property getter and setter出来,不然会遇到严重的多线程问题,切忌切忌切忌!

5-
页面转向和导航
        先说服务器内部转向。很简单,两种方式搞定:
        a)不用参数:在page类的Linstener的方法中返回页面名字,String
        b)带参数:在page类中注入目标页面:
        @InjectPage("FirstPage")
        public abstract FirstPage getFirstPage();
        ....
        public IPage doClick(){
              FirstPage page = getFirstPage();
              page.setMyGF("Rain");
              return page;
        }
        如果需要配合工作流引擎决定页面转向,就需要使用Tapestry API获得IPage实例:      FirstPage page = (FirstPage) this.getRequestCycle().getPage(
    "FirstPage");
              page.setMyGF("Rain");
              return page;
      
        该说客户端重定向了
       
也分成两种:
         a)无参数:
        @InjectObject("engine-service:page")
        public abstract IEngineService getPageService();
        ...
        public ILink doClick(){
              FirstPage page = (FirstPage) getPageService().getLink(false,"FirstPage");
              //page.setMyGF("Rain");//FirstPage的myGF参数除非指明了 “@Persist ”,否则设置参数将无效!
              return page;
        }

      
b)有参数:
        @InjectObject("engine-service:external")
        public abstract IEngineService getExternalService();
        ...
        public ILink doClick(){ 
             IEngineService service =  getExternalService();
             ExternalServiceParameter parameter = new ExternalServiceParameter("UserRegister", new Object[] { "param","abc"});
             ILink page = service.getLink(false, parameter);
             return page;
        }
         同时,要注意的是,该页面必须implement IExternalPage,并实现接受参数的方法public void activateExternalPage(Object[] parameters, IRequestCycle cycle)!
 
 
         如果要跳转到系统外部的地址去的话,直接throw new RedirectException("http://spaces.msn.com/teedywang/");就行了,tapestry特有的怪异的重定向,寒一个给他,当然,也可以调用this.getRequestCycle().sendRedirect("http://spaces.msn.com/teedywang/");

6-initialize()这个方法,的确,在页面表现的时候,执行两次。页面表现之前,初始化你的页面,然后页面表现你的业务逻辑,比如你要显示什么新闻呀等等。。。最后,页面在结束表现之前,再次执行这个方法,将你的properties 还原为初始值,这样,在你的下次再访问该页面的时候,不会因为 properties的值已经改变而造成意想不到的错误。

7-initialize()
detach()
attach()
pageBeginRender()
pageAfterRender()
它们的执行是有先后顺序的,其中只有initialize()方法会执行两次,其它的都执行一次。这些特点,足够你利用来做很多事。
页面在表现(render)的时候,我只以direct service举例:
1)执行initialize(),初始化该页面的properties,这些properties都应该是客户端的瞬时状态。
2)执行attach(IEngine value),获取你的engine。所以,你可以利用这个方法往你的web容器里面加载服务。
3)执行pageBeginRender(),同样是用来在页面表现之前,给你希望的变量赋值。。比如说,我基本上是用这个方法来获取Visit对象中储存的session值。
4)页面表现业务逻辑。你的什么Foreach啊,等等,现在才开始执行。
5)执行pageEndRender()。在你的页面业务逻辑表现完之后,如果你希望有什么后续工作,可以在这里执行。
6)执行detach()的super(),也就是执行AbstractPage里面Tapestry自己的detach(),目的是为了清空该页面所调用的 engine,visit,requestCycle。因为如果不清空的话,比如什么用户信息的话,就可能会泄露。这个方法的存在是 Tapestry基于安全性的考虑。
7)执行initialize(),再次将你的properties恢复为初始值。
8)执行detach()里面,你自己写的内容。。
以上仅仅最简单的情况下,这5种方法的执行顺序。。。

8-可以在Javascript里面使用Tapestry标签
   var data = "<span jwcid="@Insert" raw="true" value="ognl:current.name " />";
  注意: 标签要使用""引住,不加raw="true" 的话,是出现#&34;的html转义符号

9-在开发自定义组件的时候组件内的中文要使用_zh_CN.properties文件转为unicode码,不然在Jboss中会出现乱码。

10-
Form组件基本用法:
对于Form组件,也许现在阐述的内容让你一头雾水,不过看后面几种组件的介绍,就会逐渐明白的。
<form jwcid=" leaveWord@Form" delegate="ognl:beans.delegate">
表单提交必须使用DirectLink方式。在这里,监听(listener)方法可以有两种使用方式。

第一种方式,将监听方法放在Form组件中声明,那么格式就是:
<form jwcid="leaveWord@Form" delegate="ognl:beans.delegate" listener="ognl:listeners.leaveWord">
这种方式的话,也就是说,凡是Form组件所包围的范围内,只要submitted,那么就会触发监听方法。

第二种方式,将监听方法放在Submit或者ImageSubmit组件中:
<span jwcid="@ImageSubmit" image="ognl:assets.submitImage" listener="ognl:listeners.leaveWord">
<img src="images/button/tj.gif" width="50" height="18" border="0"/></span>
也就是我们现在使用的方式,
这种方式的优点在于,如果Form中有 多个submit按钮,我们希望不同的按钮实现不同的功能,那么这种方式就方便多了。

delegate="ognl:beans.delegate"这个参数用来连接Form和验证代理。在Form中的每一个FieldLabel和ValidField组件必须使用用一个验证代理。在MessageBoard.page文件中:
<bean name="delegate" class="com.cdmcs.tapestry.page.RegisterDelegate"/>
OGNL表达式beans.delegate解释一个验证代理。所有这个Form中的组件都将共享这个代理。


<think>嗯,用户想了解“脉冲积累”这个概念。首先,我需要确定用户所在的领域。脉冲积累常见于雷达信号处理或无线通信中,所以用户可能是相关专业的学生或工程师。接下来,我得回忆脉冲积累的基本定义,确保自己理解正确。 脉冲积累指的是将多个脉冲信号的能量进行累积,以提高信噪比,从而增强检测能力。不过,这里需要分清楚相参积累和非相参积累的区别。相参积累需要保持信号的相位一致性,而非相参则只累积幅度。这点很重要,容易混淆,应该详细说明。 用户可能想知道为什么需要进行脉冲积累,实际应用中的好处是什么。例如,在雷达系统中,单个脉冲可能不足以检测到远距离或微弱的目标,通过积累多个脉冲,可以有效提升信号强度,抑制噪声。需要举例说明,比如雷达探测飞机时的情况。 另外,数学表达式的部分要特别注意格式。根据系统指令,行内公式用$...$,独立公式用$$...$$。例如,信噪比改善的公式,相参积累的增益是N倍,而非相参是√N倍。这里需要正确使用LaTeX,并且确保公式单独成段时用双美元符号。 还要考虑用户可能的疑问,比如积累的条件、实现方式,以及不同积累方法的优缺点。比如相参积累需要严格的相位对齐,可能对系统硬件要求高,而非相参虽然简单,但效果较差。这些对比有助于用户深入理解。 最后,整理结构,按照定义、分类、数学原理、应用场景、优缺点的顺序来组织内容,确保逻辑清晰。同时检查是否有遗漏的关键点,比如积累带来的信噪比提升的具体数值例子,帮助用户直观理解。</think>脉冲积累是雷达信号处理中的关键技术,主要用于提高目标检测性能。以下是逐步解析: 1. **基本定义** 脉冲积累指将多个脉冲周期内接收到的回波信号进行能量叠加,以提高信噪比(SNR)。其数学表达式为: $$ SNR_{\text{累积}} = N \cdot SNR_{\text{单脉冲}} $$ 其中$N$为积累脉冲数,适用于相参积累 2. **分类与原理** - **相参积累(相干积累)** - 条件:保持脉冲间相位一致性 - 特点: - 同时累积幅度和相位信息 - 信噪比增益与脉冲数$N$成正比 - 需满足$\Delta \phi < \pi/4$的相位稳定性要求 - **非相参积累(非相干积累)** - 条件:仅累积幅度信息 - 特点: - 信噪比增益约为$\sqrt{N}$ - 无需严格的相位对齐 - 存在平方律检波损失 3. **实现过程** ``` 接收脉冲序列 → 相位补偿 → 复数叠加(相参) 或 接收脉冲序列 → 包络检波 → 幅度叠加(非相参) ``` 4. **关键参数影响** - 积累时间$T_{\text{obs}} = N \cdot PRI$(脉冲重复间隔) - 最大不模糊距离$R_{\text{max}} = c \cdot PRI/2$ - 速度分辨率$\Delta v = \lambda/(2T_{\text{obs}})$ 5. **典型应用** - 雷达弱目标检测(SNR提升10-15dB) - 多普勒频移测量 - 合成孔径雷达(SAR)成像 6. **工程挑战** - 运动补偿(目标移动导致相位变化) - 脉冲重复频率选择 - 硬件稳定性要求(相参系统需优于$10^{-6}$频率稳定度) 实际案例:某X波段雷达通过64次相参积累,将探测距离从50km提升至120km,验证了$SNR \propto N$的理论关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值