这个Matlab代码是做什么的?
我不明白变量“samples”的含义是什么:这个Matlab代码是做什么的?,matlab,Matlab,我不明白变量“samples”的含义是什么: 代码基本上是在名为A2D.bin的数据文件中读取,其中元素存储在名为data的数组中。但是,请注意,fread调用假定每个8位块都是无符号的,并表示数组中的一个数字。这意味着您的数据最初包含[0255]中的数字示例只是将此数据标准化,使其在[-1,1]范围内 按逻辑分解步骤。执行数据/(2^num\u位-1)就是执行数据/255,它规范化您的数据,使其具有[0,1]的范围。将结果乘以2,或执行数据*2/(2^num\u/u位-1)从而缩放数据,使范围
代码基本上是在名为
A2D.bin的数据文件中读取,其中元素存储在名为data
的数组中。但是,请注意,fread
调用假定每个8位块都是无符号的,并表示数组中的一个数字。这意味着您的数据最初包含[0255]
中的数字<代码>示例
只是将此数据标准化,使其在[-1,1]
范围内
按逻辑分解步骤。执行数据/(2^num\u位-1)
就是执行数据/255
,它规范化您的数据,使其具有[0,1]
的范围。将结果乘以2,或执行数据*2/(2^num\u/u位-1)
从而缩放数据,使范围现在为[0,2]
。最后,当您在语句末尾减去1时,执行data*2/(2^num\u of_bits-1)-1
最后通过向下移动-1将数据向下移动,使数据变成[-1,1]
从文件名判断,这可能是一个模数转换器的输出,你想知道每个8位数字块的模拟等效值是多少。从
[-1,1]
的动态范围判断,数据最有可能来自某种音频文件,其中每个样本从连续(即模拟)转换而来以数字形式表示。代码基本上是在名为A2D.bin
的数据文件中读取,其中元素存储在名为data
的数组中。但是,请注意,fread
调用假定每个8位块都是无符号的,并表示数组中的一个数字。这意味着您的数据最初包含[0255]
中的数字<代码>示例只是将此数据标准化,使其在[-1,1]
范围内
按逻辑分解步骤。执行数据/(2^num\u位-1)
就是执行数据/255
,它规范化您的数据,使其具有[0,1]
的范围。将结果乘以2,或执行数据*2/(2^num\u/u位-1)
从而缩放数据,使范围现在为[0,2]
。最后,当您在语句末尾减去1时,执行data*2/(2^num\u of_bits-1)-1
最后通过向下移动-1将数据向下移动,使数据变成[-1,1]
从文件名判断,这可能是一个模数转换器的输出,你想知道每个8位数字块的模拟等效值是多少。从[-1,1]
的动态范围判断,数据很可能来自某种音频文件,其中每个样本从连续(即模拟)表示转换为数字形式
filename = 'A2D.bin' ;
fid = fopen(filename)
data = fread(fid , 'uint8') ;
num_of_bits = 8 ;
samples = data * 2 / (2^num_of_bits - 1) - 1 ;
fclose(fid) ;