基于MATLAB对语音信号的处理
本文是本专业(工程信号与系统)作业的汇总. 写在自己的账号里或许能帮到别人, 也为了自己以后复习的时候用.
文章所有内容均为原创, 参考了一些博主的博客(文中有贴出), 不能保证正确, 仅为参考.
具体要求
自己录制一段语音或音乐信号,进行傅里叶变换,用通频带小于信号带宽的带通滤波器去除高频和低频,然后将滤波后的信号进行时域恢复,比较与原声在时域上有何差别。
回答六个问题:
- 使用的信号处理软件是 ?
- 语音信号的时域波形(截屏贴图)?
- 语音信号的频谱(截屏贴图),并说明语音信号的频带范围是多少 ?
- 带通滤波器的通频带(频谱)(截屏贴图),并说明通频带是多少 ?
- 输出信号的频谱(截屏贴图),并说明输出信号的频带范围是多少 ?
- 输出信号的时域波形(截屏贴图),并说明和最初的时域波形相比有什么变化,为什么 ?
My Answer
因为我信号与系统的课基本都是自己跟着mooc学的, 所以在布置上机作业的时候有点懵, 全程都是翻阅网上相关资料. 现将我的思路汇总一下.
应该用什么软件
这个问题我问了ChatGPT, 它是这样说的.
Q:
如果我想自己录制一段语音或音乐信号,进行傅里叶变换,用通频带小于信号带宽的带通滤波器去除高频和低频,然后将滤波后的信号进行时域恢复,比较与原声在时域上有何差别。应该用哪个信号处理软件?
A:
您可以使用许多不同的信号处理软件来完成这个任务,其中一些是免费的,而其他一些则需要购买许可证。 以下是一些常用的信号处理软件:
MATLAB:MATLAB是一种广泛使用的数学软件,它具有强大的信号处理功能,包括傅里叶变换、滤波器设计和时域重建等。MATLAB还有许多开源的信号处理工具箱,可以方便地完成各种信号处理任务。
GNU Octave:GNU
Octave是一个免费的、开源的MATLAB兼容软件,它也具有强大的信号处理功能,包括傅里叶变换、滤波器设计和时域重建等。
Python:Python是一种流行的编程语言,具有广泛的信号处理库,如NumPy、SciPy和matplotlib。这些库提供了许多信号处理功能,包括傅里叶变换、滤波器设计和时域重建等。
Audacity:Audacity是一种免费的、开源的音频编辑软件,具有许多信号处理功能,包括傅里叶变换、滤波器设计和时域重建等。Audacity还具有用户友好的界面和易于使用的工具,可以方便地完成许多不同的音频处理任务。
无论您选择哪种软件,都应该具备实现您所需的信号处理功能所必需的工具和库。同时,您还需要了解信号处理的基础知识和技能,才能有效地完成这个任务。
因为只对MATLAB有基础, 所以我选择MATLAB来解决这个问题.
通过查CSDN和MATLAB官方文档,我差不多搞清楚了具体是用什么函数和函数的具体用法. 我用到了以下有关于本题的函数, 具体的用法还需要大家去自行查阅.
audioread
//读取本机的音频文件, **但不一定是wav文件, 我使用的是flac后缀文件soundsc
//播放音频的函数ff
t //快速傅里叶变换- 工具箱命令:
fdatool
//用来生成滤波器的, 好像是很新手的方法, 大佬都是自己写(?
什么是带通滤波器, 带通滤波器通频带是什么?
简单来说, 带通滤波器是让信号的某个频率区间的信号分量通过, 而其他频率的信号就被过滤了. 所以对带通滤波器来说就有一个能通过的最大频率 f H f_H fH 和能通过的最小频率 f L f_L fL . 事实上我们观察带通滤波器的函数, 在 f H