VHF水上AIS技术特性:ITU-R M.1371-4建议书详解

需积分: 48 2 下载量 18 浏览量 更新于2024-07-22 收藏 2.87MB PDF 举报
"REC-M.1371-4中文版是国际电信联盟(ITU)发布的关于在VHF水上移动频带上使用时分多址(TDMA)自动识别系统(AIS)的技术特性建议书。这份文档对于实施和理解AIS系统在航海通信中的重要性具有关键作用,它是在1998年至2010年间通过多次研究课题(ITU-R232/5号)发展完善的。AIS是国际海事组织(IMO)为了提升海上安全和交通管理而制定的通用船载系统,旨在提供船舶的位置、身份、航向等信息。 该建议书主要关注以下几个方面: 1. 技术特性:详细规定了AIS在VHF频段内的工作原理、数据传输方式、帧结构和频率分配,包括信道划分、信号编码和解码方法,以及错误检测和纠正算法。 2. 协调与标准:强调了与其他无线通信系统,如无线电定位和移动通信的兼容性,并确保在有限的频谱资源内实现高效利用。 3. 适用场景:特别针对水上移动通信环境,如船舶之间的通信、海岸站与船舶的交互,以及与卫星网络的集成,明确了AIS的具体应用场景和技术要求。 4. IPR政策:提到了知识产权政策,指导专利声明和许可声明的流程,并指出相关资源可在ITU网站上获取。 5. 版权声明:强调了出版物的版权归属和使用限制,未经国际电联许可,禁止任何形式的复制或分销。 通过阅读REC-M.1371-4,用户能够掌握如何设计、实施和优化一个符合国际标准的AIS系统,这对于船舶运营者、通信服务提供商以及技术研发人员来说,都是至关重要的参考资料。这份文档不仅适用于海上安全领域,还可能扩展到其他依赖水上通信的行业,如渔业、港口管理等。"

帮我把下面一段C++代码改写成python代码:#include "Trade.h" #include "WPrice.h" #include <algorithm> double normalCDF(double x) // Phi(-∞, x) aka N(x) { return std::erfc(-x / std::sqrt(2)) / 2; //erfc()是互补误差函数,该返回值表示标准正态分布下var小于x的概率,即N(x) } CTrade::CTrade(double tick) : wp_bid(0.01), wp_ask(0.01), m_tick(tick), m_TimeRound(50) { newday(NULL); } CTrade::~CTrade() { } void CTrade::OnBook(const BTRec& btRec) { wp.setGamma(0.1); wp_bid = wp.getWP(&btRec.Bids); wp_ask = wp.getWP(&btRec.Asks); if (wp_mid > 0){ //wp_mid初始化为-1,仅遇到第一条BTRec记录时条件为false double wp_now = (wp_bid + wp_ask) / 2; //updated wp_mid int volume = btRec.volume; //volume between two orderbook records double ratio = normalCDF((wp_now - wp_mid) / (2 * m_tick)); //m_tick = tick = 0.2 double buyvolume = ratio*volume, sellvolume = (1 - ratio)*volume; m_TimeRound.update(buyvolume, sellvolume, btRec.rec_time.timestamp); //volume moving average if (mv_volume < 0) { mv_volume = volume; mv_buyvolume = buyvolume; } else{ mv_volume += 0.002*(volume - mv_volume); mv_buyvolume += 0.002*(buyvolume - mv_buyvolume); } // round trip volatility if (time_ini < 0 || btRec.rec_time.timestamp - time_ini >= time_scale){ if (time_ini>0){ double dp = wp_now - wp_ini; volatility += 0.05*(dp*dp - volatility); } time_scale = m_TimeRound.getTime() * 1000; //in milliseconds time_ini = btRec.rec_time.timestamp; wp_ini = wp_now; } } wp_mid = (wp_bid + wp_ask) / 2; } void CTrade::newday(const char* p) { wp_mid = -1; m_TimeRound.newday(p); volatility = 16 * m_tick*m_tick; time_slapse = -1, time_scale = -1, wp_ini = -1, time_ini = -1; mv_buyvolume = mv_volume = -1; }

2023-05-15 上传