本文提出了一种在不连续的正交频分复用(NC-OFDM)系统中抑制旁瓣的新方法。
与传统方法不同,旁瓣是通过迭代调整接近所用边缘的子载波的星座点来抑制的带宽。
选择对应于最大旁瓣抑制的星座点进行传输。
仿真结果表明,该算法在旁瓣抑制方面具有良好的性能提高,并且对峰均功率比(PAPR)的影响不大。
2025/9/1 2:40:31 270KB Sidelobe suppression NC-OFDM constellation
1
自己写一个map+list的c++数据结构。
双迭代器,里面有有个简单例子。
2025/8/31 5:12:58 5KB 数据结构 字典链表
1
Streamlit是一款基于Python的数据可视化和应用开发框架,它允许数据科学家和工程师快速创建交互式的、美观的应用程序,无需深入学习前端技术。
这个“streamlit-example”项目是一个学习和实践Streamlit的好例子,让我们来深入探讨一下Streamlit的核心特性和如何使用它。
Streamlit的工作原理是通过读取Python脚本来构建应用程序的界面。
在你的项目中,`streamlit-example-main`很可能包含了运行Streamlit应用的主文件。
通常,这个文件会有一个或多个`streamlit.write()`函数,用于输出各种类型的数据显示。
1.**安装与启动**:-安装Streamlit库:在命令行或终端中运行`pipinstallstreamlit`。
-运行应用:找到`streamlit-example-main`中的主Python文件(如`app.py`),然后运行`streamlitrunapp.py`。
这将在本地启动一个Web服务器,你可以通过浏览器访问应用程序。
2.**核心组件**:-`streamlit.write()`:这个函数是Streamlit的基础,它可以输出文本、HTML、图像、图表等。
-`streamlit.pyplot()`:用于展示matplotlib生成的图表。
-`streamlit.plotly()`:支持Plotly库的交互式图表。
-`streamlit.altair()`:显示Altair库的静态或交互式图表。
-`streamlit.dataframe()`:直接展示PandasDataFrame。
-`@streamlit.component`:创建自定义的UI组件。
3.**数据交互**:-Streamlit支持用户输入,例如`streamlit.text_input()`和`streamlit.number_input()`,可以创建文本框和数字输入框。
-使用`streamlit.checkbox()`和`streamlit.radio()`让用户选择选项。
-`streamlit.selectbox()`允许用户从下拉菜单中选择。
4.**状态管理**:-Streamlit的`st.cache()`装饰器可以缓存函数结果,提高性能。
-`st.session_state`用于在页面刷新时保持用户的状态。
5.**布局控制**:-使用`streamlit.column()`和`streamlit.row()`可以控制页面的布局。
-`st.beta_container()`提供更灵活的布局选项,比如网格系统。
6.**部署**:-Streamlit提供了一键部署到免费的StreamlitSharing服务,只需运行`streamlitshare`命令。
-也可以将应用部署到Heroku、GoogleCloud或AWS等云平台。
7.**社区和扩展**:-Streamlit有活跃的社区,用户可以分享代码和应用,找到很多有用的示例。
-通过社区创建的库(如streamlit-aggrid、streamlit-dashboards等)可以增强Streamlit的功能。
通过这个`streamlit-example`项目,你可以学习如何使用这些组件和功能,逐步创建自己的数据可视化解析或应用。
记得探索源代码,理解每个部分的作用,这将帮助你更好地掌握Streamlit的使用技巧。
在实践中不断迭代,你会发现Streamlit是一个强大且易用的工具,能帮助你快速将数据分析转化为引人入胜的交互式应用。
2025/8/27 11:43:49 41.74MB Python
1
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。
在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。
换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
因为开发部门同时维护多个版本,多个版本的发布,测试需要大量人力,所以要有一个专业的持续集成工具来管理持续重复的工作。
1)热部署是指在你修改项目BUG的时候对JSP或JAVA类进行了修改在不重启WEB服务器前提下能让修改生效。
但是对配置文件的修改除外。
2)配置tomcat用户名密码,修改tomcat配置
1
“您的项目进行得怎么样遇到了令人沮丧的变化不确定性还是产品错过了标志点和最终期限MikeCohn清晰明了地展示了如何有效地开发具有高商业价值的软件通过敏捷估计与规划即使环境发生了变化您仍可以将精力专注于真正需要的地方”RickMugridgeRimuResearch有限公司FitforDevelopingSoftware的第一作者“我们是本书所述的敏捷方法的忠实信徒并通过实现和继续采用这些方法获得了许多极其重要的积极影响我向所有希望使自己的软件开发过程更为实际和有效的人极力推荐此书”MarkM.GutrichFast401k公司总裁兼首席执行官为什么传统的指令性规划会失败而敏捷规划会成功;
如何使用故事点或理想日来估计功能的规模以及它们分别适用于哪种情况;
如何以及何时进行重估;
如何同时采用经济和非经济手段确定功能的优先级;
如何将大的功能分解成更小的更易管理的功能;
如何规划迭代周期并对开发小组的初始进度率进行预测;
如何安排具有高不确定性或者进度易受影响的项目的进度;
如何对由多个开发小组合作开发的项目进行评估《敏捷估计与规划》一书为对敏捷项目进行估计与规划提供了权威实际的指导方针在本书中敏捷联盟的共同创始人MikeCohn讨论了敏捷估计与规划的思想并使用现实的例子与案例分析向您详细地展示了如何完成工作本书清晰地阐述了有关的概念并引导读者逐步认识到下列一些问题的答案:我们要构建什么它的规模有多大需要在什么时候完成到那个时候我们到底能完成多少通过这本书您首先会认识到优秀的计划由哪些东西组成接着会了解到如何才能使计划成为敏捷的">“您的项目进行得怎么样遇到了令人沮丧的变化不确定性还是产品错过了标志点和最终期限MikeCohn清晰明了地展示了如何有效地开发具有高商业价值的软件通过敏捷估计与规划即使环境发生了变化您仍可以将精力[更多]
2025/8/19 14:02:36 51.76MB 敏捷 估计
1
用MATLAB做的激光课程设计:菲涅尔衍射迭代法分析谐振腔光场分布。
有GUI界面,圆形腔、矩形腔、腔的大小、波长、腔长、迭代精度可调。
做这个课程设计的同学,可以互相学习学习。
2025/8/17 10:57:51 305KB 谐振腔 课程设计 matlab 源代码
1
移动质量法计算车桥耦合的ANSYS命令流,1/4车辆模型在简支梁上的移动,得到跨中截面时程位移图
2025/8/16 9:58:01 1KB 车桥耦合
1
常用算法设计方法详细解析(含源代码)算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。
指令正确地描述了要完成的任务和它们被执行的顺序。
计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。
通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。
其次是算法所需要的存储空间少和执行更快等。
算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。
另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。
一、迭代法二、穷举搜索法三、递推法四、递归五、回溯法六、贪婪法七、分治法八、动态规划法
1
加密算法在信息技术领域中起着至关重要的作用,用于保护数据的安全性和隐私性。
SHA(SecureHashAlgorithm)是一种广泛使用的散列函数,它将任意长度的数据转换为固定长度的摘要值。
SHA512是SHA家族中的一员,提供更强大的安全性能,尤其适合大数据量的处理。
本文将深入探讨SHA512加密算法的原理、C++实现以及其在实际应用中的重要性。
SHA512算法基于密码学中的消息摘要思想,通过一系列复杂的数学运算(如位操作、异或、循环左移等),将输入数据转化为一个512位的二进制数字,通常以16进制形式表示,即64个字符。
这个过程是不可逆的,意味着无法从摘要值推导出原始数据,因此被广泛应用于数据完整性验证和密码存储。
在C++中实现SHA512算法,首先需要理解其基本步骤:1.**初始化**:设置一组初始哈希值(也称为中间结果)。
2.**预处理**:在输入数据前添加特殊位和填充,确保数据长度是512位的倍数。
3.**主循环**:将处理后的数据分成512位块,对每个块进行多次迭代计算,每次迭代包括四个步骤:扩展、混合、压缩和更新中间结果。
4.**结束**:将最后一个中间结果转换为16进制字符串,即为SHA512的摘要值。
C++代码实现时,可以使用位操作、数组和循环来完成这些计算。
为了简化,可以使用`#include`中的`uint64_t`类型表示64位整数,因为SHA512处理的是64位的数据块。
同时,可以利用`#include`中的`memcpy`和`memset`函数来处理内存操作。
此外,`#include`和`#include`库可用于将二进制数据转换成16进制字符串。
以下是一个简化的C++SHA512实现框架:```cpp#include#include#include#include#include//定义常量和初始化哈希值conststd::arraykInitialHashValues{...};std::arrayhashes=kInitialHashValues;//主循环函数voidProcessBlock(constuint8_t*data){//扩展、混合、压缩和更新中间结果}//输入数据的处理voidPreprocess(conststd::string&input){//添加填充和特殊位}//将摘要转换为16进制字符串std::stringDigestToHex(){//转换并返回16进制字符串}//使用示例std::stringmessage="Hello,World!";Preprocess(message);constuint8_t*data=reinterpret_cast(message.c_str());size_tdataSize=message.size();while(dataSize>0){if(dataSize>=128){ProcessBlock(data);dataSize-=128;data+=128;}else{//处理剩余数据}}std::stringresult=DigestToHex();```这个框架只是一个起点,实际的SHA512实现需要填充完整的扩展、混合和压缩步骤,以及处理边界条件。
此外,为了提高效率,可能还需要使用SIMD(SingleInstructionMultipleData)指令集或其他优化技术。
SHA512算法在多种场景下具有广泛的应用,如:-**文件校验**:通过计算文件的SHA512摘要,可以验证文件在传输或存储过程中是否被篡改。
-**密码存储**:在存储用户密码时,不应直接保存明文,而是保存SHA512加密后的哈希值。
当用户输入密码时,同样计算其SHA512值并与存储的哈希值比较,不匹配则表明密码错误。
-**数字签名**:在公钥加密体系中,SHA512可以与非对称加密算法结合,生成数字签名,确保数据的完整性和发送者的身份验证。
了解并掌握SHA512加密算法及其C++实现,对于信息安全专业人员来说至关重要,它不仅有助于提升系统的安全性,也有助于应对不断发展的网络安全威胁。
通过深入学习和实践,我们可以更好地理解和利用这一强大的工具。
2025/8/13 8:50:17 2.14MB 加密算法
1
RS码的代数译码算法,包括纠错能力比较小的一般译码算法和适用于纠错能力强的迭代译码算法,并针对两种特定码字RS(27,9)和RS(54,18)进行了具体编程实现。
结果表明纠错能力符合理论要求,分别可以达到纠9个和18个错误,并且误码率也得到改善.
2025/8/8 4:43:08 1.77MB 差错控制 RS码 编译码 软判决
1
共 536 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡