MATLAB实现截位的问题
讨论MATLAB怎样提取10进制中的位的方法,因为做FFT时要用到截位,相去验证它,向同庆请教,
原来只是除以2的N次方,取模取余就行了,可恨我还想了一下午,也没有一个好办法。
接下来的问题是,对于负数我该怎么处理。
无论是有符号还是无符号数,如果做加减的话,都可以当做无符号数处理。但对于乘法运算则不然。
而蝶形运算是有乘法的,所以不能简单做为无符号数处理。具体实现过程如下:
%%=============================================================================
%%对第一级的输出进行截位处理
%%==============================================================================
%先转换成16进制,再换成10进制,把有符号数据转换成无符号,其实不用这么麻烦的。直接用下面的程序即可。
%Stg1_OutData1_Real = Stg1_OutData1_Real+2^34*(Stg1_OutData1_Real < 0);
%Stg1_OutData2_Real = Stg1_OutData2_Real+2^34*(Stg1_OutData2_Real < 0);
%Stg1_OutData1_Imag = Stg1_OutData1_Imag+2^34*(Stg1_OutData1_Imag < 0);
%Stg1_OutData2_Imag = Stg1_OutData2_Imag+2^34*(Stg1_OutData2_Imag < 0);
Stg1_OutData1_Real = dec2hex(Stg1_OutData1_Real+2^34*(Stg1_OutData1_Real < 0),9);
Stg1_OutData2_Real = dec2hex(Stg1_OutData2_Real+2^34*(Stg1_OutData2_Real < 0),9);
Stg1_OutData1_Imag = dec2hex(Stg1_OutData1_Imag+2^34*(Stg1_OutData1_Imag < 0),9);
Stg1_OutData2_Imag = dec2hex(Stg1_OutData2_Imag+2^34*(Stg1_OutData2_Imag < 0),9);
% end;
Stg1_OutData1_Real = hex2dec(Stg1_OutData1_Real);
Stg1_OutData2_Real = hex2dec(Stg1_OutData2_Real);
Stg1_OutData1_Imag = hex2dec(Stg1_OutData1_Imag);
Stg1_OutData2_Imag = hex2dec(Stg1_OutData2_Imag);
%trancate process
%截去低16位
%提取中间16位
Stg1_OutData1_Real = floor(Stg1_OutData1_Real/2^16);
Stg1_OutData1_Real = mod(Stg1_OutData1_Real,2^16);
%截去低16位
%提取中间16位
Stg1_OutData2_Real = floor(Stg1_OutData2_Real/2^16);
Stg1_OutData2_Real = mod(Stg1_OutData2_Real,2^16);
%截去低16位
%提取中间16位
Stg1_OutData1_Imag = floor(Stg1_OutData1_Imag/2^16);
Stg1_OutData1_Imag = mod(Stg1_OutData1_Imag,2^16);
%截去低16位
%提取中间16位
Stg1_OutData2_Imag = floor(Stg1_OutData2_Imag/2^16);
Stg1_OutData2_Imag = mod(Stg1_OutData2_Imag,2^16);
for i= 1:32
if bitget(Stg1_OutData1_Real(i),16) == 1
Stg1_OutData1_Real(i) = Stg1_OutData1_Real(i) - 2^16;
else
Stg1_OutData1_Real(i) = Stg1_OutData1_Real(i);
end;
if bitget(Stg1_OutData2_Real(i),16) == 1
Stg1_OutData2_Real(i) = Stg1_OutData2_Real(i) - 2^16;
else
Stg1_OutData2_Real(i) = Stg1_OutData2_Real(i);
end;
if bitget(Stg1_OutData1_Imag(i),16) == 1
Stg1_OutData1_Imag(i) = Stg1_OutData1_Imag(i) - 2^16;
else
Stg1_OutData1_Imag(i) = Stg1_OutData1_Imag(i);
end;
if bitget(Stg1_OutData2_Imag(i),16) == 1
Stg1_OutData2_Imag(i) = Stg1_OutData2_Imag(i) - 2^16;
else
Stg1_OutData2_Imag(i) = Stg1_OutData2_Imag(i);
end;
end;
%%===================================================
%%======================================================
a=1.23456789
roundn(a,-4)
提取10进制中的某一位
bitget
MATLAB实现截位的问题的更多相关文章
- 【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位
一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2 Matlab2016a 仿真工具:Vivado自带仿真器 二.引言 在利用 ...
- Verilog对数据进行四舍五入(round)与饱和(saturation)截位
转自https://www.cnblogs.com/liujinggang/p/10549095.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件 ...
- systemverilog中实现饱和截位和饱和截位的分析
截位(rnd/prnd/floor):都是去掉低位数据的操作(去掉低位低精度的数据,或者说小数位,降低数据的精度) 饱和(sat/sym_sat):都是去掉高位数据的操作,(去掉无符号数高位的0,或者 ...
- FPGA定点小数计算中截位形式的探讨
在FPGA设计过程中难免会碰到需要进行截位,那定点小数的计算过程中我们需要注意些什么呢? 首先,我们考虑如下计算式. sin cos 数据形式是 FIX_32_30 X Y Z 数据形式是 FIX_3 ...
- MATLAB:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位
问题:一个K×M的矩阵,第一列是1,其它都是0,从最后一行开始,每循环一次,最后一行的1往右边移一位,移动到末尾后溢出,重新回到最左边,同时上一行的1往右边移一位.上一行溢出时,上上一行的1移动一位, ...
- MATLAB中FFT_HDL_Optimized模块定点(IEEE754单精度float格式)二进制与十进制转换实现
早些时间段,做了Matlab中FFT_HDL_Optimzed模块FFT HDL代码仿真,并与Xilinx Vivado自带的xfft IP进行单精度浮点比较(后面随笔叙述).因为FFT_HDL_Op ...
- 再次完善了 WASPCN for Matlab
前段时间有多个网友询问在64位Matlab中如何使用WASPCN(水和蒸汽性质计算软件)的方法,一直没能给出解决方案. 最近自己有个项目也需要在64位Matlab中如何使用WASPCN(水和蒸汽性质计 ...
- libSVM笔记之(一)在matlab环境下安装配置libSVM
本文为原创作品,转载请注明出处 欢迎关注我的博客:http://blog.csdn.net/hit2015spring和http://www.cnblogs.com/xujianqing 台湾林智仁教 ...
- 使用ecilpse(Java)调用Matlab代码
1 安装java环境: http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载JDK最新版本并安装,CloudSim ...
随机推荐
- MVC中数据传递 ViewBag的使用
ViewBag MVC3中 ViewBag.ViewData和TempData的使用和差别 在MVC3開始.视图数据能够通过ViewBag属性訪问.在MVC2中则是使用ViewData.MVC3中保留 ...
- 认识serviceLoader
最近在研究系统设计方面的东西,发现有很多通用的解决方案,包括spring配置扩展以及serviceLoader的应用,这里简单记录下serviceLoader的简单应用,网上例子很多,大同小异,本人觉 ...
- Mybatis知识(4)
1.当实体类中的属性名和表中的字段名不一样 解决办法①: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致 <select id=”selectorder” para ...
- Gearman简介
gearman,从名字上看叫做“齿轮工”,就是通过齿轮把不同的组件组合在一起.通常,多语言多系统之间的集成是项目开发中一个比较头疼的问题.一般会采用RPC风格或者是REST风格的WebService. ...
- Linux安装初始化
鸟哥的Linux 私房菜 Linux常用命令大全 http://www.cnblogs.com/yjd_hycf_space/p/7730690.html 安装看锋哥教程 可能最后网卡出错 ...
- java列表转成 int[] 的格式
java 稀疏矩阵中输入的索引系列和对应的值系列需要用 int[] r_indices = new int[featureIdxList.size()]; 的数据格式. 但是实际中可能实现没法确定 f ...
- pycharm 远程开发
1. 服务器安装图形化 和 pycharm 本地使用 MobaXterm 工具登陆 session配置 勾选 x11-forwarding 运行pycharm.sh 2. 本地pycharm 远程服务 ...
- (转)新手C#SQL语句的学习2018.08.13
1.创建数据库(create) CREATE DATABASE database-name 2.删除数据库(drop) drop database dbname 3.备份数据库 --- 创建 备份数据 ...
- org.Hs.eg.db包简介(转换NCBI、ensemble等数据库中基因ID,symbol等之间的转换)
1)安装载入 ------------------------------------------- if("org.Hs.eg.db" %in% rownames(install ...
- Android使用HTTPS进行IP直连握手失败问题(okHttp)
为什么要使用ip直连这种方式去请求我们的服务器呢?这其实和国内运营伤有关,运营商有时为了利益会将你的域名劫持换成他人的域名,为了防止这种情况的发生通用的解决办法要么联系运营商要么就只能使用ip直连了. ...