- 博客(13)
- 资源 (1)
- 收藏
- 关注
原创 Vivado导入浮点数据
1、MATLAB生成double类型数据,并导出到文件中。signal = randn(1000,1);writematrix(signal,‘signal.txt’);2、Vivado导入浮点数据DataSource_Input=fopen("signal.txt","r");while(fopen("signal.txt","r"); while(fopen("signal.txt","r");while(feof(DataSource_Input)==0)begin$fscanf (Da
2021-10-18 20:12:59 961
原创 Matlab单精度数据转换成IEEE754单精度数据及误差分析
Matlab单精度数据转换成IEEE754单精度数据及误差分析考虑四种转换方式1、 Matlab中默认的Double类型转换为IEEE单精度,在求分数部分的值时,四舍五入采用floor方式。2、 Matlab中默认的Double类型转换为IEEE单精度,在求分数部分的值时,四舍五入采用Round方式。3、 Matlab中默认的Single类型转换为IEEE单精度,在求分数部分的值时,四舍五入采用floor方式。4、 Matlab中默认的Single类型转换为IEEE单精度,在求分数部分的值时,四舍
2021-04-16 15:46:52 1404
原创 影响FFT运算精度的主要配置项
对FFT运算精度影响较大的因素包括 FFT架构;Radix-4、Radix-2、Pipeline、Radix-2 Lite 输入数据位宽 旋转因子位宽 每个阶段的缩放因子 FFT点数1、 FFT架构对FFT运算精度的影响整体而言,Radix-2精度最高,Pipeline次之,Radix-4较低,但是并非绝对如何,与其他因素也有较大关系。2、 输入数据位宽对FFT运算精度的影响以12bit数据位宽、14bit数据位宽、16bit数据位宽测试FFT运算得到的实部虚部数据误差,测试结果
2021-04-16 11:39:16 2730 2
原创 Matlab与C语言在不同类型数据混合运算时的差异
目的:比较Matlab和C语言在进行不同类型数据混合运算时的差异以典型情形Double Single混合运算为例Matlab:Double Single运算,运算结果为Single类型,且是在运算结束后将Double转Single换。C:Double Single运算,运算结果为Double,且是在运算开始前将Single转Double。%%验证double和single进行运算时,是先将操作数转single在运算,还是先运算再将结果转成single。%%C语言往高精度转,混合运算前先转%%Ma
2021-04-15 11:56:06 969
原创 Matlab产生参数可变的时变信号
波形长度可调,时变特性可配function Waveform = TimeVarying_Signal_Para(Length,Step)Frequency=1000; %采样率1KHzTime_Interval=1/Frequency; %点时间间隔0.001sTimes=floor(Length/Step); %向下取整%Steps=500;Waveform=zeros(1,Length);%Trunca
2021-04-15 10:45:44 865
原创 Matlab实现短时傅里叶变换
支持输入波形长度及时变特性参数调整支持FFT点数调整支持STFT步进调整支持窗含数据类型调整支持数据格式调整double、single%%对照组,直接FFTWave_Length=10240;PointNum=256;Steps=64;Times=(Wave_Length-PointNum)/Steps+1;Waveform_Step=500;Waveform=TimeVarying_Signal_Para(Wave_Length,Waveform_Step); %产
2021-04-15 10:41:41 2724
原创 Matlab中避免避免浮点算术运算出现常见问题
避免浮点算术运算出现常见问题MATLAB 中几乎所有运算都是通过符合 IEEE 754 标准的双精度算术运算执行的。由于计算机仅将数值表示为有限精度(双精度需要 52 个尾数位),因此计算有时会生成数学上的非预期结果。务必注意,这些结果并非 MATLAB 中的错误。使用以下示例来帮助您确定这些情况:示例 1 - 舍入或您所获得的不是所期望的十进制数 4/3 不能精确表示为二进制分数。为此,以下计算的结果不是零,而是显示数量 eps。e = 1 - 3*(4/3 - 1)e =2.2204e-1
2021-04-15 10:35:23 1685 1
原创 Double类型浮点数和IEEE754双精度格式互相转换的实现方式
关键点:Double类型浮点数转换成IEEE754双精度时以二进制串存储,以十进制方式存储会导致精度丢失,因为double类型不能准确表示(2^64)的整数。Double转IEEE754双精度function TransData = Double2IEEE754_Bin(DoubleData)%%暂未提供对非规格数的支持if DoubleData0Sign = 0;Exponent = dec2bin(0,11);Fraction = dec2bin(0,52);elseif Double
2021-04-15 10:33:37 1378
原创 FFT核旋转因子位宽和输入数据位宽对FFT运算结果精度的影响
问题描述12bit输入数据位宽时,FFT运算结果异常。现象及波形分析过程1、 与输入数据的处理方式有关系。2、 与输出数据的处理方式有关系。3、 与旋转因子的位数选择有关系。4、 输入数据和输出数据padding方式的区别,输入数据用0来Padding,输出数据时sign padding。5、 旋转因子位数太低,导致精度计算精度很低。6、 输入数据位宽和输入数据位宽相同,FFT运算后输出数据溢出。验证1、 将FFT核的输入数据位宽和旋转因子设置成相同的值,均设为12bit。2、输入
2021-04-09 10:06:51 2113
原创 Matlab实现短时傅里叶变换
实现FFT点数可调、步进可调的短时傅里叶变换;实现加窗功能,窗类型可选。代码如下Fs=1000; %采样率1KHzTs=1/Fs; %点时间间隔0.001sL=2048; %2048点数t=(0:L-1)Ts; %采的时间为20480.001=2.048s%t1=(0:L/4-13)Ts; %500个点%t2=(0:L/4+35)Ts; %548个点t1=(0:L/4-13)Ts; %512-13=4
2021-04-08 11:08:21 1907
原创 IEEE754与二进制补码表示形式的精度比较
一、备选方案实现小数的乘法运算,针对小数的表示形式,目前考虑到两种可选方案。方案一:采用二进制补码形式表示小数。方案二:采用IEEE753形式表示小数。二、实现框图略图一 IEEE754实现形式略图二 二进制补码实现形式方案比较3.1、表示范围及精度比较3.1.1 二进制补码表示以32bit情形为例,首位作符号位,次位为整数位,其余位表示小数位。表示范围以及表示精度:Min=2^(-30)Max=2-2^(-30)Step=2^(-30)3.1.2 IEEE754浮点数精度
2021-03-03 10:07:04 553
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人