数字信号滤波的设计要点.docx
- 文档编号:3536303
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:24
- 大小:523.44KB
数字信号滤波的设计要点.docx
《数字信号滤波的设计要点.docx》由会员分享,可在线阅读,更多相关《数字信号滤波的设计要点.docx(24页珍藏版)》请在冰豆网上搜索。
数字信号滤波的设计要点
课程设计报告
课程名称数字信号处理
课题名称数字滤波器的设计
专业通信工程
班级
学号
姓名
指导教师
2011年12月25日
湖南工程学院
课程设计任务书
课程名称数字信号处理
课题数字滤波器的设计
专业班级
学生姓名
学号
指导老师
审批
任务书下达日期2011年12月19日
任务完成日期2011年12月25日
《数字信号处理》课程设计任务书
一、设计目的
综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现,从而加深对所学知识的理解,建立概念。
二、设计要求
1、MATLAB的使用,掌握MATLAB的程序设计方法。
2、Windows环境下语音信号采集的方法。
3、数字信号处理的基本概念、基本理论和基本方法。
4、TLAB设计FIR和nR数字滤波器的方法。
5、用MATLAB对信号进行分析和处理
6、计报告4000以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
7、机演示。
8、有详细的文档。
文档中包括设计思路、设计仿真程序、仿真结果及相应的分析与结论。
三、进度安排
第一周星期一:
课题讲解,查阅资料
星期二:
总体设计,详细设计
星期三:
编程,上机调试、修改程序
星期四:
上机调试、完善程序
星期五:
答辩
星期六-星期天:
撰写课程设计报告
一、课题的主要功能
熟悉并掌握利用窗函数法设计FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。
利用MATLAB工具箱函数,fir1是利用窗函数法设计的线性相位FIR数字滤波器的工具箱函数,实现线性相位FIR数字滤波器的标准窗函数法设计。
二.、课题的功能模块的划分
1、主要功能模块的划分
2、语音信号的采集
录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。
3、语音信号的分析
语音信号处理可以分为时域分析和频域分析,使用MATLAB可绘出采样后的语音信号的时域波形和频谱图。
4、含噪语音信号的合成
在MATLAB下,给原始的语音信号叠加上噪声,噪声的类型分为以下几种:
(1)单频噪声(正弦干扰);
(2)高斯随机噪声;(3)多频噪声。
5、滤波器的设计及滤波
窗函数设计FIR滤波器的步骤
根据对阻带衰减以及过渡带的指标要求,选择窗函数的类型,并估计窗口长度N。
原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数,然后根据过渡带宽估计窗口长度N。
构造希望逼近的频率响应函数H
(e
),即
H
(e
)=H
(w)e
计算h
(n)。
加窗得到设计的结果:
h(n)=h
(n)w(n)。
6、回放语音信号
对滤波后的语音信号进行回放,感觉滤波前后语音信号的变化。
三、主要功能的实现
1、语音信号的采集
语音信号的采集是利用Windows中的录音机或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。
Windows附件的娱乐中有个录音机程序,简称录音机,通过它可以驱动声卡采集、播放和简单处理语音信号,语音信号的采集可以通过麦克风直接录制人的声音,可通过对文件属性设置文件的格式、采样频率、位数等。
2、语音信号分析
使用MATLAB绘出采样后的语音信号的时域波形和频谱图。
在MATLAB中,[y,fs,bits]=wavread('d:
/lij’)用于读取语音信号,采样值放在y中,fs表示采样频率,bits表示采样位数。
Sound(y)表示对声音的回放,向量y就代表了一个信号,也即一个复杂的“函数表达式”,也可以说像处理一个信号的表达式一样处理这个声音信号信号。
[x1,fs,bits]=wavread('e:
/肖彬2');
y1=fft(x1,32768);
subplot(221)
plot(x1);
title('原始语音信号时域波形');
subplot(222)
plot(abs(y1));
title('原始语音信号频谱')
语音信号的时域、频域分析模块功能图:
3、含噪语音信号合成
在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:
(1)白噪声;
(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰);绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。
(1)加高斯白噪声的程序如下:
x2=awgn(x1,10);
y2=fft(x2,32768);
subplot(221)
plot(x2);
title('加高斯白噪声语音信号的时域波形')
subplot(222)
plot(abs(y2));
title('加高斯白噪声语音信号的频谱')
(2)加单频余弦噪声程序如下:
N=length(x1)-1;
t=0:
1/fs:
N/fs;
d=[0.8*cos(2*pi*5000*t)]';
x3=x1+d;
subplot(3,2,3)
plot(x3)
title('加单频余弦信号的语音信号时域波形')
y3=fft(x3,32768);
subplot(3,2,4)
plot(abs(y3));
title('加单频余弦信号的语音信号频谱')
(3)添加多频噪声
N=length(x1)-1;
t=0:
1/fs:
N/fs;
d1=[0.8*cos(2*pi*1200*t)]';%单频余弦噪声
d2=[0.8*cos(2*pi*1500*t)]';%单频余弦噪声
x4=x1+d1+d2;
subplot(2,1,1)
plot(x4)
title('加多频余弦信号的语音信号时域波形')
plot(abs(y3));
subplot(2,1,2)
title('加多频余弦信号的语音信号频谱')
4、数字信号滤波器的设计
对于不同的加躁波我们对滤波器的设计是不同的。
对于加高斯白噪声的信号,噪声在每个部分都有故无论用什么滤波器都无法将噪声完全滤去,所以选择用带通滤波器;对于低频的加单频余弦信号的语音信号用高通滤波器时只有高频的通过,低频的则被滤去;对于高频的加单频余弦信号的语音信号用低通滤波器时只有低高频的通过,高频的则被滤去;对于加多频余弦信号的语音信号分析其噪声分布在什么地方就用什么波滤去,若高频低频都有则用带阻和带通比较适合,若集中在高频或者低频则用低通或带通。
(1)带通滤波器的设计程序如下:
f1s=0;f1p=1000;f2p=2500;f2s=3500
Bt=(f1p*2/fs-f1s*2/fs)*pi;
N1=ceil(6.6*pi/Bt);
wn1=[(f1s+f1p)/2,(f2s+f2p)/2];
wn=wn1*2/fs
hn=fir1(N1-1,wn);%带通滤波器脉冲响应并形成了哈明函数
plot(w/pi,abs(h));
title('FIR带通滤波器的幅频')
(2)带阻滤波器的设计程序如下:
f1s=0;f1p=450;f2p=3400;f2s=3850
Bt=(f1p*2/fs-f1s*2/fs)*pi;
N1=ceil(6.1*pi/Bt);
wn1=[(f1s+f1p)/2,(f2s+f2p)/2];
wn=wn1*2/fs
hn=fir1(N1-1,wn,'stop');%带阻滤波器脉冲响应并形成了哈明函数
plot(w/pi,abs(h));
title('FIR带阻滤波器的幅频')
(3)低通滤波器的设计程序如下:
fp=500,fc=800;%设置通带频率和阻带频率,单位是Hz
wp=2*pi*fp/fs;
ws=2*pi*fc/fs;
Bt=ws-wp;%转化为数字频率求过渡带宽
M=ceil(6.6*pi/Bt)-1;%求滤波器长度
wc=(wp+ws)/2/pi;%理想滤波器通带截止频率
hn=fir1(M,wc);%理想低通滤波器脉冲响应并形成了哈明函数
plot(w/pi,abs(h));
title('FIR低通滤波器的幅频')
(4)高通滤波器的设计程序如下:
fp=2200,fc=4500;%设置通带频率和阻带频率,单位是Hz
wp=2*pi*fp/fs;
ws=2*pi*fc/fs;
Bt=ws-wp;%转化为数字频率求过渡带宽
M=ceil(6.6*pi/Bt)-1;%求滤波器长度
wc=(wp+ws)/2/pi;%理想滤波器通带截止频率
hn=fir1(M,wc,'high');%理想高通滤波器脉冲响应并形成了哈明函数
plot(w/pi,abs(h));
title('FIR高通滤波器的幅频')
四、程序调试
(1)原始信号波形如下:
图(六)
(2)加单频余弦信号
图(七)
(3)加多频余弦信号
图(八)
(4)加高斯白噪声的波形:
图(九)
(5)低通滤波器的设计波形对比分析:
图(十)
图(十一)
(5)高通的滤波器的设计分析对比:
图(十二)
图(十三)
(6)带通滤波器的设计分析对比
图(十四)
图(十五)
(7)带阻的滤波器的设计分析对比:
图(十六)
图(十七)
五、总结
这次课程设计主要的内容是让我们利用MATLAB软件根据不同的加噪波设置滤波器,通过这次课程设计让我们对数字信号滤波器的设置掌握的更加深刻同时对MATLAB软件的应用也更加的熟练。
我的题目是语音信号的采集、语音信号分析、噪声合成、设置FIR的哈明窗滤波器。
在看到课题时有些搞不懂方向,毕竟数字信号处理的课程是上个学期学的记忆不是很深刻了。
查了半天资料后才初步有了一些了解,但是还是属于半懂半不懂的状态开始了我的实验。
刚开始的时候是按照老师给的程序开始慢慢的调试,刚开始的时候在加单频余弦信号的语音信号波形不能显示出来,提示错误:
x3=x1+d处有错误,自己不知道到底哪里出了错误,最后在老师的指导下才发现自己在采集语音信号时不是单弦信号,那样造成x3和x1不是同种类型的波形故此处出了错误,开始自己完全不知道如何去解决和看分析这种错误,当出现错误是自己应该及时去分析x3和x1的值有什么不同才会出错。
在设置滤波器时我注意了,要根据不同的加噪波设置滤波器,如果加的是高斯白噪声那么噪声怎么样设置都是不会滤去的此时用带通效果相对会好一些,如果加的是低频的加单频余弦信号时用高通滤波器可以滤去噪音,如果是高频的则用低通滤波器,如果加的是多频的余弦信号时则用带阻或者带通滤波器滤去噪音。
在设置滤波器时不同的窗函数设置是不同,开始设置时我就是根据自己的理解一个一个去调节频率,这样做虽然可以得到效果较好的波形但是工作量确实很大而且我自己没真正的懂得为什么那么设置频率才是最佳的,后来答辩的时候老师问了我一个问题我设置的波N是多少,我说就是程序上计算出来的自己没去看,老师说如果你设置一个滤波器连是几阶的窗函数都不知道怎么设置波形的。
后来我回去自习看了书才发现设置FIR滤波器的关键就是根据要求找N个傅立叶级数系数h(n).。
N是根据过渡带宽度Bt求出的,那么再设置滤波器的频率时应该是根据N去调节频率。
再接下来的滤波器的设置时我就先把书上的原理弄透彻了才去写代码而不是盲目的因做课设而做课设。
这次实验让我收获颇丰,虽然老师的答辩让我们觉得出乎意料但是实际上是因为我们自己没有真正的对书上的知识理解透彻,只要以为做出来就可以了。
课设的目的不是让我们完成一个课程设计而是让我们将书本的知识掌握透彻学会分析和处理问题。
六、附件
(1)低通滤波器的设置:
[x1,fs,bits]=wavread('f:
/肖彬2');
%sound(x1,fs,bits);
y1=fft(x1,32768);
n=(fs/32768)*[1:
32768];
figure
(1)
subplot(3,2,1)
plot(x1);
title('原始语音信号时域波形');
subplot(3,2,2)
plot(abs(y1));
title('原始语音信号频谱')
N=length(x1)-1;
t=0:
1/fs:
N/fs;
d=[0.8*cos(2*pi*5000*t)]';
x3=x1+d;
%sound(x3,fs,bits);
subplot(3,2,3)
plot(x3)
title('加单频余弦信号的语音信号时域波形')
y3=fft(x3,32768);
subplot(3,2,4)
plot(abs(y3));
title('加单频余弦信号的语音信号频谱')
fp=500,fc=1000;%设置通带频率和阻带频率,单位是Hz
wp=2*pi*fp/fs;
ws=2*pi*fc/fs;
Bt=ws-wp;%转化为数字频率求过渡带宽
M=ceil(6.6*pi/Bt)-1;%求滤波器长度
wc=(wp+ws)/2/pi;%理想滤波器通带截止频率
hn=fir1(M,wc);%理想低通滤波器脉冲响应并形成了哈明函数
X=conv(hn,x3);%过滤后的信号
sound(X,fs,bits);
X1=fft(X,32768)
subplot(325);plot(X);title('处理后的信号波形');
subplot(326);plot(n(1:
32768),abs(X1(1:
32768)));;title('处理后的信号频谱')
[h,w]=freqz(hn,1);
figure(3)
subplot(211)
plot(w/pi,abs(h));
title('FIR低通滤波器的幅频')
grid;
subplot(212)
plot(w/pi,angle(h));
title('FIR低通滤波器的相频')
grid;
(2)高通滤波器:
[x1,fs,bits]=wavread('f:
/肖彬2');
%sound(x1,fs,bits);
y1=fft(x1,32768);
n=(fs/32768)*[1:
32768];
figure
(1)
subplot(3,2,1)
plot(x1);
title('原始语音信号时域波形');
subplot(3,2,2)
plot(abs(y1));
title('原始语音信号频谱')
N=length(x1)-1;
t=0:
1/fs:
N/fs;
d=[0.8*cos(2*pi*500*t)]';
x3=x1+d;
%sound(x3,fs,bits);
subplot(3,2,3)
plot(x3)
title('加单频余弦信号的语音信号时域波形')
y3=fft(x3,1024);
subplot(3,2,4)
plot(abs(y3));
title('加单频余弦信号的语音信号频谱')
fp=2200,fc=4000;%设置通带频率和阻带频率,单位是Hz
wp=2*pi*fp/fs;
ws=2*pi*fc/fs;
Bt=ws-wp;%转化为数字频率求过渡带宽
M=ceil(6.6*pi/Bt)-1;%求滤波器长度
wc=(wp+ws)/2/pi;%理想滤波器通带截止频率
hn=fir1(M,wc,'high');%理想高通滤波器脉冲响应并形成了哈明函数
X=conv(hn,x3);%过滤后的信号
sound(X,fs,bits);
X1=fft(X,32768)
subplot(325);plot(X);title('处理后的信号波形');
subplot(326);plot(n(1:
32768),abs(X1(1:
32768)));;title('处理后的信号频谱')
[h,w]=freqz(hn,1);
figure(3)
subplot(211)
plot(w/pi,abs(h));
title('FIR高通滤波器的幅频')
grid;
subplot(212)
plot(w/pi,h);
title('FIR高通滤波器的相频')
grid;
(3)带通滤波器:
[x1,fs,bits]=wavread('f:
/肖彬2');
%sound(x1,fs,bits);
y1=fft(x1,32768);
n=(fs/32768)*[1:
32768];
figure(4)
subplot(3,2,1)
plot(x1);
title('原始语音信号时域波形');
subplot(3,2,2)
plot(abs(y1));
title('原始语音信号频谱')
x2=awgn(x1,10);
%sound(x2,fs,bits)
y2=fft(x2,32768);
subplot(3,2,3)
plot(x2);
title('加高斯白噪声语音信号的时域波形')
subplot(3,2,4)
plot(abs(y2));
title('加高斯白噪声语音信号的频谱')
f1s=500;f1p=1000;f2p=3000;f2s=3500
Bt=(f1p*2/fs-f1s*2/fs)*pi;
N1=ceil(6.1*pi/Bt);
wn1=[(f1s+f1p)/2,(f2s+f2p)/2];
wn=wn1*2/fs
hn=fir1(N1-1,wn);%带通滤波器脉冲响应并形成了哈明函数
X=conv(hn,x1);%过滤后的信号
sound(X,fs,bits);
X1=fft(X,32768)
subplot(325);plot(X);title('处理后的信号波形');
subplot(326);plot(n(1:
32768),abs(X1(1:
32768)));;title('处理后的信号频谱')
[h,w]=freqz(hn,1);
figure(3)
%subplot(211)
plot(w/pi,abs(h));
title('FIR带通滤波器的幅频')
grid;
(4)带阻滤波器:
[x1,fs,bits]=wavread('f:
/肖彬2');
sound(x1,fs,bits);
y1=fft(x1,32768);
n=(fs/32768)*[1:
32768];
figure(4)
subplot(3,2,1)
plot(x1);
title('原始语音信号时域波形');
subplot(3,2,2)
plot(abs(y1));
title('原始语音信号频谱')
N=length(x1)-1;
T=0:
1/fs:
N/fs;
d=[0.8*cos(2*pi*1000*T)]';
e=[0.8*cos(2*pi*500*T)]';
x2=x1+d+e;
y2=fft(x2,32768);
%sound(x2,fs)
subplot(3,2,3)
plot(x2)
title('加多频余弦信号的语音信号时域波形')
subplot(3,2,4)
plot(abs(y2(1:
32768)));
title('加多频余弦信号的语音信号的频谱')
f1s=400;f1p=1100;f2p=2000;f2s=2700
Bt=(f1p*2/fs-f1s*2/fs)*pi;
N1=ceil(6.1*pi/Bt);
wn1=[(f1s+f1p)/2,(f2s+f2p)/2];
wn=wn1*2/fs
hn=fir1(N1-1,wn,'stop');%带阻滤波器脉冲响应并形成了哈明函数
X=conv(hn,x1);%过滤后的信号
%sound(X,fs,bits);
X1=fft(X,32768)
subplot(325);plot(X);title('处理后的信号波形');
subplot(326);plot(n(1:
32768),abs(X1(1:
32768)));;title('处理后的信号频谱')
[h,w]=freqz(hn,1);
figure(3)
%subplot(211)
plot(w/pi,abs(h));
title('FIR带阻滤波器的幅频')
grid;
七、评分表
计算机与通信学院课程设计评分表
课题名称:
项目
评价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
教师签名:
日期:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字信号 滤波 设计 要点