基于MATLAB的有噪声的语音信号处理的课程设计
DSP 实验课程设计实验报告 DSP 实验课程设计实验报告实验课程设计实验报告 姓名姓名 学号学号 班级班级 1.1.课程设计题目课程设计题目 基于 MATLAB 的有噪声的语音信号处理的课程设计。 2.2.课程设计的目的课程设计的目的 综合运用数字信号处理的理论知识进行频谱分析和滤波器设计, 通过理论推导得出相应 的结论,再利用 MATLAB 做为编程工具进行计算机实现,从而加深对所学知识的理解,建立 概念。 3.3.课程设计的要求课程设计的要求 1熟悉离散信号和系统的时域特性。 2掌握序列快速傅里叶变换 FFT 方法。 3学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法。 4利用 MATLAB 对语音信号进行频谱分析。 5掌握 MATLAB 设计各种数字滤波器的方法和对信号进行滤波的方法。 4.4.课程设计的内容课程设计的内容 录制一段语音信号,对语音信号进行频谱分析,利用 MATLAB 中的随机函数产生噪声加 入到语音信号中,使语音信号被污染,然后进行频谱分析,设计 FIR 和 IIR 数字滤波器,并 对噪声污染的语音信号进行滤波,分析滤波后的信号的时域和频域特征,回放语音信号。 5.5.课程设计的步骤课程设计的步骤 ((1 1))语音信号的获取语音信号的获取 通过录音软件录制一段语音“数字信号处理” ,命名为“OriSound” ,时长大约 1 到 2 秒,在 MATLAB 中,通过使用 wavread 函数,对语音进行采样 y,fs,nbitswavreadOriSound; 语音信号的采集 采样值放在向量 y 中,采样频率为 fs,采样位数为 nbits。 DSP 实验课程设计实验报告 ((2 2)语音信号的频谱分析)语音信号的频谱分析 画出语音信号的时域波形, 然后对语音信号进行频谱分析, 在 MATLAB 中, 通过使用 fft 函数对信号进行快速傅里叶变换,得到信号的频谱特性。 因此采集语音并绘出波形和频谱的模块程序如下因此采集语音并绘出波形和频谱的模块程序如下 y,fs,nbitswavreadOriSound; 语音信号的采集 soundy,fs,nbits; 语音信号的播放 nlengthy ; 计算语音信号的长度 Yffty,n; 快速傅里叶变换 figure; subplot2,1,1; 绘出时域波形 ploty; title原始信号波形,fontweight,bold; axis 00000 80000 -1 1; 通过尝试确定合适的坐标参数 grid; subplot2,1,2; 绘出频域频谱 plotabsY; title原始信号频谱,fontweight,bold; axis 0 150000 0 4000; 通过尝试确定合适的坐标参数 grid; 结果如下结果如下 DSP 实验课程设计实验报告 可以看到,语音信号的频率集中在低频部分。 ((3 3)产生噪声信号)产生噪声信号 在 MATLAB 中,通过使用 randn 函数产生随机噪声信号,并加到语音信号中得到被污染 的语音信号,回放语音信号。 产生随机噪声 Noise0.2*randnn,1; 其中用 0.2 倍乘噪声用来适当削减噪声的作用,便于对语音信号进行处理并比较效果。 ((4 4)污染信号频谱分析)污染信号频谱分析 对被污染的加噪信号进行时域和频域分析。 加噪声并分析信号波形频谱的模块程序及说明如下加噪声并分析信号波形频谱的模块程序及说明如下 DSP 实验课程设计实验报告 y,fs,nbitswavreadOriSound.wav; 语音信号采集 soundy,fs,nbits; 回放语音信号便于比较效果 n length y ; 计算语音信号长度 Noise0.2*randnn,1; 产生随机噪声信号 Noise syNoise; 将 Noise 添加到原始信号,得到污 染信号 s sounds; 回放污染信号 s figure; subplot2,1,1; 绘制加噪信号时域波形 plots; title加噪语音信号的时域波形,fontweight,bold; axis 00000 80000 -1 1; grid; Sffts; 对s进行快速