MATLAB生成mif文件

MATLAB代码

% 参数设置
N = 4096; % 数据点数量
t = linspace(0, 2*pi, N); % 时间向量
width = 12; % 位宽% 正弦波
sine_wave = 2.5 * sin(t) + 2.5; % 幅度在0到5之间% 三角波
tri_wave = 5 - abs(mod(t/(2*pi)*4, 2) - 1);% 方波
square_wave = 2.5 * (square(t) + 1); % 将范围调整为0到5之间% 将波形数据保存为MIF文件
save_to_mif('sine_wave.mif', sine_wave, N, width);
save_to_mif('tri_wave.mif', tri_wave, N, width);
save_to_mif('square_wave.mif', square_wave, N, width);% 读取并绘制正弦波
sine_wave_data = read_mif('sine_wave.mif', N, width);
figure;
plot(sine_wave_data);
title('Sine Wave');
xlabel('Sample');
ylabel('Amplitude');% 读取并绘制三角波
tri_wave_data = read_mif('tri_wave.mif', N, width);
figure;
plot(tri_wave_data);
title('Triangle Wave');
xlabel('Sample');
ylabel('Amplitude');% 读取并绘制方波
square_wave_data = read_mif('square_wave.mif', N, width);
figure;
plot(square_wave_data);
title('Square Wave');
xlabel('Sample');
ylabel('Amplitude');% 函数:保存为MIF文件
function save_to_mif(filename, data, depth, width)% 打开文件fid = fopen(filename, 'w');% 写入头部信息fprintf(fid, 'DEPTH = %d;\n', depth);fprintf(fid, 'WIDTH = %d;\n', width);fprintf(fid, 'ADDRESS_RADIX = UNS;\n');fprintf(fid, 'DATA_RADIX = UNS;\n');fprintf(fid, 'CONTENT BEGIN\n');% 写入数据for i = 0:depth-1fprintf(fid, '%X : %X;\n', i, round(data(i+1) * (2^width - 1)));end% 写入结束fprintf(fid, 'END;\n');% 关闭文件fclose(fid);
end% 函数:从MIF文件中读取数据
function data = read_mif(filename, depth, width)% 打开MIF文件fid = fopen(filename, 'r');% 跳过文件头部信息,找到 "CONTENT BEGIN"while trueline = fgetl(fid);if contains(line, 'CONTENT BEGIN')break;endend% 初始化数据数组data = zeros(1, depth);% 读取数据部分for i = 1:depthline = fgetl(fid);% 解析地址和值tokens = regexp(line, '(\w+) : (\w+);', 'tokens');if ~isempty(tokens)addr = hex2dec(tokens{1}{1}); % 地址value = hex2dec(tokens{1}{2}); % 数据值data(addr + 1) = value / (2^width - 1); % 恢复原始的归一化数据endend% 关闭文件fclose(fid);
end

运行结果 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安嘉空间:智慧科技守护空间健康

在当今社会,随着人们对生活质量要求的不断提升,室内环境的健康与安全问题日益受到重视。安嘉空间,作为一家致力于人居健康空间技术研发的高科技企业,以其独创的技术和卓越的产品,为广大用户提供了一套全面的空间健康解…

VastBase——数据库参数调优

一、内存参数调优 数据库的复杂查询语句性能非常强的依赖于数据库系统内存的配置参数。数据库系统内存的配置参数主要包括逻辑内存管理的控制参数和执行算子是否下盘的参数: 1.逻辑内存管理参数:max_process_memory max_process_memory – shared memo…

STM32 - 笔记3

1 开发有基于寄存器和HAL库 在开发 STM32 系列微控制器时,你可以选择基于寄存器的开发方法或使用 STM32 HAL(硬件抽象层)库进行开发。两者各有优缺点,适用于不同的场景和开发需求。下面详细介绍两种方法的特点、使用场景以及示例…

五、实现随机地图

一、创建场景 拖拽层级面板,删除摄像机 二、使用Addressable 给场景设置碰撞器 三、场景切换 场景中增加一个数据集合选择场景 四、字典 1、作用 根据列表中的RoomType查找数据 创建一个RoomDataSO的列表;创建一个字典,匹配房间类型和数据…

安装MySQL,navicat以及Django配置遇到的一些问题

MySQL安装问题 安装MySQL按照了此文章: MySQL数据库下载及安装教程(最最新版)_mysql下载安装-CSDN博客https://blog.csdn.net/weixin_39289696/article/details/128850498首先是遇到了starting the server红色叉号显示 按照上面文章的介绍…

故障诊断 | 基于小波时频图与Swin Transformer的轴承故障诊断方法(PyTorch)

文章目录 文章概述程序设计参考资料文章概述 基于小波时频图与Swin Transformer的轴承故障诊断方法 针对用传统的故障诊断方法难以对非线性非平稳的柴油机故障信号进行准确高效诊断的问题, 提出基于小波时频图与Swin Transformer的故障诊断方法。该方法可以有效结合小波时频分…

Luma AI,让你的视频像电影一样精彩!附带使用教程

Luma AI,让你的视频像电影一样精彩!附带使用教程 随着 AI 的应用变广,各类 AI 程序已逐渐普及。AI 已逐渐深入到人们的工作生活方方面面。而 AI 涉及的行业也越来越多,从最初的写作,到医疗教育,再到现在的…

二叉树详解(进阶)

目录 1. 二叉搜索树 1.1 基本概念 1.2 基本操作 1.3 性能分析 1.4 键值对 2. AVL树和红黑树 2.1 AVL树 2.2 红黑树 3. 红黑树模拟实现STL中的map与set 1. 二叉搜索树 1.1 基本概念 二叉搜索树(BST,Binary Search Tree)&#xff1a…

Tomcat多实例部署

文章目录 Tomcat多实例部署一、安装好 jdk1.1设置JDK环境变量 image-20240820142906811二、安装 tomcat2.1配置 tomcat 环境变量2.2修改 tomcat2 中的 server.xml 文件2.3修改各 tomcat 实例中的 startup.sh 和 shutdown.sh 文件,添加 tomcat 环境变量2.4启动各 tom…

【学习笔记】卫星通信发展趋势

卫星通信系统是融合现代通信技术、航天技术与计算机技术的综合应用,已成为国际与国内通信、国防、移动通信及广播电视领域的关键基础设施。基于其频带宽度大、通信容量高、业务兼容性强、覆盖范围广、性能稳定、地理条件适应性高及成本与距离无关等特性,…

uniapp scroll-view滚动触底加载 height高度自适应

背景&#xff1a; scroll-view组件是使用&#xff0c;官网说必须给一个高度height&#xff0c;否则无法滚动&#xff0c;所以刚开始设置了<scroll-view :style"height: 94vh" :scroll-y"true">设置了一个高度&#xff0c;想着vh应该挺合适的&#xf…

PhpStorm2024版设置自动换行(软换行)

Settings > Editor > General > Soft Wraps 选中并加上对应的文件

面试SQL题的水到底有多深?一文带你揭晓

不谋万世者&#xff0c;不足谋一时&#xff1b;不谋全局者&#xff0c;不足谋一域 目录 0 面试现状 1 面试SQL题目的难度及特点 1.1 题目场景化 1.2 题目算法化 1.3 方法多元化 2 破局之道 3 总结 数字化建设通关指南 主要内容&#xff1a; &#xff08;1&#xff09;SQL进阶实…

四、监控搭建-Prometheus-采集端批量部署

四、监控搭建-Prometheus-采集端批量部署 1、背景2、目标3、传承4、操作4.1、准备部署工具4.2、编制部署脚本4.3、服务端添加客户端 1、背景 在前三篇中我们搭建了Prometheus平台&#xff0c;采集端部署和配合图形化grafana部署&#xff0c;将Linux主机进行监控。基本完成了一…

『功能项目』怪物反击主角复活【14】

本章项目视频展示 当前文章成果展示 我们打开上一篇13技能爆炸与伤害数值显示的项目&#xff0c; 新建一个脚本InfoSystem.cs 新建一个游戏管理器GameManager.cs 在场景中创建一个空物体命名为GameManager 将GameManager.cs脚本挂载至空物体GameManager对象身上 增添PlayerRayC…

【SpringBoot】电脑商城-10-商品功能

商品热销排行 1 商品-创建数据表 1.使用use命令先选中store数据库。 USE store;2.在store数据库中创建t_product数据表。 CREATE TABLE t_product (id int(20) NOT NULL COMMENT 商品id,category_id int(20) DEFAULT NULL COMMENT 分类id,item_type varchar(100) DEFAULT N…

Loki Unable to fetch labels from Loki (no org id)

应该是多租户相关导致的 参考文档: 参考文档cMulti-tenancy | Grafana Loki documentationDescribes how Loki implements multi-tenancy to isolate tenant data and queries.https://grafana.com/docs/loki/latest/operations/multi-tenancy/ https://github.com/grafana…

【Git 学习笔记_23】Git 实用冷门操作技巧(二)——妙用 git bisect 与 git blame 进行代码调试

文章目录 11.3 用 git bisect 进行调试11.4 使用 git blame 命令 本节所在位置&#xff1a; 活用 git stash&#xff08;上&#xff09;保存并应用 stash&#xff08;上&#xff09;用 git bisect 进行调试&#xff08;二&#xff09;✔️使用 git blame 命令&#xff08;二&am…

零基础Opencv学习(三)

概述&#xff1a;主要目的是为了在图像中获取所需要的特征信息&#xff0c;比如直线或者圆等 一、标准霍夫变换 cv::Mat midImage, dstImage;/// 边缘检测 转化灰度图cv::Canny(image, midImage, 50, 200, 3);cv::cvtColor(midImage, dstImage, CV_GRAY2BGR);/// 进行霍夫线变…

浅谈SpringMvc的核心流程与组件

一、SpringMvc的核心流程 当发起请求时被前置的控制器(DispatcherServlet)拦截到请求&#xff0c;根据请求参数生成代理请求&#xff0c;找到请求对应的实际控制器&#xff0c;控制器处理请求&#xff0c;创建数据模型&#xff0c;访问数据库&#xff0c;将模型响应给中心控制…