1、 1 数字信号处理 课程设计课程设计 说说 明明 书书 设计题目设计题目 语音信号的处理与滤波语音信号的处理与滤波 2 目录目录 摘要摘要3 3 一一. . 设计内容设计内容3 3 二滤波器设计原理二滤波器设计原理3 3 三设计步骤三设计步骤4 4 1语音信号的采集4 2.实际问题的解决5 3.比较 8000 个和 16000 个数据点的幅度和相位谱7 4.滤波器的设计及对语音信号进行滤波8 四心得体会四心得体会1414 五参考文献五参考文献114 4 3 摘要:摘要:本课程设计主要是对数字信号处理中所学知识在 MATLAB 中的综合应用, 对语音信号的采样及进行频谱分析,滤波器的设计及利用滤
2、波器对信号 的滤波。 一、设计内容:一、设计内容: 语音信号的处理与滤波:使用声音相关函数录制 3 秒左右自己的声音。掌 握 MATLAB 中有关声音(wave)录制、播放、存储和读取的函数;并解决实际发 出声音落后录制动作半拍的现象。画出采样后语音信号的时域波形和频谱图。对 录制的声音信号分别取 8000 个和 16000 个数据进行频谱分析,得到幅度和相位 谱,比较二者异同。给定滤波器的性能指标,分别设计一个 IIR 低通与带通滤波 器,并对语音信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后 的语音信号进行对比,分析语音信号的变化。 二、滤波器设计原理:二、滤波器设计原理: 滤
3、波器, 顾名思义, 就是对系统的输入信号进行滤波。 本设计采用 Filter() 函数对语音信号进行滤波。并采用 IIR 数字滤波器。其基本步骤(以低通数字滤 波器为例): 1)确定数字滤波器的性能指标:通带临界频率 fp、阻带临界频率 fr;通带内的 最大衰减 Ap;阻带内的最小衰减 Ar;采样周期 T; 2) 确定相应的数字角频率,p=2fpT;r=2frT; 3) 计算经过预畸的相应模拟低通原型的频率, ; 4) 根据p和r计算模拟低通原型滤波器的阶数 N,并求得低通原型的传递 函数 Ha(s); 装 订 线 4 5) 用双线性变换公式代入 Ha(s),把 s 平面的虚轴单值地映射于 z
4、 平面的单 位圆上,s 平面的左半平面完全映射到 z 平面的单位圆内。双线性变换不存在混 叠问题。求出所设计的传递函数 H(z);即 1 1 2 1 ()( ) 1 z HzHss Tz 三设计步骤三设计步骤 1语音信号的采集 MATLAB 中有关声音(wave)录制、读取、播放、存储和读取的函数有 wavrecord () ; wavread(); wavwrite(); sound().录制 3 秒左右自己的声音, 画 出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特 性。 程序代码如下: fs=8000;%采样频率 y=wavrecord(3*fs,fs,doubl
5、e);%录制 3 秒自己的声音 wavplay(y,fs);%播放录音 wavwrite(y,fs,E:/音乐);%存储声音 wavread(E:/音乐);%读取声音 subplot(1,2,1); plot(abs(y); %画出声音采样后的时域波形 grid on; title(信号的时域波形); xlabel(时间); ylabel(振幅); y1=fft(y,1024); %对信号做 fs 点 FFT 变换 subplot(1,2,2); f=fs*(0:499)/1024;%采样点数 plot(f,abs(y1(1:500); %画出原始语音信号的幅频响应图 grid on; title(fft 后信号的频谱特性); xlabel(频率); 5 ylabel(振幅); 2.2.实际发出声音落后录制动作半拍问题的解决 录制刚开始时, 常会出现实际发出声音落后录制动作半拍的现象。 在 MATLAB 中先用 wavread(filename,size)函数读取声音长度,然后再用 wavread(filename,n1 n2)函数从 n1 点开始读取声音,即去掉了前面的无效 点。 程序代码如下: size=wavread(E:/音乐,size);%读取声音长度 s