MATLAB生成COE文件

MATLAB代码 

% 参数设置
N = 4096; % 数据点数量
t = linspace(0, 2*pi, N); % 时间向量
width = 12; % 位宽% 正弦波,幅度在0到5之间
sine_wave = 2.5 * sin(t) + 2.5;% 三角波,幅度在0到5之间
tri_wave = 5 * (1 - abs(mod(t/(2*pi)*4, 2) - 1));% 方波,幅度在0到5之间
square_wave = 2.5 * (square(t) + 1); % 将范围调整为0到5之间% 将波形数据保存为COE文件
save_to_coe('sine_wave.coe', sine_wave, width);
save_to_coe('tri_wave.coe', tri_wave, width);
save_to_coe('square_wave.coe', square_wave, width);% 读取并绘制正弦波
sine_wave_data = read_coe('sine_wave.coe', N, width);
figure;
plot(sine_wave_data);
title('Sine Wave');
xlabel('Sample');
ylabel('Amplitude');% 读取并绘制三角波
tri_wave_data = read_coe('tri_wave.coe', N, width);
figure;
plot(tri_wave_data);
title('Triangle Wave');
xlabel('Sample');
ylabel('Amplitude');% 读取并绘制方波
square_wave_data = read_coe('square_wave.coe', N, width);
figure;
plot(square_wave_data);
title('Square Wave');
xlabel('Sample');
ylabel('Amplitude');% 函数:保存为COE文件
function save_to_coe(filename, data, width)% 打开文件fid = fopen(filename, 'w');% 写入COE文件头部fprintf(fid, 'memory_initialization_radix=16;\n');fprintf(fid, 'memory_initialization_vector=\n');% 写入数据for i = 1:length(data)if i == length(data)fprintf(fid, '%X;\n', round(data(i) * (2^width - 1) / 5)); % 最后一行以分号结尾elsefprintf(fid, '%X,\n', round(data(i) * (2^width - 1) / 5));endend% 关闭文件fclose(fid);
end% 函数:从COE文件中读取数据
function data = read_coe(filename, depth, width)% 打开COE文件fid = fopen(filename, 'r');% 跳过文件头部信息while trueline = fgetl(fid);if contains(line, 'memory_initialization_vector=')break;endend% 初始化数据数组data = zeros(1, depth);% 读取数据部分i = 1;while i <= depthline = fgetl(fid);if line(end) == ';'line(end) = []; % 去掉分号endvalues = strsplit(line, ',');for j = 1:length(values)hex_value = strtrim(values{j});if ~isempty(hex_value) % 确保值不为空data(i) = hex2dec(hex_value) * 5 / (2^width - 1);i = i + 1;endendend% 关闭文件fclose(fid);
end

运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1523965.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

echarts--Y轴名称超宽换行显示行高问题处理

设置yAxis.axisLabel.overflow:break为超宽换行 yAxis: [{type: category,inverse: true, //y轴坐标轴向下position: left, // 设置 y 轴的位置在左边offset: 65, // 设置 y 轴距离左边的偏移量axisLine: {show: false,},axisTick: {show: false},axisLabel: {show: true,inter…

集成电路学习:什么是MOSFET(MOS管)

一、MOSFET&#xff1a;MOS管 MOSFET&#xff0c;全称Metal-Oxide-Semiconductor Field-Effect Transistor&#xff0c;即金属-氧化物半导体场效应晶体管&#xff0c;也常被称为MOS管或金氧半场效晶体管。它是一种可以广泛使用在模拟电路与数字电路的场效应晶体管&#xff08;f…

day07-集合-MapStream递归

一、Collections 1.1 可变参数 可变参数就是一种特殊形参&#xff0c;定义在方法、构造器的形参列表里&#xff0c;格式是&#xff1a;数据类型... 参数名称 ​ 优点特点&#xff1a;可以不传数据给它&#xff1b;可以传一个或者同时传多个数据给它&#xff1b;也可以传一个数…

【系统架构设计师-2022年】综合知识-答案及详解

文章目录 【第1题】【第2题】【第3题】【第4题】【第5题】【第6~7题】【第8题】【第9题】【第10题】【第11~12题】【第13题】【第14题】【第15题】【第16题】【第17~18题】【第19题】【第20题】【第21题】【第22题】【第23题】【第24题】【第25题】【第26题】【第27题】【第28题…

【AQS源码】深入理解AQS的工作原理

【AQS源码】深入理解AQS的工作原理-CSDN博客

叉车专用AI防撞预警系统,带行车记录功能,守护人车安全!

AI防撞预警系统是一款为工业车辆等工程设备专门设计的智能视频监控装置。该系统通过三个独立的摄像头和深度学习算法实现机器视觉识别。 本系统的一个重要功能是能够能够实时侦测工作区域的危险状态并提供警示&#xff0c;一旦有人员进入危险区域&#xff0c;驾驶员即可得到动态…

SpringBoot2:RESTFUL风格接口开发及源码解读

一、RESTFUL简介 Rest风格支持&#xff08;使用HTTP请求方式&#xff0c;动词来表示对资源的操作&#xff09; 以前&#xff1a;/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在&#xff1a; /user GET-获取用户 DELETE-删除用户 PUT-修改…

海外合规|新加坡网络安全认证计划简介(三)-Cyber Trust

一、 认证简介&#xff1a; Cyber Trust标志是针对数字化业务运营更为广泛的组织的网络安全认证。该标志针对的是规模较大或数字化程度较高的组织&#xff0c;因为这些组织可能具有更高的风险水平&#xff0c;需要他们投资专业知识和资源来管理和保护其 IT 基础设施和系统。Cy…

ES6语法详解

以下是ES6常用的一些语法和特性&#xff1a; 声明变量的关键字变化&#xff1a;使用let和const、var来声明变量。 箭头函数&#xff1a;使用箭头&#xff08;>&#xff09;定义函数&#xff0c;简化函数的写法。 模板字符串&#xff1a;使用反引号&#xff08;&#xff0…

【python】socket 入门以及多线程tcp链接

Socket 入门 及 多线程tcp链接 网络基础知识三要素 Socket是套接字的意思,是网络编程的核心对象,通信两端都独有自己的Socket对象, 数据在两个Socket之间通过 字节流(TCP协议) 或者 数据报包(UDP协议)的形式进行传输. 本文主要针对tcp流程进行讲解 socket-tcp流程图 1.创建服…

链表——单向链表续、双向链表

内存泄漏&#xff1a;当while&#xff08;1&#xff09;一直运行时&#xff0c;操作系统一直被申请空间&#xff0c;最终无空间可申请&#xff1b;造成内存泄漏。避免方法如&#xff1a;堆区手动申请的空间&#xff0c;都在用完后手动释放。 测试是否存在内存泄漏&#xff1a;…

REAL-FAKE: EFFECTIVE TRAINING DATA SYNTHESISTHROUGH DISTRIBUTION MATCHING 论文学习

这篇文章主要讲的是生成数据在模型训练中的作用&#xff0c;对于接下来要研究的生成多模态数据具有重要的作用。 文章摘要首先讲生成数据很重要&#xff0c;但在训练高级的模型的时候效果不好。论文主要研究的是这背后的原理并且证明了生成数据的作用。 介绍部分&#xff0c;…

Seataf分布式事务的使用

一、事务的四大特征&#xff08;面试题&#xff09; 原子性&#xff1a;一个事务是不可分割的&#xff0c;要不都做&#xff0c;要不都不做一致性&#xff1a;事务必须是使数据库从一个一致性变成另一个一致性状态隔离性&#xff1a;一个事务的执行不被其他事务干扰&#xff0…

svg怎么转为jpg格式?7种转换方法任你挑

在图像处理中&#xff0c;将SVG格式转换为JPG格式是一项常见的需求。SVG作为一种矢量图形格式&#xff0c;能够无限放大而不失真&#xff0c;而JPG则是一种广泛使用的位图图像格式&#xff0c;适用于网页、移动设备等多种场景。为了更加方便使用&#xff0c;我们会遇到需要将SV…

PVN3D(一)代码框架

在windows上配置pvn3d的环境一直配不成功&#xff0c;主要卡在了与C联合编译上&#xff0c;不知道如何处理了。索性先看看代码&#xff0c;竟然发现与论文中的代码对应上了。希望这一段时间把环境配置好。 1.论文中的网络结构 1.RGB图像特征&#xff0c;通过CNN提取特征。深度…

电商数据整合新篇章:京东商品详情API返回值应用实践

电商数据整合在当今商业环境中具有重要地位&#xff0c;API&#xff08;应用程序编程接口&#xff09;提供了高效收集、整合和分析数据的途径。以京东商品详情API为例&#xff0c;通过其返回值&#xff0c;电商企业可以构建更精准的营销策略、优化产品以及提升用户体验。以下是…

Linux教程8:文本编辑命令vi

一、文本编辑命令介绍 vi&#xff08;Visual Interface&#xff09;是一种广泛使用的文本编辑器&#xff0c;特别是在Unix和类Unix系统&#xff08;如Linux&#xff09;中。尽管现代系统通常提供了更现代的文本编辑器&#xff08;如vim&#xff0c;它是vi的增强版本&#xff0…

2024年9月4日嵌入式学习

内存泄漏&#xff1a; 内存泄漏&#xff08;Memory Leak&#xff09;是指程序中已动态分配的内存由于某种原因程序未释放或无法释放&#xff0c;导致系统内存的浪费&#xff0c;严重时会导致程序运行缓慢甚至崩溃。这种情况在长时间运行的程序或大型系统中尤为常见&#xff0c;…

亚马逊云科技 Gen BI 2024-09-04 上海站QuickSight

机缘 我又来了&#xff0c;感觉不上班比上班还要忙 天天像特种工一天&#xff0c;今天有度过的充实的一天&#xff0c;上午去图书馆&#xff0c;下午去了 亚马逊云科技 Gen BI 技术体验日 。 具体照片可以去 这里看 哈哈&#xff0c;这个就是我了 商业智能的趋势 根据艾瑞咨…

Secure Coding in C and C ++ (六)对数组/字符串的思考

0x0 前言 经过前期简单的铺垫&#xff0c;我们来正式学习C的安全 首当其冲的就是简单的字符串了。 先来看一下C中的字符串 C的字符串来自于C语言 都是以null&#xff08;\0&#xff09;结尾的 而且可以理解为都存放在数组中 来查看以下程序 #include<iostream> int ma…