课程设计报告语音数字信号处理

更新时间:2024-01-20 20:29:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计报告

----语音数字信号处理

1.设计摘要

语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴的学科,是目前发展最为迅速的信息科学研究领域的核心技术之一。通过语音传递信息是人类最重要、最有效、最常用和最方便的交换信息形式。同时,语言也是人与机器之间进行通信的重要工具,它是一种理想的人机通信方式,因而可为信息处理系统建立良好的人机交互环境,进一步推动计算机和其他智能机器的应用,提高社会的信息化程度。 语音信号处理是一门新兴的学科,同时又是综合性的多学科领域和涉及面很广的交叉学科。虽然从事这一领域研究的人员主要来自信号与信息处理及计算机应用等学科,但是它与语音学、语言学、声学、认知科学、生理学、心理学等许多学科也有非常密切的联系。

2.设计内容

(1).首先录制好一段自己的语音,用Matlab分别设计好2种类型的滤波器:低通型、高通型。 (2).用Matlab将语音信号进行采样,并分别将其通过所设计的2种滤波器。 (3).用Matlab自带的语音返回函数收听滤波后的语音信号,分析并比较其与原语音信号的差异。

3、 设计原理

语音信号时一种非平稳的时变信号,它带着各种信息。在语音编码、语音合成、语音识别和语音增强等语音处理中无一例外需要提取语音中包含的各种信息。语音信号分析的目的就在于方便有效的提取并表示语音信号所携带的信息。 (1)语音信号的时域

录制一段wav格式的录音,用matlab中的wavread读出该录音,在matlab的图形窗口中就可以看到该语音的时域图。 (2)语音信号的频域分析

信号的傅里叶表示在信号的分析和处理中起着重要的作用。因为对于线性系统来说,可以很方便地确定其对正弦或复指数和的响应,所以傅里叶分析方法能完善地解决许多信号分析和处理问题。另外,傅里叶表示使信号的某些特性变得更明显,因此,它能更深入地说明信号的各项宏物理现象。

由于语音信号时随着时间变化的,通常认为,语音是一个受准周期脉冲或随机噪声源激励的线性系统的输出。输出频谱是声道系统频率响应与激励源频谱的乘积。身份到系统的频率响应及激励源都是随时间变化的,因此一般标准的傅里叶表示虽然适用于周期及平稳随机信号的表示,但不能直接用于语音信号。由于语音信号可以认为在短时间内,近似不变,因而可以采用短时分析法。

4.设计的matlab程序代码 Matlab代码如下:

(1)原始信号的时频域分析

clc clear

[x,fs,nbits]=wavread('E:matlab\\bin\\dsp.wav'); figure(1) subplot(2,1,1) plot(x);grid

title('original time singal')

xlabel('time t');ylabel('voice margin') y=fft(x,length(x)); y1=fftshift(y); subplot(2,1,2)

plot([-fs/2:fs/length(x): fs/2-fs/length(x)],abs(y1));grid title('original singal Spectrum') xlabel('\\omega/\\');ylabel('margin')

(2)低通滤波器的设计及滤波后的信号分析

%lowpass filter

fc=input('stopband frequency fc= '); fp=input('passbandfreduencyfp= ') Rs=input('stopband attenuation Rs= '); Rp=input('passband attenuation Rp= '); Wp=2*pi*fp/fs;Ws=2*pi*fc/fs; dw=abs(Wp-Ws); M=ceil(3.11*pi/dw); Wc=(Wp+Ws)/(2*pi); n=-M:1:M; h=Wc*sinc(Wc*n); Wn=hann(2*M+1);N=2*M+1; b=fir1(N,Wc,hann(N+1)); h1=h.*Wn';

[H,w]=freqz(b,1,512); figure(2) subplot(2,2,1)

plot(w/pi,20*log10(abs(H)));grid title('filter Spectrum') x1=filter(b,1,x); subplot(2,2,2) plot(x1);grid

title('经过低通滤波器的时域图')

xlabel('time t');ylabel('margin') subplot(2,2,3)

plot([-fs/2:fs/length(x):fs/2-fs/length(x)],abs(fftshift(fft(x))));

title('经过低通滤波器的频域图')

(3)高通滤波器的设计及滤波后的信号分析

%highpass filter

fc1=input('高通截止频率= '); N2=2*pi*3.1/(0.1*pi) wc2=2*pi*fc/fs; N2=N2+mod(N2,2); Window=hanning(N2+1);

b1=fir1(N2,wc2/pi,'high',Window); figure(3)

freqz(b1,1,1024);

title('highpassfilteer Spectrum'); x2 = filter(b1,1,x); figure(4) subplot(2,1,1) plot(x2);

title('经过高通滤波器的时域图'); subplot(2,1,2)

plot([-fs/2:fs/length(x):fs/2-fs/length(x)],abs(fftshift(fft(x2)))); title('经过高通滤波器的频域图') sound(x,fs,nbits);%原信号

sound(x1,fs,nbits);%通过低通后的信号 sound(x2,fs,nbits); %通过高通后的信号

5.设计结果分析

(1)原始信号的时域图如下:

original time singal1voice margin0.50-0.5-102468time toriginal singal Spectrum200015001012141618x 104margin10005000-2.5-2-1.5-1-0.500.5\\omega/\\11.522.5x 104

(2)、低通滤波器的频域图及滤波后的信号分析

在该设计中输入fc=200,fp=600,Rs=45,Rp=0.2,参数可以自己确定;得到以下的图形

filter Spectrum1000-100-200-30000.5110.5经过低通滤波器的时域图margin0-0.5-100.51time t1.5x 1025经过低通滤波器的频域图2000150010005000-4-202x 1044

(3)高通滤波器的频域图及滤波后的信号分析

该设计中输入高通截止频率fc1=4000,参数可以自己确定,得到如下的图形

highpass filteer Spectrum1Magnitude (dB)0-1-2-300.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.910Phase (degrees)-2000-4000-600000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)经过高通滤波器的时域图0.91210-1-2024681012141618x 10经过高通滤波器的频域图150010005000-2.54-2-1.5-1-0.500.511.522.5x 104

(4)滤波后分析

通过低通滤波器的声音比原始的声音要低沉得多,没有原始声音那么的清晰;而通过高通滤波器的声音要比原始的声音尖锐一点,同时它的噪声的干扰也明显的小了。 6.总结与体会

通过本次的课程设计,对语音信号有了一个较为实际的、全新认识。对于Matlab,也让我感受到了matlab的神奇魅力,以后在生活工作中都会可能要用到它。

(4)滤波后分析

通过低通滤波器的声音比原始的声音要低沉得多,没有原始声音那么的清晰;而通过高通滤波器的声音要比原始的声音尖锐一点,同时它的噪声的干扰也明显的小了。 6.总结与体会

通过本次的课程设计,对语音信号有了一个较为实际的、全新认识。对于Matlab,也让我感受到了matlab的神奇魅力,以后在生活工作中都会可能要用到它。

本文来源:https://www.bwwdw.com/article/eiao.html

Top