数字信号课设.docx
《数字信号课设.docx》由会员分享,可在线阅读,更多相关《数字信号课设.docx(26页珍藏版)》请在冰豆网上搜索。
数字信号课设
一、课程设计的性质与目的
《数字信号处理》课程是通信专业的一门重要专业基础课,是信息的数字化处理、存储和应用的基础。
通过该课程的课程设计实践,使学生对信号与信息的采集、处理、传输、显示、存储、分析和应用等有一个系统的掌握和理解;巩固和运用在《数字信号处理》课程中所学的理论知识和实验技能,掌握数字信号处理的基础理论和处理方法,提高分析和解决信号与信息处理相关问题的能力,为以后的工作和学习打下基础。
数字滤波器是一种用来过滤时间离散信号的数字系统,通过对抽样数据进行数学处理来达到频域滤波的目的。
根据其单位冲激响应函数的时域特性可分为两类:
无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。
二、课程设计题目
课程设计题目分为2个方向,每班选做方向一的同学约占2/3,选做方向二的约占1/3。
方向一:
数字滤波器设计及在语音信号分析中的应用。
步骤:
1、语音信号采集
录制一段课程设计学生的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。
2、语音信号分析
使用MATLAB绘出采样后的语音信号的时域波形和频谱图。
根据频谱图求出其带宽,并说明语音信号的采样频率不能低于多少赫兹。
3、含噪语音信号合成
在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:
(1)白噪声;
(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰);(4)其它干扰,可设置为低频、高频、带限噪声,或Chirp干扰、冲激干扰。
绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。
4、数字滤波器设计及滤波,完成以下题目中的一个
给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定)例如:
通带截止频率wp=0.25*pi,阻通带截止频率ws=0.3*pi;通带最大衰减Rp=1dB;阻带最小衰减Rs=15dB,每个题目至少设计出5个用不同方法的不同类型滤波器。
题目
(1):
采用窗函数法与等波纹法分别设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析(或解释)。
题目
(2):
采用双线性变换法与脉冲响应不变法,分别利用不同的原型低通滤波器(Butterworth型与切比雪夫I型)来设计各型IIR滤波器(低通、高通、带通、带阻中的至少3种类型),绘出滤波器的频域响应;并用这些数字滤波器对含噪语音信号分别进行滤波处理,比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析(或解释)。
5、回放语音信号
对滤波后的语音信号进行回放,感觉滤波前后语音信号的变化。
6、设计一个语音信号分析与处理系统界面(选作)
利用MATLAB的界面设计功能,设计一个MATLAB环境下的人机交互界面,完成上述滤波器的设计及滤波过程,要求能够接收输入的设计参数,查看设计结果及滤波结果。
方向二:
数字滤波器设计及在心电信号滤波中的应用。
步骤:
1、心电信号采集
心电信号作为心脏电活动在人体体表的表现,信号一般比较微弱,幅度在10μV~5mV,频率为0.05~100Hz。
在心电信号的采集、放大、检测及记录过程中,有来自外界的各种干扰。
记录一段时间内的人体心电信号波形,要求长度不小于10秒,并对记录的信号进行数字化,保存为数据文件;这里,请同学们使用美国的MIT/BIH心电原始数据,由实验老师给出一定长度的的心电原始数据,数据保存在文件“a01.txt~a10.txt”中,在MATLAB中通过如下语句读取:
%从当前路径下的a01.txt文件读取心电原始数据到变量a01中,a01为二维数据,第一列%为心电信号时间,第二列为心电信号幅度。
load(‘a01.txt’);
2、心电信号分析
使用MATLAB绘出数字化后的心电信号的时域波形和频谱图。
根据频谱图求出其带宽,并说明心电信号的基本特征。
3、含噪心电信号合成
在MATLAB软件平台下,给原始的心电信号叠加上噪声或干扰,干扰类型分为如下几种:
(1)白噪声;
(2)工频干扰(50Hz);(3)谐波干扰(二次、三次谐波为主,分别为100Hz、150Hz);(4)其它干扰,可设置为低频、高频、带限噪声,或冲激干扰。
绘出叠加噪声后的心电信号时域和频谱图,在视觉上与原始心电信号图形对比,绘出其时域波形差,分析频域基本特征变化。
4、数字滤波器设计及滤波,完成以下题目中的一个
给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定)例如:
通带截止频率wp=0.25*pi,阻通带截止频率ws=0.3*pi;通带最大衰减Rp=1dB;阻带最小衰减Rs=15dB,每个题目至少设计出5个用不同方法的不同类型滤波器。
题目
(1):
采用窗函数法与等波纹法分别设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加干扰前后的心电信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析(或解释)。
题目
(2):
采用双线性变换法与脉冲响应不变法,分别利用不同的原型低通滤波器(Butterworth型与切比雪夫I型)来设计各型IIR滤波器(低通、高通、带通、带阻中的至少3种类型),绘出滤波器的频域响应;并用这些数字滤波器对含噪心电信号分别进行滤波处理,比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析(或解释)。
5、心电信号波形观察、频谱观察
对滤波后的心电信号观察其时域、频域特征变化。
绘出滤波后、滤波前、加噪后三个心电信号的差值波形,观察相互间的差异性;同时,分析频谱变化。
学生也可选用持续时间更长的心电原始数据,加上干扰后按上述要求设计滤波器。
三、课程设计要求
1、在一周内学生须上机16小时以上,程序调试完后,须由指导老师在机器上检查运行结果,经教师认可后的源程序可通过打印机输出,并请教师在程序清单上签字。
2、课程设计报告内容和格式:
设计题目,设计的详细步骤,设计过程中的结果、图形等,设计总结。
3、每组每人必须独立完成,成绩的考核按设计结果、答辩成绩及课程设计报告来综合评定。
成绩分为优、良、中、及格、不及格五级分评定。
4、指导教师:
张细政等。
四、设计进度安排
通信工程0981:
17周周二上午、下午,E-513,任务讲解与布置,查找相关资料,准备课程设计,学生上机,按任务要求进行课程设计;
17周周三上午、下午,E-513,学生上机,按任务要求进行课程设计;
17周周四上午、下午,E-513,学生上机,按任务要求进行课程设计;
17周周五上午,E-513,学生上机,按任务要求进行课程设计;
18周周一上午,E-513,学生上机,按任务要求进行课程设计;
18周周四上午,E-513,学生完成任务,答辩;
18周周六、周日,撰写课程设计报告;
19周周一,提交课程设计报告。
五、课题的主要功能
5.1问题的描述
自己录取一段语音信号,在MATLAB平台下,进行时域和频域的分析,然后给原始的语音信号叠加上噪声,噪声类型分为如下几种:
(1)白噪声;
(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰);(4)其它干扰,可设置为低频、高频、带限噪声,或Chirp干扰、冲激干扰。
同样进行时域和频域的分析,在根据这些图谱,分析数据,然后设计不同滤波器,滤去噪音。
绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。
5.2功能要求
首先,各同学采集自身的语音信号,在MATLAB软件平台下绘出采样后的语音信号的时域波形和频谱图;然后,给原始的语音信号叠加上噪声,绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比;再采用窗函数法与等波纹法(至少采用两种以上不同的窗函数)分别设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析(或解释)。
最后对滤波后的语音信号进行回放,感觉滤波前后语音信号的变化。
整个设计思路的设计原理示意图如图1所示:
给定滤波器的规一化性能指标(参考指标,实际中依据每个同学所叠加噪声情况而定)例如:
通带截止频率wp=0.25*pi,阻通带截止频率ws=0.3*pi;通带最大衰减Rp=1dB;阻带最小衰减Rs=15dB,每个题目至少设计出5个用不同方法的不同类型滤波器。
题目
(1):
采用窗函数法与等波纹法分别设计各型FIR滤波器(低通、高通、带通、带阻中的至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘出滤波器的频域响应,绘出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;在相同的性能指标下比较各方法的滤波效果,并从理论上进行分析(或解释)。
题目
(2):
采用双线性变换法与脉冲响应不变法,分别利用不同的原型低通滤波器(Butterworth型与切比雪夫I型)来设计各型IIR滤波器(低通、高通、带通、带阻中的至少3种类型),绘出滤波器的频域响应;并用这些数字滤波器对含噪语音信号分别进行滤波处理,比较不同方法下设计出来的数字滤波器的滤波效果,并从理论上进行分析(或解释)。
六、设计原理
6.1.用窗函数法设计FIR滤波器
依据所叠加噪声的情况给定滤波器规一化性能指标,分别采用凯塞窗函数和汉宁窗函数法设计FIR数字低通、高通、带通、带阻(至少3种类型)来对叠加噪声前后的语音信号进行滤波处理,绘滤波器的频谱图,通过滤波前后的频谱图来比较各滤波器的滤波效果。
根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)。
根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:
在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N点,采用离散傅里叶反变换(IDFT)即可求出。
用窗函数wd(n)将hd(n)截断,并进行加权处理,得到
如果要求线性相位特性,则h(n)还必须满足:
根据上式中的正、负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。
要根据所设计的滤波特性正确选择其中一类。
例如,要设计线性相位低通特性可选择h(n)=h(N-1-n)一类,而不能选h(n)=-h(N-1-n)一类。
验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。
七、课题的功能模块的划分
7.1、语音信号的采样录音
录制一段课程设计自身的语音信号并保存为文件,要求长度不小于10秒,并对录制的信号进行采样;录制时可以使用Windows自带的录音机,或者使用其它专业的录音软件,录制时需要配备录音硬件(如麦克风),为便于比较,需要在安静、干扰小的环境下录音。
录音时,可以用windows自带的录音机,如果对信号相对要求比较高,也可以用比较专业的录音工具,录取后的格式为wav。
一般要求录音的时间不少于10秒钟,处于安静的环境下进行。
用自带录音机的话,按“开始”-“程序”-“附件”-“娱乐”-“录音机”的顺序操作打开Windows系统中的录音机软件。
如图所示:
7.2、含噪语音信号合成
在MATLAB软件平台下,给原始的语音信号叠加上噪声,噪声类型分为如下几种:
(1)白噪声;
(2)单频噪色(正弦干扰);(3)多频噪声(多正弦干扰);(4)其它干扰,可设置为低频、高频、带限噪声,或Chirp干扰、冲激干扰。
绘出叠加噪声后的语音信号时域和频谱图,在视觉上与原始语音信号图形对比,也可通过Windows播放软件从听觉上进行对比,分析并体会含噪语音信号频谱和时域波形的改变。
7.3、对数据进行分析,并设计滤波器进行滤波
通过MATLAB平台,对原始信号的时域和频域图谱进行分析,同时也对加噪后的信号进行时域和频域的分析,算出要设计滤波器的各性能指标,综合分析,设计相应的滤波器。
7.4、回放语音信号
对滤波后的语音信号进行回放,感觉滤波前后语音信号的变化。
7.5、设计一个语音信号分析与处理系统界面
利用MATLAB的界面设计功能,设计一个MATLAB环境下的人机交互界面,完成上述滤波器的设计及滤波过程,要求能够接收输入的设计参数,查看设计结果及滤波结果。
八、主要功能的实现
8.1、对原始信号进行时域和频域的分析
声音选定的属性为8000Hz,字节为16位;然后在matlab软件平台下,利用wavread函数对语音信号“I\:
信号2.wav”进行采样,并画出语音信号的时域波形和频谱图,对频谱图加以分析。
具体执行程序代码如下:
[x,fs,bits]=wavread('I:
\信号2.wav');
%sound(x,fs);
n=length(x);%求语音信号的长度
dt=10.00/n;%语音信号的时间为11s
t=dt:
dt:
10.00;%将所加噪声信号的点数调整到与原始信号相同
figure
(1);
subplot(211);plot(t,x,'r');
title('原始语音信号域波形');
xlabel('时间s');ylabel('幅值y(t)');
X=fft(x,n);magY=abs(X);
f=0:
fs/n:
fs*(n-1)/n;
subplot(212);plot(f,magY,'r');
%axis([02000100]);
title('原始语音信号频谱图');
xlabel('频率Hz');ylabel('幅值magY');
8.2、含噪语音信号的合成
1)加白噪音代码如下:
d1=0.05*randn(1,n)';%白噪声信号的函数
x1=x(:
1)+d1;%噪音信号叠加
%sound(x1,fs);
figure
(2);
subplot(211);plot(t,x1,'r');
xlabel('时间s');ylabel('幅值y(t)');
title('加白噪音的语音信号时域波形');
D1=fft(x1,n);magD1=abs(D1);
f=0:
fs/n:
fs*(n-1)/n;
subplot(212);plot(f,magD1,'r');
%axis([02000100]);
xlabel('频率Hz');ylabel('幅值magY');
title('加白噪音的语音信号噪声信号频谱图');
结果如下图所示:
2)加单频正弦噪音代码如下:
d2=[0.08*sin(2*pi*5000*t)]';%加单频正弦信号信号
X2=x(:
1)+d2;%噪音信号叠加
%sound(X2,fs);
figure(3)
subplot(211);plot(t,X2);
xlabel('时间s');ylabel('幅值y(t)');
title('加单频正弦信号的语音信号时域波形')
y2=fft(X2);magT=abs(y2);
subplot(212);plot(f,magT);
%axis([02000100]);
xlabel('频率Hz');ylabel('幅值magY');
title('加单频正弦信号的语音信号号频谱');
结果如下图所示:
3)加多频正弦噪音代码如下:
d3=[0.08*sin(2*pi*20*t)]';%加多频正弦信号信号
X3=x(:
1)+d2+d3;%噪音信号叠加
%sound(X3,fs);
figure(4)
subplot(211);plot(t,X3);
xlabel('时间s');ylabel('幅值y(t)');
title('加多频正弦信号的语音信号时域波形')
y3=fft(X3);magZ=abs(y3);
subplot(212);plot(f,magZ);
%axis([02000100]);
xlabel('频率Hz');ylabel('幅值magY');
title('加多频正弦信号的语音信号频谱');
4)加chirp噪音信号代码如下:
N=length(x)-1;
e=0.5*chirp(x(:
1),x(N,1),200);%chirp噪声信号的函数
k=x(:
1)+e;
[hc,wc]=freqz(k,1,N);
abs1=abs(hc);
figure(5);
subplot(211);plot(k);
xlabel('时间s');ylabel('幅值y(t)');
title('加chirp噪音后的噪声信号时域波形');
subplot(212);plot(wc/pi,abs1);
%sound(k,fs,bits);
%axis([02000100]);
xlabel('频率Hz');ylabel('幅值magY');
title('加chirp噪音后的噪声信号频谱图');
结果显示如下:
8.3、数字滤波器的设计及滤波
1)海明窗函数设计FIR低通滤波器设计方法
%海明窗低通滤波器
%[x,fs,bits]=wavread('E:
\信号2.wav');
%n=length(x);
%dt=10.00/n;
%t=dt:
dt:
10.00;
%d3=0.05*randn(1,n);%噪声信号的函数
%x3=x(:
1)+d1;%噪音信号叠加
%sound(x3,fs);
wp=0.25*pi;ws=0.3*pi;%性能指标
wdelta=ws-wp;%过度带宽度
M=ceil(3.32*pi/wdelta);%滤波器长度
N=2*M+1;%窗口长度
wc=(ws+wp)/2;%截止频率
%win=hanming(N);%衰减不小于50dB,选择海明窗
b=fir1(N-1,wc/pi);
n1=0:
1:
N;
[hit]=impz(b,1,n1);%得到脉冲响应
[hfw]=freqz(b,1,512);%得到频率响应
X=fft(x);
figure(6);
freqz(b,1);
figure(7);
subplot(221);plot(x,'r');
xlabel('时间s');ylabel('幅值y(t)');
title('海明窗滤波器滤波前的信号波形');
subplot(222);plot(abs(X),'r');
xlabel('频率Hz');ylabel('幅值magY');
title('海明窗滤波器滤波前信号的频谱');
%axis([010000500]);
x4=fftfilt(b,x);
%sound(x4,fs);
X4=fft(x4);
subplot(223);plot(x4);
xlabel('时间s');ylabel('幅值y(t)');
title('海明窗滤波器滤波后信号的波形');
subplot(224);plot(abs(X4));
xlabel('频率Hz');ylabel('幅值magY');
title('海明窗滤波器滤波后信号的频谱');
%axis([010000500]);
结果显示如下:
2)凯塞窗函数设计FIR低通滤波器设计
%凯塞窗函数设计FIR低通滤波器
%[x,fs,bits]=wavread('信号2.wav');
%n=length(x);
%x5=x(1:
n);
%dt=10.00/n;t=dt:
dt:
10.00;
%d3=0.05*randn(1,n)';%噪声信号的函数
%x5=x(:
1)+d1;%噪音信号叠加
X5=fft(x);
fp=1000;fc=1200;As=100;Ap=1;Fs=8000;
wc=2*pi*fc/Fs;wp=2*pi*fp/Fs;wdel=wc-wp;
beta=0.112*(As-8.7);
N=ceil((As-8)/2.285/wdel);
wn=kaiser(N+1,beta);ws=(wp+wc)/2/pi;
b=fir1(N,ws,wn);
figure(8);
freqz(b,1);
y5=fftfilt(b,x);
%sound(y5,fs);
Y5=fft(x,n);
figure(9)
subplot(221);plot(x,'r');
xlabel('时间s');ylabel('幅值y(t)');
title('原语音信号滤波前的信号波形');
subplot(222);plot(abs(X5),'r');
xlabel('频率Hz');ylabel('幅值magY');
%anxis([0100001.0]);
title('原语音信号滤波前的信号频谱');
subplot(223);plot(y5);
title('原语音信号滤波后的信号波形');
xlabel('时间s');ylabel('幅值y(t)');
subplot(224);plot(abs(Y5));
xlabel('频率Hz');ylabel('幅值magY');
%anxis([0100001.0]);
title('原语音信号滤波后的信号频谱');
结果显示如下:
3)FIR带通滤波器设计
%带通滤波器设计
%[xfsbits]=wavread('I:
\信号2.wav');
%n=length(x);
%dt=10.00/n;t=dt:
dt:
10.00;
y7=x(1:
n);
Y7=fft(y7);
fp1=300;fp2=1000;fc1=283;fc2=1200;As=15;Ap=1;Fs=8000;
wp1=2*pi*fp1/Fs;wc1=2*pi*fc1/Fs;
wp2=2*pi*fp2/Fs;wc2=2*pi*fc2/Fs;
wdel=wp1-wc1;
beta=0.112*(As-8.7);
N1=ceil((As-8)/2.285/wdel);
ws=[(wp1+wc1)/2/pi,(wp2+wc2)/2/pi