Matlab-FPGA 小数转换为定点二进制小数脚本和转coe文件格式脚本
Matlab-FPGA 小数转换为定点二进制小数脚本:
% 更新于2023年6月17日,修改旋转因子文件,不修改fpga
%首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵,1024行,8列
column = 1024;
row = 8;
nk=[];
N=column*row;
for i=0:row-1for j=0:column-1nk=[nk,j*i];end
end
for k=1:column*row %必须保存所有可能的数值w_re(k)=cos(2*pi*(nk(k))/N);w_im(k)=-sin(2*pi*(nk(k))/N);
end
W2=w_re+1i*w_im;
numint=1;%numint位整数,numdec位小数
numdec=14;%选取的总位数为1+numint+numdec,其中1为符号位所占用。
fp1=fopen("w_re_data.txt",'w');
fp2=fopen("w_im_data.txt",'w');
% temp=diag(ones(length(a)))';
a=w_re;%a 为被定点化的矩阵或标量,为实数
for i=1:length(a)fixed_a=floor(a(i)*2^numdec); %模拟计算机中直接截位的结果%限幅if ((fixed_a>=2^(numint+numdec))||(fixed_a<-2^(numint+numdec)))fixed_a=sign(a(i))*(2^(numint+numdec)-1)+0.5*(sign(a(i))-1);%正数最大是2^(numint+numdec)-1,负数最大是-2^(numint+numdec)end%转化为补码if (a(i)<0)%需要写成补码的形式!fixed_a=fixed_a+2^(numint+numdec);fixed_bin=dec2bin(fixed_a,numint+numdec);fixed_bin=strcat('1',fixed_bin); elsefixed_bin=dec2bin(fixed_a,numint+numdec);fixed_bin=strcat('0',fixed_bin);end% 保存数据到txt文件
% for j=1:numint+numdec+1fprintf(fp1,"%s",fixed_bin);fprintf(fp1,'\r\n');end
fclose(fp1);
clear a;
a=w_im;
for i=1:length(a)fixed_a=floor(a(i)*2^numdec); %模拟计算机中直接截位的结果%限幅if ((fixed_a>=2^(numint+numdec))||(fixed_a<-2^(numint+numdec)))fixed_a=sign(a(i))*(2^(numint+numdec)-1)+0.5*(sign(a(i))-1);%正数最大是2^(numint+numdec)-1,负数最大是-2^(numint+numdec)end%转化为补码if (a(i)<0)%需要写成补码的形式!fixed_a=fixed_a+2^(numint+numdec);fixed_bin=dec2bin(fixed_a,numint+numdec);fixed_bin=strcat('1',fixed_bin); elsefixed_bin=dec2bin(fixed_a,numint+numdec);fixed_bin=strcat('0',fixed_bin);end% 保存数据到txt文件
% for j=1:numint+numdec+1fprintf(fp2,"%s",fixed_bin);fprintf(fp2,'\r\n');end
fclose(fp2);
数据转.coe文件脚本:
clear
clc
depth =8192; % rom深度
% width =32; % 数据宽度
cstr0=textread("w_re_data.txt",'%s'); % 将TXT中的数据以文本的方式取回
cstr1=textread("w_im_data.txt",'%s');
%实部
fid =fopen('rotate_re.coe','wt'); % 创建文件
fprintf(fid,'memory_initialization_radix=2;\n'); % memory_initialization_radix:定义存储器初始化值的基,可取值为2进制,10进制,16进制等
fprintf(fid,'memory_initialization_vector=\n'); % memory_initialization_vector 储存器内数据向量
for idnex =1:depthif(idnex<depth) fprintf(fid,'%s,\n',char(cstr0{idnex}));else fprintf(fid,'%s;\n',char(cstr0{idnex})); % 最后的数据应以[;]结尾end
end
% 虚部
fid =fopen('rotate_im.coe','wt'); % 创建文件
fprintf(fid,'memory_initialization_radix=2;\n'); % memory_initialization_radix:定义存储器初始化值的基,可取值为2,10,16等
fprintf(fid,'memory_initialization_vector=\n'); % memory_initialization_vector 储存器内数据向量for idnex =1:depthif(idnex<depth) fprintf(fid,'%s,\n',char(cstr1{idnex}));else fprintf(fid,'%s;\n',char(cstr1{idnex})); % 最后的数据应以[;]结尾end
end
相关文章:
Matlab-FPGA 小数转换为定点二进制小数脚本和转coe文件格式脚本
Matlab-FPGA 小数转换为定点二进制小数脚本: % 更新于2023年6月17日,修改旋转因子文件,不修改fpga %首先明确我们的二维FFT的数组维数,此为1024*8的二维矩阵,1024行,8列 column 1024; row 8; nk[]; Ncolumn*row; fo…...
逆向案例二十三——请求头参数加密,某区块链交易逆向
网址:aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1oYW5zL2J0Yy90eC1saXN0L3BhZ2UvNAo 抓包分析,发现请求头有X-Apikey参数加密,其他表单和返回内容没有加密。 直接搜索关键字,X-Apikey,找到疑似加密位置,注意这里…...
CSS 导航栏:设计、定制与优化
CSS 导航栏:设计、定制与优化 CSS(层叠样式表)是网页设计中不可或缺的一部分,它允许开发者通过定义样式来控制网页的布局和外观。在网页设计中,导航栏是一个关键元素,它帮助用户浏览网站并找到他们感兴趣的…...
JS 如何处理链接被用户点击中键的操作
今天在开发中遇到一个问题,在使用类似Bootstrap中的Tabs组件时,当在tab导航链接点击中键时会打开一个新的窗口访问链接,于是我尝试在别的普通链接上点击中键时也会如此,我猜测这是浏览器的默认行为。 由于我开发的是一个浏览器在…...
Android 11 使用HAL层的ffmpeg库(1)
1.frameworks/av/media目录下面的修改 From edd6f1374c1f15783d9920ebda22ea915e503775 Mon Sep 17 00:00:00 2001 From: GW00219471 <zhumingxingnoboauto.com> Date: Wed, 17 Jan 2024 15:16:10 0800 Subject: [PATCH] ?UTF-8?q?[V35CUX-4542]:E7A7BBE6A48Dcux20E8…...
友力科技数据中心搬迁方案
将当前运行机房中的所有设备、应用系统安全搬迁至新数据中心机房,实现平滑切换、平稳过渡,最大限度地降低搬迁工作对业务的影响。 为了确保企事业单位能够顺利完成数据中心机房搬迁工作,我们根据实际经验提供了4个基本原则,希望能…...
GitHub敏感信息扫描工具
目录 功能设计 技术实现 程序使用 文件配置 下载地址 功能设计 GitPrey是根据企业关键词进行项目检索以及相应敏感文件和敏感文件内容扫描的工具,其设计思路如下: 根据关键词在GitHub中进行全局代码内容和路径的搜索(in:file,path),将项目结果做项目信息去重整理得到…...
Linux云计算 |【第一阶段】ENGINEER-DAY4
主要内容: 配置Linux网络参数、配置静态主机名、查看/修改/激活/禁用网络连接、指定DNS、虚拟网络连接、虚拟机克隆、SSH客户端、SCP远程复制、SSH无密码验证(SERVICE-DAY5)、虚拟网络类型 一、网络参数配置 修改网卡配置文件主要是需要配置…...
C++与VLC制作独属于你的动态壁纸背景
文章目录 前言效果展示为什么要做他如何实现他实现步骤获取桌面句柄代码获取桌面句柄libvlc_media_player_set_hwnd函数 动态壁纸代码 总结 前言 在当今的数字世界中,个性化和自定义化的体验越来越受到人们的欢迎。动态壁纸是其中一种很受欢迎的方式,它…...
平凯星辰黄东旭出席 2024 全球数字经济大会 · 开放原子开源数据库生态论坛
7 月 5 日,以“开源生态筑基础,数字经济铸未来”为主题的 2024 全球数字经济大会——开放原子开源数据库生态论坛在北京成功举办。平凯星辰(北京)科技有限公司联合创始人黄东旭发表了题为《TiDB 助力金融行业关键业务系统实践》的…...
Mac OS 下安装 NVM,1秒教会你
1.下载 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash或者wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2.安装成功后执行 nvm 提示 command not found 首先查看 ~/.bash_profile 文件是否存在&…...
搭建博客系统#Golang
WANLI 博客系统 项目介绍 基于vue3和gin框架开发的前后端分离个人博客系统,包含md格式的文本编辑展示,点赞评论收藏,新闻热点,匿名聊天室,文章搜索等功能。 点击跳转:Github 项目开源地址 功能展示 B 站…...
算法——滑动窗口(day6)
1004.最大连续1的个数 ||| 1004. 最大连续1的个数 III - 力扣(LeetCode) 题目解析: 这道题如果能转化为滑动窗口的话就会很简单,因为我们如果尝试去把0翻转为1再计数的话等到第2轮又得重新翻转回来,费时费力~ 那么我…...
推荐一款基于Spring Boot 框架开发的分布式文件管理系统,功能齐全,非常便捷(带私活源码)
前言 在数字化时代,文件管理是企业和个人用户的基本需求。然而,现有的文件管理系统往往存在一些痛点,如存储空间有限、文件共享困难、缺乏在线编辑功能、移动端适配性差等。这些问题限制了用户在不同设备和场景下的文件处理能力。 为了解决…...
Mysql-查询
1.基本查询 //查询所有内容 select * from 表名;//查询指定字段 select 字段1,字段2,字段3.....from 表名;//查询时给字段起别名 select 字段1 as 别名1 , 字段2 as 别名2 ... from 表名;//去重查询 select distinct 字段列表 from 表名; …...
广东科学技术职业学院计算机学院领导一行莅临泰迪智能科技参观交流
7月17日,广东科学技术职业学院计算机学院副院长张军、计算机学院副书记吴国庆、计算机学院大数据教学部部长谢文达、科技与校企合作部副部长黄相杰、科技与校企合作部副部长吴胜兵莅临广东泰迪智能科技股份有限公司产教融合实训基地参观交流,泰迪智能科技…...
exo 大模型算力共享;Llama3-70B是什么
目录 exo 大模型算力共享 exo框架的特点 如何使用exo框架 注意事项 结论 Llama3-70B是什么 一、基本信息 二、技术特点 三、性能与应用 四、未来发展 exo 大模型算力共享 exo框架的特点 异构支持:支持多种不同类型的设备,包括智能手机、平板电脑、笔记本电脑以及高…...
测试——Junit
内容大纲: 常用的五个注解 测试用例顺序指定 参数化 测试套件 断言 1. 常用的五个注解 1.1 Test 通常情况下,我们输入要写在main方法下,此时我想直接输出: Test void Test01(){System.out.println("第一个测试用例"); } 1.2 BeforeAll AfterAll BeforeALL在Tes…...
BUG ImportError: cannot import name ‘QAction‘ from ‘PySide6.QtWidgets‘
BUG ImportError: cannot import name ‘QAction’ from ‘PySide6.QtWidgets’ 环境 PySide6 6.7.2详情 在参考 PyQt5 的代码写 Pyside6 的右键菜单时遇到的错误。 错误代码 from PySide6.QtWidgets import QAction错误原因: 在PySdie6中…...
对某次应急响应中webshell的分析
文章前言 在之前处理一起应急事件时发现攻击者在WEB应用目录下上传了webshell,但是webshell似乎使用了某种加密混淆手法,无法直观的看到其中的木马连接密码,而客户非要让我们连接webshell来证实此文件为后门文件且可执行和利用(也是很恼火&a…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)
在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
