数字信号课程设计doc.docx
- 文档编号:11709024
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:12
- 大小:111.56KB
数字信号课程设计doc.docx
《数字信号课程设计doc.docx》由会员分享,可在线阅读,更多相关《数字信号课程设计doc.docx(12页珍藏版)》请在冰豆网上搜索。
数字信号课程设计doc
黄冈师院物电学院
《数字信号处理》课程设计报告
项目名称:
数字信号处理___
专业年级:
___电子信息科学与技术2010级
学号:
201022340218
学生姓名:
田洪普
指导教师:
雷学堂
报告完成日期2012年6月5日
评阅结果评阅教师
目录
第一章绪论3
1.1.数字信号处理技术的应用3
1.2.课程设计的目的3
1.3.实验内容3
第二章设计原理5
2.1语音信号的采样5
2.2数字滤波器的设计7
第三章课程设计的过程8
3.1.语音信号的采集:
8
3.2.语音信号的频谱分析8
3.3.设计数字滤波器和对信号滤波9
3.4.数字滤波器的设计11
3.5语音信号滤波后的还原波形14
3.6、结果分析16
第四章设计体会17
第一章绪论
1.1.数字信号处理技术的应用
MATLAB语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种图的呈现等,信号处理是MATLAB重要应用的领域之一。
1.2.课程设计的目的
本课程设计介绍了基于Matlab的对语音信号采集、处理及滤波器的设计,并使之实现的过程。
理解与掌握课程中的基本概念、基本原理、基本分析方法,用Matlab进行数字语音信号处理,并阐述了课程设计的具体方法、步骤和内容。
综合运用本课程的理论知识进行频谱分析以及滤波器设计,通过理论推导得出相应结论,并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。
要求利用MATLAB来读入(采集)语音信号,将它赋值给某一向量。
再将该向量看作一个普通的信号,对其进行FFT变换实现频谱分析,再依据实际情况对它进行滤波。
然后我们还可以通过sound命令来对语音信号进行回放,以便在听觉上来感受声音的变化。
1.3.实验内容
1.3.1.语音信号的采集
要求利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,录制一段自己的话音,时间控制在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中。
1.3.2.语音信号的频谱分析
要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。
1.3.3.设计数字滤波器和画出频率响应
根据语音信号的特点给出有关滤波器的性能指标:
1)低通滤波器性能指标,fp=1000Hz,fc=1200Hz,As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=2800Hz,fp=3000HzAs=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200Hz,fp2=3000Hz,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dB。
首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数fir1设计FIR滤波器,然后在用双线性变换法设计上面要求的三种滤波器;之后再利用函数butter和cheby1设计上面要求的三种IIR滤波器。
最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。
1.3.4.用滤波器对信号进行滤波
比较FIR和IIR两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。
1.3.5.比较滤波前后语音信号的波形及频谱
要求在一个窗口同时画出滤波前后的波形及频谱。
1.3.6.回放语音信号
在MATLAB中,函数sound可以对声音进行回放。
其调用格式:
sound(x,fs,bits);可以感觉滤波前后的声音有变化。
第二章设计原理
2.1语音信号的采样
采样器的作用是把连续信号变成脉冲或数字序列。
图中示出了一个连续信号f(t)经采样器采样后变成离散信号的过程
图2连续信号f(t)经采样器采样后变成离散信号
图中f(t)为被采样的连续信号,s(t)为周期性窄脉冲信号,f(t)为采样后的离散信号,它用下式来表征:
fs(t)=f(t)s(t)
采样信号的频率特性为:
如果|F*(j
)|中各个波形不重复搭接,相互间有一定的距离(频率)即:
即采样定理可叙述如下:
如果采样周期满足下列条件,即:
式中
为连续信号f(t)的最高次谐波的角频率。
则采样信号f*(t)就可以无失真的再恢复为连续信号f(t)。
需要指出的是,采样定理只是在理论上给出了信号准确复现的条件。
我们可以利用windows自带的录音机录制语音文件,进行数字信号的采集。
(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道)或其他软件,将话筒输入计算机的语音输入插口上,启动录音机,录制一段自己的话音。
然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
通过wavread函数的使用进一步理解采样频率、采样位数等概念。
图2是基于PC机的语音信号采集过程:
图3声音采集过程
2.2数字滤波器的设计
设计数字滤波器的任务就是寻求一个因果稳定的线性时不变系统,并使系统函数H(z)具有指定的频率特性。
数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。
IIR滤波器的特征是,具有无限持续时间冲激响应。
这种滤波器一般需要用递归模型来实现,因而有时也称之为递归滤波器。
FIR滤波器的冲激响应只能延续一定时间,在工程实际中可以采用递归的方式实现,也可以采用非递归的方式实现。
。
第三章课程设计的过程
3.1.语音信号的采集:
利用windows下的录音机(开始—程序—附件—娱乐—录音机,文件—属性—立即转换—8000KHz,8位,单声道),录制一段自己的话音“信号”,时间控制在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.设计数字滤波器和对信号滤波
3.3.1语音信号的定点分析
已知一个语音信号,数据采样频率为1000Hz,试分别绘制N=128点DFT的幅频图和N=1024点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)'*fs/length(y);
subplot(2,2,1),plot(f,magy);
xlabel('频率(Hz)');ylabel('幅值');
title('N=1024(a)');
gridon
subplot(2,2,2),plot(f(1:
N/2),magy(1:
N/2));
xlabel('频率(Hz)'),ylabel('幅值');
title('N=1024(b)');
gridon
fs=1000;N=2048;
y=fft(x,N);
magy=abs(y);
f=(0:
length(y)-1)'*fs/length(y);
subplot(2,2,3),plot(f,magy);
xlabel('频率(Hz)'),ylabel('幅值');
title('N=2048(c)');grid
subplot(2,2,4),plot(f(1:
N/2),magy(1:
N/2));
xlabel('频率(Hz)'),ylabel('幅值');
title('N=2048(d)');
gridon
图5-2语音信号的幅频图
3.4.数字滤波器的设计
3.4.1切比雪夫I型低通滤波器
[I,Fs,bits]=wavread('D:
\thp.wav');%读取语音信号sm.wav
fp=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);%切比雪夫IFIR滤波后语音信号频谱分析subplot(3,2,1),plot(I);title('原始语音信号');
subplot(3,2,2);plot(w*Fs/(2*pi),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);plot([h,w]);title('滤波器的频率响应');
sound(I,Fs,bits);%重放语音
3.4.2椭圆低通滤波器
[I,Fs,bits]=wavread('D:
\sm.wav');%读取语音信号sm.wav
fp=1000;%通带截止频率
fr=1200;%阻带角频率
ap=1;%通带纹波
as=40;%阻带衰减
[n,fn]=ellipord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');
[b,a]=ellip(n,ap,as,fn);%椭圆滤波器
[h,w]=freqz(b,a);%波器的频率响应
I1=fftfilt(b,I);%FFT的FIR滤波
I2=fft(I1);%椭圆FIR滤波后语音信号频谱分析
subplot(3,2,1),plot(I);title('原始语音信号');
subplot(3,2,2);plot(w*Fs/(2*pi),abs(h));
title('椭圆低通滤波');
subplot(3,2,3);plot(I1);
title('椭圆FIR滤波后语音信号');
subplot(3,2,4);plot(abs(I2));
title('椭圆FIR滤波后语音信号频谱');
subplot(3,2,5);plot([h,w]);title('滤波器的频率响应');
sound(I,Fs,bits);%重放语音
3.5语音信号滤波后的还原波形
3.5.1.I型切比雪夫FIR滤波后的还原波形
[I,Fs,bits]=wavread('D:
\thp.wav');%读取语音信号sm.wav
fp=1000;%通带截止频率
fr=1200;%阻带角频
ap=1;%通带纹波
as=40;%阻带衰减
[n,fn]=cheb1ord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');
[b,a]=cheby1(n,ap,fn,'low');%I型切比雪夫滤波器
I1=fftfilt(b,I);%FFT的FIR滤波
I2=fft(I1);%I型切比雪夫滤波后的频谱分析
I3=ifft(I2);%I型切比雪夫滤波后的波形还原
subplot(2,1,1);plot(abs(I1));
title('I型切比雪夫滤波后的波形')
subplot(2,1,2);plot(abs(I3));
title('I型切比雪夫滤波后的还原波形');
sound(I,Fs,bits);%重放语音
3.5.2.椭圆FIR滤波后还原波形
[I,Fs,bits]=wavread('D:
\thp.wav');%读取语音信号sm.wav
fp=1000;%通带截止频率
fr=1200;%阻带角频率
ap=1;%通带纹波
as=40;%阻带衰减
[n,fn]=ellipord(fp/(Fs/2),fr/(Fs/2),ap,as,'z');
[b,a]=ellip(n,ap,as,fn);%椭圆滤波器
I1=fftfilt(b,I);%FFT的FIR滤波
I2=fft(I1);%椭圆FIR滤波后语音信号频谱分析I3=ifft(I2);%椭圆FIR滤波后波形还原
subplot(2,1,1);plot(abs(I1));title('椭圆FIR滤波后的波形');
subplot(2,1,2);plot(abs(I3));
title('椭圆FIR滤波后还原波形');
sound(I,Fs,bits);%重放语音
3.6、结果分析
从还原后的频谱图中可以分析出:
语音信号中一些噪音被滤掉了,但是还有一部分噪音无法消除,因为那样的滤波器在实际中是很难被设计出来的,而且成本也比较高,试听完还原后的语音觉得比之
前的好多了,达到了设计要求的标准。
第四章设计体会
在之前数字信号与处理的学习以及完成课后的作业的过程中,已经使用过MATLAB,对其有了一些基础的了解和认识。
通过这次练习是我进一步了解了信号的产生、采样及频谱分析的方法。
以及其中产生信号和绘制信号的基本命令和一些基础编程语言。
让我感受到只有在了解课本知识的前提下,才能更好的应用这个工具;并且熟练的应用MATLAB也可以很好的加深我对课程的理解,方便我的思维。
这次设计使我了解了MATLAB的使用方法,学会分析滤波器的优劣和性能,提高了分析和动手实践能力。
同时我相信,进一步加强对MATLAB的学习与研究对我今后的学习将会起到很大的帮助。
参考文献
1.《数字信号处理》丁玉美,高西全等编著,西安:
西安电子科技大学出版社
2.《数字信号处理》A.V.奥本海姆,R.W.谢弗著,北京:
科学出版社
3.《数字信号处理——理论、算法与实现(第二版)》胡广书编著,北京:
电子工业出版社
4.《数字信号处理(第二版)学习指导书》高西全,丁玉美编著,西安:
清华大学出版社
5.《数字信号处理实验指导书(MATLAB版)》孙洪,余翔宇等译,北京:
电子工业出版社
6.《基于MATLAB的系统分析与设计——信号处理》楼顺天,李博菡编著,西安:
西安电子科技大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 课程设计 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)