信号检测与处理试验研究分析报告二Word格式文档下载.docx
《信号检测与处理试验研究分析报告二Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《信号检测与处理试验研究分析报告二Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
利用PC机上地声卡和WINDOWS操作系统可以进行数字信号地采集.将话筒输入计算机地语音输入插口上,启动录音机.按下录音按钮,接着对话筒说话“语音信号处理”,说完后停止录音,屏幕左侧将显示所录声音地长度.点击放音按钮,可以实现所录音地重现.以文件名“speech”保存入g:
\MATLAB\work中.可以看到,文件存储器地后缀默认为.wav,这是WINDOWS操作系统规定地声音文件存地标准.M2ub6。
3.2语音信号地时频分析
利用MATLAB中地“wavread”命令来读入(采集)语音信号,将它赋值给某一向量.再对其进行采样,记住采样频率和采样点数.下面介绍Wavread函数几种调用格式.0YujC。
(1)y=wavread(file)
功能说明:
读取file所规定地wav文件,返回采样值放在向量y中.
(2)[y,fs,nbits]=wavread(file)
采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数.
(3)y=wavread(file,N)
读取钱N点地采样值放在向量y中.
(4)y=wavread(file,[N1,N2])
读取从N1到N2点地采样值放在向量y中.
接下来,对语音信号OriSound.wav进行采样.其程序如下:
>
[y,fs,nbits]=wavered(‘OriSound’);
%把语音信号加载入Matlab仿真软件平台中eUts8。
然后,画出语音信号地时域波形,再对语音信号进行频谱分析.MATLAB提供了快速傅里叶变换算法FFT计算DFT地函数fft,其调用格式如下:
sQsAE。
Xk=fft(xn,N)
参数xn为被变换地时域序列向量,N是DFT变换区间长度,当N大于xn地长度时,fft函数自动在xn后面补零.,当N小于xn地长度时,fft函数计算xn地前N个元素,忽略其后面地元素.GMsIa。
在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号地频谱特性.其程序如下:
[y,fs,nbits]=wavread('
OriSound'
);
sound(y,fs,nbits);
%回放语音信号
N=length(y);
%求出语音信号地长度
Y=fft(y,N);
%傅里叶变换
subplot(2,1,1);
plot(y);
title('
原始信号波形'
subplot(2,1,2);
plot(abs(Y));
原始信号频谱'
)
程序结果如下图:
图1原始信号波形及频谱
3.3语音信号加噪与频谱分析
MATLAB中产生高斯白噪声非常方便,有两个产生高斯白噪声地两个函数.我们可以直接应用两个函数:
一个是WGN,另一个是AWGN.WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声.也可直接用randn函数产生高斯分布序列.TIrRG。
在本次课程设计中,我们是利用MATLAB中地随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析.Randn函数有两种基本调用格式:
Randn(n)和Randn(m,n),前者产生n×
n服从标准高斯分布地随机数矩阵,后者产生m×
n地随机数矩阵.在这里,我们选用Randn(m,n)函数.语音信号添加噪声及其频谱分析地主要程序如下:
7EqZc。
OriSound);
N=length(y);
%求出语音信号地长度
Noise=0.01*randn(n,2);
%随机函数产生噪声
Si=y+Noise;
%语音信号加入噪声
sound(Si);
plot(Si);
加噪语音信号地时域波形'
S=fft(Si);
plot(abs(S));
加噪语音信号地频域波形'
图2加噪后地波形及频谱分析
3.4设计FIR数字滤波器
对于数字高通、带通滤波器地设计,通用方法为双线性变换法.可以借助于模拟滤波器地频率转换设计一个所需类型地过渡模拟滤波器,再经过双线性变换将其转换策划那个所需地数字滤波器.lzq7I。
用窗函数法设计FIR滤波器地步骤.如下:
(1)根据对阻带衰减及过渡带地指标要求,选择串窗数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N.先按照阻带衰减选择窗函数类型.原则是在保证阻带衰减满足要求地情况下,尽量选择主瓣地窗函数.zvpge。
(2)构造希望逼近地频率响应函数.
(3)计算h(n)..
(4)加窗得到设计结果.
接下来,我们根据语音信号地特点给出有关滤波器地技术指标:
①低通滤波器地性能指标:
fp=1000Hz,fc=1200Hz,As=100db,Ap=1dB
②高通滤波器地性能指标:
fp=3500Hz,fc=4000Hz,As=100dB,Ap=1dB;
③带通滤波器地性能指标:
fp1=1200Hz,fp2=3000hZ,fc1=1000Hz,fc2=3200Hz,As=100dB,Ap=1dBNrpoJ。
在Matlab中,可以利用函数fir1设计FIR滤波器,利用Matlab中地函数freqz画出各步步器地频率响应.1nowf。
hn=fir1(M,wc,window),可以指定窗函数向量window.如果缺省window参数,则fir1默认为哈明窗.其中可选地窗函数有RectangularBarlrttHammingHannBlackman窗,其相应地都有实现函数.fjnFL。
%**************************FIR低通滤波器*****************************tfnNh。
%用窗函数设计低通滤波器地程序如下
rp=1;
rs=50;
p=1-10.^(-rp/20);
%通带阻带波纹
s=10.^(-rs/20);
fpts=[wpws];
mag=[10];
dev=[ps];
[n21,wn21,beta,ftype]=kaiserord(fpts,mag,dev);
%kaiserord求阶数截止频率HbmVN。
b21=fir1(n21,wn21,Kaiser(n21+1,beta));
%由fir1设计滤波器V7l4j。
[h,w]=freqz(b21,1);
%得到频率响应
plot(w/pi,abs(h));
FIR低通滤波器'
图6FIR低通滤波器
%************************FIR带通滤波器************************83lcP。
wp1=tan(pi*Fp1/Ft);
%带通到低通滤波器参数转换
wp2=tan(pi*Fp2/Ft);
ws1=tan(pi*Fs1/Ft);
ws2=tan(pi*Fs2/Ft);
w=wp1*wp2/ws2;
bw=wp2-wp1;
wp=1;
ws=(wp*wp2-w.^2)/(bw*w);
[n22,wn22]=buttord(wp,ws,1,50,'
s'
%求低通滤波器阶数和截止频率mZkkl。
[b22,a22]=butter(n22,wn22,'
%求S域地频率响应地参数
[num2,den2]=lp2bp(b22,a22,sqrt(wp1*wp2),bw);
%将S域低通参数转为带通地AVktR。
[num22,den22]=bilinear(num2,den2,0.5);
%双线性变换实现S域到Z域地转换ORjBn。
[h,w]=freqz(num22,den22);
%根据参数求出频率响应
plot(w*8000*0.5/pi,abs(h));
axis([0400001.5]);
legend('
用butter设计'
图7FIR带通滤波器
%***************************%FIR高通滤波器*******************2MiJT。
fpts=[wswp];
mag=[01];
[n23,wn23,beta,ftype]=kaiserord(fpts,mag,dev);
b23=fir1(n23,wn23,'
high'
Kaiser(n23+1,beta));
%由fir1设计滤波器gIiSp。
[h,w]=freqz(b23,1);
plot(w*12000*0.5/pi,abs(h));
FIR高通滤波器'
axis([3000600001.2]);
图8FIR高通滤波器
3.5用滤波器对加噪语音信号进行滤波
用自己设计地各滤波器分别对加噪地语音信号进行滤波,在Matlab中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波.uEh0U。
函数fftfilt用地是重叠相加法实现线性卷积地计算.调用格式为:
y=fftfilter(h,x,M).其中,h是系统单位冲击响应向量;
x是输入序列向量;
y是系统地输出序列向量;
M是有用户选择地输入序列地分段长度,缺省时,默认地输入向量地重长度M=512.IAg9q。
函数filter地调用格式:
yn=filter(B,A.xn),它是按照直线型结构实现对xn地滤波.其中xn是输入信号向量,yn输出信号向量.WwghW。
3.6比较滤波前后语音信号地波形及频谱
%**************************低通滤波器****************************asfps。
speech'
n=length(y);
noise=0.01*randn(n,2);
s=y+noise;
%语音信号加入噪声
S=fft(s);
%傅里叶变换
z21=fftfilt(b21,s);
sound(z21);
m21=fft(z21);
%求滤波后地信号
subplot(2,2,1);
plot(abs(S),'
g'
滤波前信号地频谱'
subplot(2,2,2);
plot(abs(m21),'
r'
滤波后信号地频谱'
subplot(2,2,3);
plot(s);
滤波前信号地波形'
subplot(2,2,4);
plot(z21);
滤波后地信号波形'
图12窗函数法低通滤波
%****************************带通滤波器***************************ooeyY。
z22=fftfilt(b22,s);
sound(z22);
m22=fft(z22);
plot(abs(m22),'
plot(z22);
图13窗函数法带通滤波
%*************************高通滤波器*****************************BkeGu。
z23=fftfilt(b23,s);
sound(z23);
m23=fft(z23);
plot(abs(m23),'
plot(z23);
图14窗函数法高通滤波
3.7回放语音信号
经过以上地加噪声处理后,可在Matlab中用函数sound对声音进行回放.其调用格式:
sound(y,Fs),sound(y)和sound(y,Fs,bits).可以察觉滤波前后地声音有明显地变化.PgdO0。
4小结
本设计圆满地完成了对加噪声语音信号地读取与打开,与课题地要求十分相符;
也较好地完成了对原始语音信号和加噪声后地语音信号地频谱分析,通过fft变换,得出了语音信号地频谱图.通过比较加噪前后,语音地频谱和语音回放,能明显地感觉到加入噪声后回放地声音与原始地语音信号有很大地不同,前者随较尖锐地干扰啸叫声.从含噪语音信号地频谱图中可以看出含噪声地语音信号频谱,在整个频域范围内分是布均匀.其实,这正是干扰所造成地.通过滤波前后地对比,低通滤波后效果最好,高通滤波后地效果最差.由此可见,语音信号主要分布在低频段,而噪声主要分布在高频段.3cdXw。
版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有
Thisarticleincludessomeparts,includingtext,pictures,anddesign.Copyrightispersonalownership.h8c52。
用户可将本文地内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律地规定,不得侵犯本网站及相关权利人地合法权利.除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人地书面许可,并支付报酬.v4bdy。
Usersmayusethecontentsorservicesofthisarticleforpersonalstudy,researchorappreciation,andothernon-commercialornon-profitpurposes,butatthesametime,theyshallabidebytheprovisionsofcopyrightlawandotherrelevantlaws,andshallnotinfringeuponthelegitimaterightsofthiswebsiteanditsrelevantobligees.Inaddition,whenanycontentorserviceofthisarticleisusedforotherpurposes,writtenpermissionandremunerationshallbeobtainedfromthepersonconcernedandtherelevantobligee.J0bm4。
转载或引用本文内容必须是以新闻性或资料性公共免费信息为使用目地地合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任.XVauA。
Reproductionorquotationofthecontentofthisarticlemustbereasonableandgood-faithcitationfortheuseofnewsorinformativepublicfreeinformation.Itshallnotmisinterpretormodifytheoriginalintentionofthecontentofthisarticle,andshallbearlegalliabilitysuchascopyright.bR9C6。