成绩 |
数字信号处理
综合性实验
语音信号的采集
综合性实验任务书
实验项目名称:语音信号的处理
课程名称:数字信号处理
面向专业:信息与计算科学专业
计划学时:4学时=实验课内2学时+实验课外2学时
实验类型: √ 综合 设计
实验目的:掌握用MATLAB对语音信号进行采集、分析和处理。综合运用数字信号处理课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并进行计算机仿真,从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
实验要求:包括开发环境要求、技术文档要求两部分。
开发环境要求:
软件环境:windowsXP/windows2000 、MATLAB
硬件环境:计算机(Pen4CPU, 512MRAM,60G以上硬盘,输入输出设备)
技术文档要求:
按照实验报告编写要求进行。要求流程图绘制规范,软、硬件功能描述清晰,实验总结深刻。
实验内容:
1、语音信号的采集。
2、语音信号的频谱分析。
3、用滤波器对信号进行滤波。
4、比较滤波前后信号的波形和频谱。
实验方案(任务提示):
录制一段个人自己的语音信号,并对录制的信号进行采样,对采样后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,得出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,得出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号。
实验仪器设备:每个学生一台计算机,配置相关软件。
实验报告版式要求:
A4纸张打印;上下页边距各2.5cm,左右页边距各3.0cm,页眉1.5cm页脚1.75cm;页码位于页脚居中打印;奇数页页眉“数字信号处理综合性实验”,偶数页页眉“语音信号的处理”,页眉宋体小5号,一级标题:黑体三号粗体字;二级标题:黑体4号;三级标题黑体小4号,正文,宋体5号。
实验报告装订顺序与规范
封面
数字信号处理的综合实验任务书
数字信号处理综合实验报告
左边缘装订
目录
一、实验项目名称 1
二、实验目的 1
三、实验内容 1
四、实验具体方案 1
1.语音信号采集 1
2.语音信号频谱分析 1
(1)画出语音信号的时域波形 2
(2)对信号进行快速傅里叶变换,得到信号的频谱特性 2
3.设计滤波器和画出频率响应 3
(1)在命令行窗口输入如下代码 3
(2)得到如下图 3
4.用滤波器对信号进行滤波 4
5.滤波前后语音信号的波形及频谱 4
6.回放语音信号 5
五、实验思考 5
六、数字信号处理综合性实验收获与总结 5
数字信号处理综合性实验报告
语音信号的处理。
综合运用数字信号处理课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并进行计算机仿真,从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
1.语音信号的采集
2.语音信号的频谱分析
3.设计数字滤波器和画出频率响应
4.用滤波器对信号进行滤波
5.比较滤波前后语音信号的波形及频谱
6.回放语音信号
1.语音信号采集
录制一段语音信号并保存为文件,长度控制在1秒,并对录制的信号进行采样;录制时使用Windows自带的录音机。
图 4-1 录制的语音信号图
2.语音信号频谱分析
首先画出语音信号的时域波形,然后对语音信号进行频谱分析。在matlab中利用fft对信号进行快速傅里叶变换,得到信号的频谱特性。
(1)画出语音信号的时域波形
1)在matlab中编写recording.m文件
[x, fs] = audioread('D:\MyRecording.m4a');
plot(x); xlabel('时间/t'); ylabel('幅值/A');
title('MyRecording.m4a 时域采样信号');
2)运行后得时域采样信号如下图
图 4-2 时域采样信号图
(2)对信号进行快速傅里叶变换,得到信号的频谱特性
1)在matlab中编写recordFFT.m文件对信号进行快速傅里叶变换,得到信号的频谱特性
y = fft(x, 1024);
f = fs * (0 : 511) / 1024;
subplot(2, 1, 1); plot(f, abs(y(1 : 512)));
xlabel('Hz'); ylabel('幅值');
title('MyRecording.m4a 频谱');
subplot(2, 1, 2); plot(abs(y(100 : 1024)));
xlabel('点数'); ylabel('点数');
title('MyRecording.m4a FFT频谱');
2)运行后得信号频谱如下图
图 4-3 信号频谱特性图
3.设计滤波器和画出频率响应
根据语音信号的特点给出有关滤波器的新能指标:
①低通滤波器的性能指标:fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;
②高通滤波器的性能指标:fp=4500Hz,fc=5000Hz,As=100dB,Ap=1dB;
③带通滤波器的性能指标:fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB;
(1)在命令行窗口输入如下代码
fs = 22050;
audioread('D:\MyRecording.m4a');
Ts = 1/fs; R1 = 10;
wp = 2*pi*1000/fs;
ws = 2*pi*1200/fs;
Rp = 1;
R1 = 100;
wp1 = 2/Ts*tan(wp/2);
ws1 = 2/Ts*tan(ws/2);
[N, Wn] = buttord(wp1, ws1, Rp, R1, 's');
[Z, P, K] = buttap(N);
[Bap, Aap] = zp2tf(Z, P, K);
[b, a] = lp2lp(Bap, Aap, Wn);
[bz, az] = bilinear(b, a, fs);
freqz(bz, az); title('数字与信号综合实验');
f1 = filter(bz, az, x);
figure(2);
subplot(2, 1, 1); plot(x)
title('MyReaording.m4a 滤波前时域波形');
subplot(2, 1, 2); plot(f1);
title('MyReaording.m4a IIR低通滤波器滤波后的时域波形');
sound(f1, 44100);
F0 = fft(f1, 1034);
f = fs*(0.511)/1024;
figure(3);
y2 = fft(x, 1024);
subplot(2, 1, 1); plot(f, abs(y2(1:512)));
xlabel('Hz'); ylabel('幅值');
title('MyReaording.m4a IIR滤波前频谱');
subplot(2, 1, 2); F1 = plot(f, abs(F0(1:512)));
xlabel('Hz'); ylabel('幅值');
title('MyReaording.m4a IIR低通滤波器滤波后的频谱');
(2)得到如下图
图 4-4 信号频率响应图
4.用滤波器对信号进行滤波
图 4-5 信号滤波前后时域波形对比图
5.滤波前后语音信号的波形及频谱
图 4-6 信号滤波前后频谱对比图
6.回放语音信号
本次的实验是让我们自己采集一段语言信号,然后对这个语言信号进行频谱分析,再用滤波器对其进行滤波,滤波完之后再回放。本次实验我录制的语音信号是“DSP”,经过这一系列操作之后我回放得到的语言信号,就发现只有一点比较刺耳的声音,那么为什么得到的是刺耳的声音?在日常的生活中通过这一系列操作又能实现什么?
通过本次实验,我学会了把数字与信号处理课程的理论知识综合运用起来进行频谱分析和设计滤波器,使用matlab进行计算机仿真,对语音信号进行了采集、频谱分析,设计了数字滤波器对信号进行了滤波,比较了滤波前后信号的波形和频谱,绘画了波形、频谱图进行了比较;掌握了用数字信号处理的知识去分析一个现实问题的本领以及matlab的一些画图技巧;训练了我的用理论知识去分析、解决实践问题的能力;发现了我自己在数字与信号处理理论知识方面仍然存在的不足之处以及对把理论知识转换为程序的能力不足;在今后的学习中我的基础理论知识的掌握程度以及把基础理论知识转化为程序用程序去解决问题的能力有待提高。