文件管理 · 2022年7月26日

wav文件matlab|怎么使用MATLAB导入语音如果是用MP3录音过的WAV文件又怎么导入

1. MATLAB 怎么生成wav文件

1、用CooEdit录制声音,可以选择采样率为96kHz,单声道。录制声音长度约为10s,然后存储文件为Windows PCM wav文件格式。文件名最好包括进入测试条件。测试多组数据,将其保存在同一个文件夹中,便于matlab后期的批处理。2、使用matlab读取一个文件夹里的所有wav文件。在下面的操作中,把sqrt0目录下的所有wav文件名读取到fnames中了。dirs=dir('sqrt0/*.wav'); % 读取当前目录下所有的excel文件dircell=struct2cell(dirs)' ; % 结构体(struct)转换成元胞类型(cell),转置一下是让文件名按列排列。fnames=dircell(:,1); % 第一A列是文件名3、通过wavread函数读取wav文件数据,并将其存储在Ydata和Fdata中。fnumber=size(fnames,1); % 求取表格行数,即文件个数for N=1:1:fnumber filename=char(fnames(N,1)); % 将cell转换为string filename=strcat(path,filename); % 校正文件路径 [Y,Fs]=wavread(filename,Num); % 读取当前文件前65536个点 Ydata(N,:) = Y; % 记录数据 Fdata(N,:) = Fs; % 记录采样率end4、对数据做FFT运算,并绘制其频谱图。for N=1:1:fnumber yy = fft(Ydata(N,:),Num); % 对数据做Num点FFT运算 Yfft(N,:) = 20*log10(abs(yy)); % 对计算结果取模 figure; ff = linspace(0,Fdata(N),Num); % 在0-采样率之间取Num个频率点 plot(ff,Yfft(N,:),'r'); % 绘制频谱 grid on; axis([400 3000 -20 70]);end5、调整修饰绘图,并存储。下面是用到的一些命令。 set(gcf,'Position',[200 200 350 250]); % 设置绘图的大小 tt = strcat(Freq(N,:),',',Sqrt(N,:),',',Modindex(N,:));title(tt); % 设置绘图标题 legend('m=1.0'); xlabel('Frequency(Hz)','FontSize',14,'FontName','Times New Roman');% 设置x坐标轴标注字体 ylabel('Amplitude(dB)','FontSize',14,'FontName','Times New Roman'); Note = strcat('m=',Modindex(N,:)); text(1800,55,Note,'FontSize',14); % 在400,300位置添加标注 set(gca,'FontSize',12); % 设置坐标轴字体 set(gcf,'visible','off'); % 不显示图片 tt = strcat(Freq(N,:),'_',Sqrt(N,:),'_',Modindex(N,:),'.emf'); saveas(gcf,tt,'emf'); % 存储绘图为eps格式6、将生成的图片,导入到excel中。因为excel不能识别eps图片,所以生成emf图片。两种格式都是矢量图,放大缩小不会失真。可以调出excel工具栏的图片工具,第一个工具即为插入快捷键。这样会更方便快捷。

2. 怎么使用MATLAB导入语音,如果是用MP3录音过的WAV文件又怎么导入

1)用录音,生成文件cricket.wav,把该文件放到matlab文件夹里面(就是你打开matlab后中间顶部的地址)。

2)使用如下程序,做波形显示以及fft变换。

[y,Fs,bits]=wavread('cricket.wav');%读出信号,采样率和采样位数。

y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)

sigLength=length(y);

Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength;

halflength=floor(sigLength/2);

f=Fs*(0:halflength)/sigLength;

figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');

t=(0:sigLength-1)/Fs;

figure;plot(t,y);xlabel('Time(s)');

3)频率看频谱就有了,声音间隔看声音波形,周期看声音波形。

4)关于去噪声。

a)如果噪声是特定频率的周期噪声(periodic noise),比如说50hz,那么你可以用matlab的filter,作一个低通、高通、带通或者带阻滤波。

b)如果声音是高斯白噪声。那就用自适应滤波(adaptive filter,wiener filter)。这里涉及到对噪声的采样、计算特征值以及决定阶数的问题。

c)幸好我们可以“耍赖”——用cool editor。用它打开wav文件,用鼠标把一段噪声圈起来,采样,然后直接选择去噪就可以了。各大网站有介绍。

3. 我怎么才能把wav格式文件导入到matlab

在matlab中,可以用wavread函数来打开wav格式的声音文件。wavread函数的用法如下:1、y=wavread(filename)%输入参数filename为指定载入的音频文件名称,为单引号引出的字符串形式。返回参数y%%为所读取的音频数据样本

4. matlab 怎么读取WAV文件

wavplay(wavread('xxx.wav')) %xxx.wav是你的wav文件,放在当前目录就行

5. 如何在matlab中读入一个wav声音文件

在matlab中,可以用wavread函数来打开wav格式的声音文件。wavread函数的用法如下:1、y=wavread(filename)%输入参数filename为指定载入的音频文件名称,为单引号引出的字符串形式。返回参数y%%为所读取的音频数据样本。当文件无扩展名时,系统自动附加扩展名.wav。2、[y,Fs,nbits]=wavread(filename)%参数filename、y的定义同上,Fs为采样频率,nbits为文件中每个样本的字节数。3、[…]=wavread(filename,N)%参数N为文件每个通道的前N个样本。4、[…]=wavread(filename,[N1N2])%参数N1、N2为文件每个通道从N1到N2的样本。举例说明如下:[y,fs,nbits]=wavread('d:\shuisound.wav');sound(x,fs,bits);%播放声音%y就是音频信号;%fs是采样频率,比如说16000就是每秒16000次;%nbit是采样精度,比如说16就是指16位精度的采样。

6. 怎样利用MATLAB读取一个WAV文件

读取波形:y=wavread(filename)将信号幅度减半后,存波形:wavwrite(y,filename)把你的信号y,写为以filename命名的wav文件建议你多多使用matlab的HELP命令,会收获很多的哦

7. matlab 如何打开wav声音文件

在matlab中,可以用wavread函数来打开wav格式的声音文件。wavread函数的用法如下: 1、y = wavread(filename)% 输入参数filename为指定载入的音频文件名称,为单引号引出的字符串形式。返回参数y% % 为所读取的音频数据样本。当文件无扩展名时,系统自动附加扩展名.wav。 2、[y, Fs, nbits] = wavread(filename)% 参数filename、y的定义同上,Fs为采样频率,nbits为文件中每个样本的字节数。 3、[…] = wavread(filename, N)% 参数N为文件每个通道的前N个样本。 4、[…] = wavread(filename,[N1 N2])% 参数N1、N2为文件每个通道从N1到N2的样本。举例说明如下:[y,fs,nbits]= wavread('d:\shuisound.wav'); sound(x,fs,bits); % 播放声音% y就是音频信号; % fs是采样频率,比如说16000就是每秒16000次; % nbit是采样精度,比如说16就是指16位精度的采样。

8. 如何用matlab将wav格式的语音文件转化为二进制比特流输出

[fname,pname]=uigetfile('*.wav','OpenWaveFile');file=[pname,fname];[x,fs,bits]=wavread(file);%读入声音文件(*.wav)sound(x,fs,bits);%数据通过声卡转换为声音把代码输出在命令窗口,按照提示打开你的.wav文件。此时得到的x及为语音文件的二进制比特流,fs为对应的采样率。其中x的第一列为左声道的二进制比特流。第二列为右声道的二进制比特流。

9. 怎样用matlab分割音频文件(wav)或其他

wavread函数可读入一个wav文件,如果为单声道就返回一个一维矩阵,表示每个采样点的量化值。如下:[Y,FS,NBITS]=wavread(FILE)Y为数据矩阵,FS为采样率,NBITS为量化位数,FILE为音频文件名。如果你要截取[t1,t2]时间内的音频,则start=floor(t1*FS)+1;end=floor(t2*FS);R=Y[start:end];%R为截取后的数据最后用函数wavwrite保存成新的wav文件,如wavwrite(R,FS,NBITS,'new.wave');

10. matlab中如何导入wav音频文件

搜索“dbpowerampmusicconverter13.2”,下载安装好后右键选中要转换的文件,然后选converto弹出设置窗口,下拉菜单选mp3就能转换了,压成ape,flac效果更好