功能介绍:
(1)读取本地的.mat文件
(2)将.mat文件转换为.wav文件输出
(3)播放.wav文件
说明:
需要运行时,只需将下列的程序的
UnprocessedSignal1 = loadmat('E:/研一/2021-05 研究生电赛/raspberry/实际数据-txt转mat/collect.mat') # 导入.mat文件,字典格式
UnprocessedSig1 = np.transpose(UnprocessedSignal1['collect']) # 找到需要的变量,将其存好
其中,loadmat路径替换为要读取的.mat文件的路径
UnprocessedSig1 = np.transpose(UnprocessedSignal1[‘collect’]) 中的[‘collect’]替换为变量名即可。
且这里的转置,要根据读取数据是行向量还是列向量加以取舍。
import wave
from scipy.io import loadmat #只import一个函数
import numpy as np
import scipy.signal as signal
from playsound import playsound
# 2021-07-09 成功啦,保存.wav文件并且播放
UnprocessedSignal1 = loadmat('E:/研一/2021-05 研究生电赛/raspberry/实际数据-txt转mat/collect.mat') # 导入.mat文件,字典格式
UnprocessedSig1 = np.transpose(UnprocessedSignal1['collect']) # 找到需要的变量,将其存好
UnprocessedSig1 = UnprocessedSig1[0, :] # 取第一行
framerate = 40000#应该是采样率
wave_data = UnprocessedSig1 * 50000
wave_data = wave_data.astype(np.short)
f = wave.open('collect_final.wav', "wb")#不存在同名的问题,很好。
f.setnchannels(1)
f.setsampwidth(2)
f.setframerate(framerate)
f.writeframes(wave_data.tobytes())
f.close()
playsound('collect_final.wav')