5.正弦波生成器:支持连续相位与可控重置 C# + WPF 完整示例
前言在信号处理、音频合成、硬件测试等领域生成连续的正弦波是一项基础需求。本文介绍一个实用的C#正弦波生成方法支持相位连续和计数器重置功能。核心代码//正弦波点数计数器每次生成从上次结束点继续 private int _sineCount 0; /// summary /// 生成正弦波 /// /summary /// param nameamplitude幅度/param /// param namepointsPerPeriod每个周期的点数/param /// param namewaveformLength波形长度点数/param /// param namestartPhase起始相位弧度可选默认0/param /// param nameresetPoints重置点数可选达到此点数后重置_sineCount默认-1表示不重置/param /// returns正弦波数组/returns public double[] GenerateSinewave(double amplitude1, int pointsPerPeriod50, int waveformLength500, double startPhase 0, int resetPoints -1) { double[] waveform new double[waveformLength]; for (int i 0; i waveformLength; i) { // 计算当前点的相位起始相位 已运行点数对应的相位 double phase startPhase 2 * Math.PI * _sineCount / pointsPerPeriod; waveform[i] amplitude * Math.Sin(phase); _sineCount; // 检查是否需要重置计数器 if (resetPoints 0 _sineCount resetPoints) { _sineCount 0; } } return waveform; }设计亮点1. 相位连续性通过成员变量_sineCount记录全局点数确保多次调用时波形无缝衔接。第一次调用生成0~499点第二次调用从第500点开始避免相位跳变。2. 灵活的重置机制resetPoints参数控制计数器重置时机-1默认永不重置适合无限连续波形N生成N点后自动归零适合固定长度循环3. 参数化配置参数说明典型值amplitude峰值幅度1.0归一化pointsPerPeriod采样密度50高频/ 1000高精度startPhase初始相位偏移Math.PI/2余弦波使用示例var generator new SineGenerator(); // 生成两段连续的正弦波共1000点 var wave1 generator.GenerateSinewave(waveformLength: 500); var wave2 generator.GenerateSinewave(waveformLength: 500); // 无缝衔接 // 每1000点重置一次循环播放 var cyclicWave generator.GenerateSinewave( waveformLength: 2000, resetPoints: 1000);小结该实现通过简单的状态管理解决了正弦波生成的连续性与可控性问题。代码简洁高效。

相关新闻

基于springboot的xx农村产权交易与数据可视化平台(源码+文档+调试+讲解)

基于springboot的xx农村产权交易与数据可视化平台(源码+文档+调试+讲解)

前言 吉林省农村产权交易与数据可视化平台是一个综合性的在线服务平台,旨在促进农村产权的高效流转和交易。该平台提供用户注册、信息发布、政策法规查询、项目分类浏览等功能,支持集体资产、承包地经营权等各类农村产权的交易撮合。平台通过合同签订指导…

2026/5/17 11:05:48 阅读更多 →
写论文写到崩溃?试试这 4 款 “AI 写作利器”,导师都看不出是 AI 写的!

写论文写到崩溃?试试这 4 款 “AI 写作利器”,导师都看不出是 AI 写的!

论文写到凌晨、逻辑卡壳、降重到崩溃、AI 痕迹明显被导师一眼看穿?别硬扛!这 4 款专为学术场景打造的 AI 写作利器,从选题、初稿到降重、去 AI 痕迹全流程覆盖,AI 率可压至 5%-8%,重复率轻松达标,导师看了都…

2026/5/17 11:05:48 阅读更多 →
多次连接共享内存大小不一致在win和linux的区别

多次连接共享内存大小不一致在win和linux的区别

共享内存通信,偶尔会出现连接者的参数大小没有对上的问题。不使用mmap,而是普通的连接共享内存,只有linux支持:如果创建者小,使用者大,会报错;而创建者大,使用者小,可正常…

2026/5/17 11:05:45 阅读更多 →

最新新闻

第30篇:安全、对齐与合规——大模型走向产业落地的最后一道门槛

第30篇:安全、对齐与合规——大模型走向产业落地的最后一道门槛

引言:能力越强,风险越大 这 30 篇专栏,我们走过了从数学基础到多模态大模型的全栈旅程。 但最后一篇不讲技术——讲安全。一个技术再先进的模型,如果不安全、不合规,就无法落地。在全球 AI 监管日益严格的今天,安全合规不仅是技术问题,更是业务问题。 一、红队测试 红…

2026/7/3 16:04:15 阅读更多 →
工业4-20mA电流环设计与STM32F303VE应用解析

工业4-20mA电流环设计与STM32F303VE应用解析

1. 工业4-20mA电流环的基础原理与设计需求在工业自动化领域,4-20mA电流环传输标准已有超过60年的应用历史。这种看似简单的信号传输方式之所以能长期占据工业现场的主导地位,关键在于其独特的物理特性:电流信号在长距离传输时不受线路电阻影响…

2026/7/3 16:02:11 阅读更多 →
浏览器扩展架构演进三部曲:从资源嗅探到媒体处理平台的技术哲学

浏览器扩展架构演进三部曲:从资源嗅探到媒体处理平台的技术哲学

浏览器扩展架构演进三部曲:从资源嗅探到媒体处理平台的技术哲学 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 技术演进的本质是在平台…

2026/7/3 15:58:09 阅读更多 →
为什么选择iSulad Rust扩展?深度解析容器运行时扩展的终极解决方案

为什么选择iSulad Rust扩展?深度解析容器运行时扩展的终极解决方案

为什么选择iSulad Rust扩展?深度解析容器运行时扩展的终极解决方案 【免费下载链接】isula-rust-extensions Rust extensions for iSulad 项目地址: https://gitcode.com/openeuler/isula-rust-extensions 前往项目官网免费下载:https://ar.opene…

2026/7/3 15:49:54 阅读更多 →
3步轻松搞定B站缓存视频转换:让m4s格式变通用mp4的完整指南

3步轻松搞定B站缓存视频转换:让m4s格式变通用mp4的完整指南

3步轻松搞定B站缓存视频转换:让m4s格式变通用mp4的完整指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否遇到过这样的困扰&…

2026/7/3 15:49:54 阅读更多 →
基于Qwen3-4B多模态大模型的GUI自动化测试实践与CI/CD集成

基于Qwen3-4B多模态大模型的GUI自动化测试实践与CI/CD集成

1. 项目概述:当AI多模态大模型遇见GUI自动化测试最近在搞一个挺有意思的项目,核心是把一个叫Qwen3-4B的多模态大语言模型,包装成一个能“看懂”屏幕的智能体,然后把它塞进我们团队的CI/CD流水线里,让它去自动执行那些原…

2026/7/3 15:45:44 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻