如何快速测试wav文件是否有削波失真

如何快速测试wav文件是否有削波失真,第1张

你这个明显是过载嘛。。氏仿。。。你没看那电平都顶到0了 这音乐声音肯定超歼滑纤大 这个我懂也也不是很多 不过应该是他们做了最大化处理 想达到震耳欲聋的效果 一般来让念说一个比较好的录音 即使是在高潮的时候也最多就是在-6db左右

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 % 记录采样率

end

4、对数据做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])

end

5、调整修饰绘图,并存储。下面是用到的一些命令。

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工具栏的图片工具,第一个工具即为插入快捷键。这样会更方便快捷。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/12198029.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存