matlab 十进制小数转为二进制 (-1到1) 音频数据处理
来源:互联网 发布:node.js入门视频教程 编辑:程序博客网 时间:2024/06/03 18:16
%%%%%%%%%%%%%%%%% 假设为发送端发送
[data,FS]=audioread('C:\Users\WaiHornce\Desktop\101\AIR.wav'); % 将 WAV 文件转换成变量
sound(data,FS);
t=linspace(0,length(data)/Fs-1/Fs,length(data))';
len = length(data);
N = 32; %精度为N-2,其中前两位只是用来判断正负
base = zeros(len,N);
tmp = zeros(1,N);
record=zeros(1,N);
cntmax = N-2;
for i=1:1:len
% tmp = dec8bin(data(i,1)); %将矩阵转换为2进制
count = 0;
inum = data(i,1);
intpart = floor(abs(inum)); %整数部分
tmppart = inum - intpart;
fracpart = abs(tmppart); %小数部分
if inum < 0
record(1) = 1;
record(2) = intpart;
else if inum >= 0
record(1) = 0;
record(2) = intpart;
end
end
tmpfracpart = fracpart;
while(count ~= cntmax)
count = count+1; %长度小于N-2
tmpnum = tmpfracpart*2;
record(2+count) = floor(tmpnum);
tmpfracpart = tmpnum - floor(tmpnum);
end
tmp = record;
for j=1:1:N
base(i,j) = record(j);
end
end
lenN = len*N;
tran = reshape(base,lenN,1);
%%%%%%%%%%%%%%%%%%%%%%% 假设为接收端接收数据
recetran = reshape(simout(1:lenN),len,N);
rectmp =zeros(len,1);
for i=1:1:len
order = 0.5;
for j=3:1:N
rectmp(i) = rectmp(i) + recetran(i,j)* order;
order = order/2;
end
if recetran(i,1) == 1
rectmp(i) = -rectmp(i);
end
end
sound(rectmp,FS);
- matlab 十进制小数转为二进制 (-1到1) 音频数据处理
- 十进制小数转为二进制
- 十进制小数转为二进制
- 十进制小数转为二进制小数
- 十进制小数转为二进制小数
- 十进制0到16转为二进制
- 把十进制转为二进制到16进制
- java 二进制转为十进制,十进制转为二进制
- java 二进制转为十进制,十进制转为二进制
- 二进制转为十进制,十进制转为二进制
- 位操作+递归 (十进制转为二进制)
- 15电气二班徐立立(十进制转为二进制)
- 十进制转为二进制
- 十进制转为二进制
- 十进制转为二进制
- 十进制转为二进制
- 十进制小数 转 二进制
- 十进制小数转二进制
- C++中带默认值的函数
- PANDAS 数据合并与重塑(concat篇)
- 金秋十月 我终于来到了魂牵梦萦的黄山
- 学习海思芯片平台
- git报错,提示不是内部或外部命令
- matlab 十进制小数转为二进制 (-1到1) 音频数据处理
- Python核心编程(第三版)课后习题解答——第四章
- leetcode[Delete Node in a Linked List]
- C++{}初始化——《C++程序设计语言第四版》
- Java+Selenium3方法篇39-Explicit wait
- AngularJS-8-模块
- Eureka Server不踢出已关停的节点;Eureka心跳间隔
- JavaScript(二)--BOM编程/事件编程/DOM编程/正则表达式
- SQL创建用户、创建表