数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波

一、总体要求

一人一组,使用Matlab编写代码实现语音信号的读取,并实现直接卷积以及多相滤波抽取与插值功能,完成分数倍采样频率变换。

二、基础要求

1、能够从音频文件读取44100Hz采样频率的x(n),可以通过参数设置读取的起始时间和持续时间;

2、调用MATLAB resample函数对x(n)进行抽取得到y1(m) ;

3、直接对x(n)进行抽取,得到y2(m);

4、先卷积滤波,然后抽取得到y3(m);

5、先多相滤波,然后抽取得到y4(m);

6、分析和对比不同帧片段的y1(m), y2(m), y3(m)和y4(m)的时域和频域信息;

7、分析和对比运算效率;(即运算时间)

8、其他指标要求:假定以resample函数输出y1(m)为基础,设为有用信号,那么其他三个自行计的抽取输出和y1(m)序列相减为噪声,即可以定义相应的信噪比:

数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波_第1张图片

以上涉及的抽取因子D均为参数可任意设置,滤波器和具体实现结构需要自行设计。

三、提高要求

1、基于多相滤波结构完成速率变换的实现

2、完成插值和分数倍采样频率变换的实现

四、部分实验结果

1、部分主函数代码以及子函数名展示:

数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波_第2张图片

  注意,matlab文件命名不能有中文以及空格等特殊字符,readdata是读音频文件,resample对应resample函数抽取,direct_D对应直接抽取,direct_conv对应卷积滤波抽取,multiphase对应多相滤波抽取,SNR对应信噪比计算,create_FIR对应有限长滤波器设计,插值同理只不过多了个insert。music_1是语音信号,我使用的是曲《纯纯的夏天》,你可以换成其他的,但注意名称要对应。每个函数名里面都有注释,没做readme文本解释我觉得也可以看懂。

2、四个抽取结果:

数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波_第3张图片

 原始抽样频率为44100Hz,抽取D=30,采样频率降低为1470Hz,混叠失真了,插值就不在这里不展示了。

3、参数计算:

数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波_第4张图片

 同样只展示部分。

4、多相滤波结构分数倍采样频率转换

数字信号处理课程设计——语音信号中的抽取、混叠和数字限带滤波_第5张图片

 我用的D=55,I=35,代码下载了里面的D与I是自由可调的,注意主函数一共有三大部分,一个是抽取,一个是插值,一个是速率转换。觉得上面的图刻度不对,或者丑了,或者想改个名字,可以自己用对应指令改,这个实验课上动手了肯定能自己改。

五、代码与报告链接

链接1:

课程设计报告

链接2:Matlab代码

你可能感兴趣的:(语音识别,matlab,人工智能,数字信号处理)