打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
声音信号的频谱分析(一)

大家无论是学习信号与系统还是数字信号处理频谱都是一个常常提到的词。频谱到底是什么?

下面就借助matlab,给出一些声音信号的频谱,大家结合对应的时域波形图的模样,再听一听声音,就可以更直观地理解频谱的概念。

1、常用函数介绍

本节通过分析.wav格式的声音文件来进一步讨论数字信号处理中的信号分析方法。首先介绍几个常用函数:

[x,fs,bits]=waveread(‘filename’)

函数功能:读取wav文件的数据;

输入参数:filename——文件名;

输出参数:x——声音数据,一般是两列(立体声);

          fs——wav文件在采集时用的采样频率;

bits——进行A/D量化时的位数(一般是8bits16bits

 

sound(x,fs,bits)

函数功能:将序列x中存放的数据通过声卡转换为声音文件。

输入参数:同上。

2wav文件的频域分析

选择每个Matlab都有的wav文件ding.wav(在C:\MATLAB701\toolbox\vr\vrealm\program\sounds目录下)作为分析对象,这是一个比较单纯的声音……”。首先用wavread函数读出文件中的数据,并用sound函数播放。然后对声音数据做FFT,显示幅度谱,并判断波峰所在位置。程序如下:

示例程序:

close all;clearall;clc;figure;

[w,fs,bits]=wavread('C:\MATLAB701\toolbox\vr\vrealm\program\sounds\ding.wav');

sound(w,fs,bits);               %听一下原始声音

y=w(:,1);                     %取其中一列

display('声音文件的大小为:');size(w)

subplot(211);plot(y);title('时域波形');

 N=pow2(nextpow2(length(y)));%fft点数:最接近文件大小的2的整数幂

Y=fft(y,N);

subplot(212);plot(fs*[1:N]/N,abs(Y));title('幅度谱');grid;

    运行结果如下图。显然,幅度谱是以fs/2为中心对称的,这是所有实信号的幅度谱的共性。有一个比较明显的主峰,频率分布非常集中。若把频谱图放大显示局部可以看到,频率集中在1040~1050Hz范围内,并且呈现非常尖锐的特点。这与声音听起来音调比较单调的特点是相吻合的。

1 ding.wav文件的时域波形和频谱图及频谱的局部放大图

 

大家可以自行替换文件名,得到其他声音文件的时域波形和频谱图。如下图2-6所示。

2   chimes.wav文件的时域波形和频谱图

3   bird.wav文件的时域波形和频谱图

4   explo.wav文件的时域波形和频谱图

5   splwater.wav文件的时域波形和频谱图

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
采用FFT算法分析音频信号的仿真设计
python音频处理相关库
解密数字音乐,什么程度才是高分辨率无损音质?
观察频谱的窗口——物理与计算分辨率
声音波形频谱播放器(15首)
那些年我们玩的HIFI 篇一:常见无损音频格式详细介绍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服