1、数字信号处理黄 冈 师 院 物 电 学 院数字信号处理课程设计报告项目名称: 数字信号处理 _专业年级:_ 电子信息科学与技术2023级 学 号: 202322340218 学生姓名: 田 洪 普 指导教师: 雷 学 堂 报告完成日期 2023 年 6 月 5 日评阅结果 评阅教师 目 录第一章 绪论31.1.数字信号处理技术的应用31.2课程设计的目的31.3.实验内容3第二章 设计原理52.1语音信号的采样52.2 数字滤波器的设计7第三章 课程设计的过程83.1.语音信号的采集:83.2.语音信号的频谱分析83.3. 设计数字滤波器和对信号滤波93.4.数字滤波器的设计113.5 语音信
2、号滤波后的复原波形143.6、结果分析16第四章 设计体会17第一章 绪论1.1.数字信号处理技术的应用MATLAB 语言是一种数据分析和处理功能十分强大的计算机应用软件 ,它可以将声音文件变换为离散的数据文件 , 然后利用其强大的矩阵运算能力处理数据 ,如数字滤波 、傅里叶变换 、时域和频域分析 、声音回放以及各种图的呈现等 , 信号处理是MATLAB 重要应用的领域之一 。 1.2课程设计的目的本课程设计介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。理解与掌握课程中的根本概念、根本原理、根本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体
3、方法、步骤和内容。综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习稳固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。要求利用MATLAB来读入采集语音信号,将它赋值给某一向量。再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。1.3.实验内容1.3.1语音信号的采集要求利用windows下的录音机开始程序附件娱乐录音机,文件属性立即转换8000KHz,8位,单
4、声道或其他软件,录制一段自己的话音,时间控制在15s左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。wavread函数调用格式:y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。y,fs,nbits=wavread(file),采样值放在向量y中,fs表示采样频率Hz,nbits表示采样位数。y=wavread(file,N),读取前N点的采样值放在向量y中。y=wavread(file,N1,N2),读取从N1点到N2点的采样值放在向量y
5、中。1.3.2语音信号的频谱分析要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。1.3.3设计数字滤波器和画出频率响应根据语音信号的特点给出有关滤波器的性能指标:1低通滤波器性能指标,fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2高通滤波器性能指标,fc=2800 Hz,fp=3000 Hz As=100dB,Ap=1dB;3带通滤波器性能指标,fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As
6、=100dB,Ap=1dB。首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数fir1设计FIR滤波器,然后在用双线性变换法设计上面要求的三种滤波器;之后再利用函数butter和cheby1设计上面要求的三种IIR滤波器。最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。1.3.4用滤波器对信号进行滤波比拟FIR和IIR两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。1.3.5比拟滤波前后语音信号的波形及频谱要求在一个窗口同时画
7、出滤波前后的波形及频谱。1.3.6回放语音信号在MATLAB中,函数sound可以对声音进行回放。其调用格式:sound(x,fs,bits);可以感觉滤波前后的声音有变化。第二章 设计原理2.1语音信号的采样采样器的作用是把连续信号变成脉冲或数字序列。图中示出了一个连续信号ft经采样器采样后变成离散信号的过程图2 连续信号ft经采样器采样后变成离散信号图中ft为被采样的连续信号,st为周期性窄脉冲信号,ft为采样后的离散信号,它用下式来表征:fst=ftst采样信号的频率特性为:如果|Fxj|中各个波形不重复搭接,相互间有一定的距离频率即:即采样定理可表达如下:如果采样周期满足以下条件,即:
8、式中为连续信号ft的最高次谐波的角频率。那么采样信号 fxt就可以无失真的再恢复为连续信号ft。需要指出的是,采样定理只是在理论上给出了信号准确复现的条件。我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。开始程序附件娱乐录音机,文件属性立即转换8000KHz,8位,单声道或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段自己的话音。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用进一步理解采样频率、采样位数等概念。图2是基于PC机的语音信号采集过程:图3 声音采集过程2.2 数字
9、滤波器的设计设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应IIR滤波器和有限长冲激响应FIR滤波器。IIR滤波器的特征是,具有无限持续时间冲激响应。这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。第三章 课程设计的过程3.1.语音信号的采集:利用windows下的录音机开始程序附件娱乐录音机,文件属性立即转换8000KHz,8位,单声道,录制一段自己的话音“
10、信号, 时间控制在3秒左右,然后将音频文件保存“thp.wav,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。3.2.语音信号的频谱分析首先画出语音信号的时域波形z1=wavread(d:thp.wav);plot(z1);图像输出如图1图1 语音信号时域波形 对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性z1=wavread(d:thp.wav);y1=z1(1:5000);Y1=fft(y1);n=0:5000;plot(n,Y1);图像输出如图2: 图2 语音信号频谱分析图3.3. 设
11、计数字滤波器和对信号滤波3.3.1 语音信号的定点分析一个语音信号,数据采样频率为1000Hz,试分别绘制N128点DFT的幅频图和N1024点DFT幅频图。编程如下:x,fs,bits=wavread(D:thp.wav);sound(x,fs,bits);fs=1000;N=1024;y=fft(x,N);magy=abs(y);f=(0:length(y)-1)xfs/length(y);subplot(2,2,1),plot(f,magy);xlabel(频率Hz);ylabel(幅值);title(N=1024(a);grid onsubplot(2,2,2),plot(f(1:N/
12、2),magy(1:N/2);xlabel(频率Hz),ylabel(幅值);title(N=1024(b);grid onfs=1000;N=2048;y=fft(x,N);magy=abs(y);f=(0:length(y)-1)xfs/length(y);subplot(2,2,3),plot(f,magy);xlabel(频率Hz),ylabel(幅值);title(N=2048(c);gridsubplot(2,2,4),plot(f(1:N/2),magy(1:N/2);xlabel(频率Hz),ylabel(幅值);title(N=2048(d);grid on图5-2 语音信号
13、的幅频图3.4.数字滤波器的设计3.4.1切比雪夫I型低通滤波器I,Fs,bits=wavread(D:thp.wav); %读取语音信号sm.wavfp=1000; %通带截止频率fr=1200; %阻带角频率ap=1; %通带纹波as=40; %阻带衰减 n,fn=cheb1ord(fp/(Fs/2),fr/(Fs/2),ap,as,z); %切比雪夫I型滤波器b,a=cheby1(n,ap,fn,low); %I型切比雪夫滤波器 h,w=freqz(b,a); %滤波器的频率响应 I1=fftfilt(b,I); %FFT的FIR滤波 I2=fft(I1); %切比雪夫I FIR滤波后语音信号频谱分析 subplot(3,2,1),plot(I);title(原始语音信号);subplot(3,2,2);plot(wxFs/(2xpi),abs(h);title(切比雪夫1低通滤波);subplot(3,2,3);plot(I1);title(切比雪夫1FIR滤波后语音信号);subplot(3,2,4);plot(abs(I2);title(切比雪夫1FIR滤波后语音信号频谱);subplot(3,2,5