matlab对正弦波采样量化后导出二进制波形文件到txt
时间: 2023-06-10 13:08:37 浏览: 795
将源文件读入matlab后二进制输出到文本文件
以下是一个示例 MATLAB 代码,该代码生成一个正弦波信号,并对其进行采样和量化,然后将其导出为二进制文件并保存为文本文件。
```matlab
% 采样频率
fs = 8000;
% 信号频率
f = 1000;
% 信号时长
t = 1;
% 生成正弦波信号
t_vec = linspace(0, t, fs*t);
x = sin(2*pi*f*t_vec);
% 量化位数
bits = 8;
% 最大量化值
q_max = 2^(bits-1)-1;
% 进行量化
x_q = round(x*q_max)/q_max;
% 导出二进制文件
fid = fopen('sin_wave.bin', 'wb');
fwrite(fid, x_q, 'int8');
fclose(fid);
% 导出为文本文件
fid = fopen('sin_wave.txt', 'wt');
fprintf(fid, '%d\n', x_q);
fclose(fid);
```
这个代码生成一个采样频率为8000 Hz、信号频率为1000 Hz、时长为1秒的正弦波信号,并对其进行8位量化。量化后的信号保存为二进制文件`sin_wave.bin`和文本文件`sin_wave.txt`。在二进制文件中,每个样本使用1个字节表示,因此采用`int8`作为写入格式。在文本文件中,每个样本使用一行表示,使用`fprintf`函数将量化后的信号写入文件中。
阅读全文