当前位置: 首页 > news >正文

[]利用定点式具实现:文件读取,完成不同进制之间的

原文地址: 利用定点式具实现:文件读取,完成不同进制之间的转换(数据移位) 作者: 半岛鱼
利用定点式具实现:文件读取,完成不同进制之间的转换
在进行一些大的 算法 编程时,经常会遇到处理一些大量的 数据,而这些数据存储的 格式却各不相同,
如DSP和FPGA中用到的是16进制表示的,而matlab中运算得到的是十进制,在不同的软件中执行
要用各自允许的格式,有时转换起来非常麻烦。
下面是我在实践中用matab处理十进制数据和十六进制数据之间的转换技巧,分享如下:
1、十进制转换成其它进制
    t = fi(0,1,23,22); //严格的使用格式是fi(var,sign,wordlength,fractionwordlength),sign处的值为1或0, 1为有 符号数,0为无符号数
    t.data = var; //var 为 变量名,可以是一个数,也可以是一个 数组,一个数据 文件中的变量
    coef=t.hex;  //将var的值转换成16进制后赋给coef
    fc=strcat('0x',coef);//这是将前缀加进去
    对上面进行相应的改动
    就可以实现转换成2进制和八进制的数
    如:coef=t.bin //二进制
           coef=t.oct //八进制
    当然,首先要确定你的数据范围是多少,用多少位来表示,多少整数位,多少分数位
    结果才不会出错
for example:
>> var=0.5;
>> t = fi(0,1,16,15);
t.data = var;
coef=t.hex
fc=strcat('0x',coef)
运行结果如下:
coef =
4000
fc =
0x4000
2、其他进制转换为十进制
     现在介绍如何将一个DSP和FPGA中产生的hex格式的数据读入到matlab中,
     并转换成10进制,进行一些分析和 信号处理操作,然后再转换成hex格式,
     从而来指导DSP和FPGA进行相应的信号处理工作
复制内容到剪贴板
代码:
Ts=1/50e6;
fid = fopen('test.txt');
test = fscanf(fid, '%sn');
tt = fi(0,1,16,15);
x1 = zeros(1,length(test)/4);
for i = 1:length(test)/4
tt.hex = test((4*i-3):4*i);
x1(1,i)=tt.data;
end
x=x1(1:n); %n为付立叶变换的点数,是2的幂,一般取512或1024
%***************1.正弦波****************%
fs=50e6;%设定采样频率
N=1024;
n=0:N-1;
t=n/fs;
figure(1);
subplot(211);
plot(1:length(x),x,'b');%作输入信号的时域波形
%stem(x);
hold on;
xlabel('t');
ylabel('x');
title('输入信号x时域波形');
grid on;
%进行FFT变换并做频谱图
y=fft(x,N);%进行fft变换
mag=abs(y)*2/N;%求幅值
f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换
figure(1);
subplot(212);
plot(f,mag,'b');%做频谱图
hold on;
xlabel('频率(Hz)');
ylabel('幅值');
title('输入信号x幅频谱图N=1024');
grid;
原文地址:http://www.ilovematlab.cn/thread-35166-1-1.html

相关文章:

  • []指针
  • []FET-430SIM508 研究日志 11.3.31
  • []串口通信 零星笔记
  • []C/C++读取串口接收到的数据程序
  • []sim300 GPRS数据收发程序
  • []Telit UC864E 拨号上网
  • []常用AT命令解释()
  • []error LNK2001: unresolved external symbol _m
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • []我的函数库
  • 波分复用(WDM) 技术和概念
  • 2011年05月21日 男人成熟气质磨练
  • 【MSP430时钟】MSP430 5438时钟系统介绍
  • MSP 430 心得体会
  • MSP430X5XX的时钟系统与低功耗模式
  • [PHP内核探索]PHP中的哈希表
  • python3.6+scrapy+mysql 爬虫实战
  • 2019.2.20 c++ 知识梳理
  • ESLint简单操作
  • flutter的key在widget list的作用以及必要性
  • JAVA_NIO系列——Channel和Buffer详解
  • Java教程_软件开发基础
  • Koa2 之文件上传下载
  • Netty源码解析1-Buffer
  • OSS Web直传 (文件图片)
  • React 快速上手 - 07 前端路由 react-router
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • Xmanager 远程桌面 CentOS 7
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 后端_ThinkPHP5
  • 利用jquery编写加法运算验证码
  • 嵌入式文件系统
  • 区块链将重新定义世界
  • 微信小程序填坑清单
  • 赢得Docker挑战最佳实践
  • 用 Swift 编写面向协议的视图
  • 在weex里面使用chart图表
  • 怎样选择前端框架
  • 字符串匹配基础上
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • # 手柄编程_北通阿修罗3动手评:一款兼具功能、操控性的电竞手柄
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $jQuery 重写Alert样式方法
  • (07)Hive——窗口函数详解
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (BFS)hdoj2377-Bus Pass
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (poj1.2.1)1970(筛选法模拟)
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)springboot教学评价 毕业设计 641310
  • (全注解开发)学习Spring-MVC的第三天
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (推荐)叮当——中文语音对话机器人