语音信号处理实验报告.docx

上传人:b****2 文档编号:2310806 上传时间:2022-10-28 格式:DOCX 页数:16 大小:408.75KB
下载 相关 举报
语音信号处理实验报告.docx_第1页
第1页 / 共16页
语音信号处理实验报告.docx_第2页
第2页 / 共16页
语音信号处理实验报告.docx_第3页
第3页 / 共16页
语音信号处理实验报告.docx_第4页
第4页 / 共16页
语音信号处理实验报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

语音信号处理实验报告.docx

《语音信号处理实验报告.docx》由会员分享,可在线阅读,更多相关《语音信号处理实验报告.docx(16页珍藏版)》请在冰豆网上搜索。

语音信号处理实验报告.docx

语音信号处理实验报告

通信与信息工程学院

信息处理综合实验报告

 

班级:

电子信息工程1502班

学号

姓名

成绩

指导教师:

设计时间:

2018/10/22-2018/11/23

评语:

通信与信息工程学院

二〇一八年

实验题目:

语音信号分析与处理

一、实验内容

1.设计内容

利用MATLAB对采集的原始语音信号及加入人为干扰后的信号进行频谱分析,使用窗函数法设计滤波器滤除噪声、并恢复信号。

2.设计任务与要求

1.基本部分

(1)录制语音信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。

(2)对所录制的语音信号加入干扰噪声,并对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。

(3)分别利用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman窗几种函数设计数字滤波器滤除噪声,并画出各种函数所设计的滤波器的频率响应。

(4)画出使用几种滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化;回放语音信号。

2.提高部分

(5)录制一段音乐信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。

(6)利用MATLAB产生一个不同于以上频段的信号;画出信号频谱图。

(7)将上述两段信号叠加,并加入干扰噪声,尝试多次逐渐加大噪声功率,对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。

(8)选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。

 

二、实验原理

1.设计原理分析

本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。

 

首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用audioread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。

 

对该段合成的语音信号,分别用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman窗几种函数在MATLAB中设计滤波器对其进行滤波处理,滤波后用命令可以绘制出其频谱图,回放语音信号。

对原始语音信号、合成的语音信号和经过滤波器处理的语音信号进行频谱的比较分析。

2.语音信号的时域频域分析

在Matlab软件平台下可以利用函数audioread对语音信号进行采样,得到了声音数据变量y,同时把y的采样频率Fs=44100Hz放进了MATALB的工作空间。

上述程序是在Matlab软件中画出语音信号的时域波形(图1),回放录入声音。

从图中可以看出在时域环境下,信号呈现出3个不规则的信号峰值。

然后对语音信号进行频谱分析,在Matlab中可以利用函数fft对信号行快速傅里叶变换,得到信号的频谱图如图1所示。

3.MATLAB中的窗函数

实际应用的窗函数,可分为以下主要类型:

a)幂窗--采用时间变量某种幂次的函数,如矩形、三角形、梯形或其它时间(t)的高次幂;

b)三角函数窗--应用三角函数,即正弦或余弦函数等组合成复合函数,例如汉宁窗、海明窗等;

c)指数窗--采用指数时间函数,如形式,例如高斯窗等。

d)平顶窗--平顶窗在频域时的表现就象它的名称一样有非常小的通带波动。

不同的窗函数对信号频谱的影响是不一样的,这主要是因为不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。

信号的截短产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。

(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)。

(1)矩形窗,调用格式:

w=boxcar(n),根据长度n产生一个矩形窗w。

(2)三角窗,调用格式:

w=triang(n),根据长度n产生一个三角窗w。

(3)汉宁窗,调用格式:

w=hanning(n),根据长度n产生一个汉宁窗w。

(4)海明窗,调用格式:

w=hamming(n),根据长度n产生一个海明窗w。

(5)布拉克曼窗,调用格式:

w=blackman(n),根据长度n产生一个布拉克曼窗w。

4.窗函数的基本参数

窗函数

旁瓣峰值幅度/dB

过渡带宽近似值

过渡带宽精确值

阻带最小衰减/dB

矩形窗

-13

4π/N

1.8π/N

-21

三角窗

-25

8π/N

6.1π/N

-25

hanning窗

-34

8π/N

6.2π/N

-44

hamming窗

-41

8π/N

6.6π/N

-53

blackman窗

-57

12π/N

11π/N

-74

5.数字滤波的设计并对加噪信号进行滤波处理

数字滤波器分为FIR数字滤波器和IIR数字滤波器两种,可以用硬件和软件来设计实现。

软件设计主要有脉冲响应不变法、双线性变换法、窗口函数法。

本设计是用窗函数法设计FIR低通滤波器。

针对以上语音信号设定滤波器的性能指标用设计低通滤波器。

用设计好的数字滤波器对含噪语音信号进行滤波,在Matlab中FIR滤波器利用函数fftfilt对信号进行滤波,FIR滤波器利用函数filter对信号进行滤波。

在一个窗口同时画出滤波前后的波形及频谱如图2所示。

三、实验步骤及结果

1.基本部分

语音文件的读取、采样、加噪,以及绘制原始语音信号和加噪后语音信号的时域波形与频谱:

[y,fs]=audioread('voice.wav');%读取语音文件

sound(y,fs);%回放语音

y1=fft(y,fs);%原始语音信号的频谱y1

z=awgn(y,40);%加入高斯白噪声

z1=fft(z,fs);%加噪信号的频谱z1

sound(z,fs);%播放加噪后的语音

figure

(1);

subplot(2,2,1);

plot(y);%绘制原始语音信号的时域波形

title('原始语音信号的时域波形');

xlabel('时间');

ylabel('幅度');

subplot(2,2,2);

plot(abs(y1));%绘制原始语音信号的频谱

title('原始语音信号的频谱');

xlabel('频率');

ylabel('幅度');

subplot(2,2,3);

plot(z);%绘制加噪语音信号的时域波形

title('加噪信号的时域波形');

xlabel('时间');

ylabel('幅度');

subplot(2,2,4);

plot(abs(z1));%绘制加噪信号的频谱

title('加噪信号的频谱');

xlabel('频率');

图1(a)原始语音信号的时域波形

图1(b)原始语音信号的频谱

图1(c)加噪语音信号的时域波形

图1(d)加噪语音信号的频谱

 

滤波器设计代码(以hamming窗为例):

wp=2*pi*1200/fs;%滤波器参数

ws=2*pi*1400/fs;

wdelta=ws-wp;%过渡带宽度

N=ceil(6.6*pi/wdelta);%根据过渡带宽度求hamming窗滤波器阶数

wn=(wp+ws)/2;%截止频率

[b,a]=fir1(N,wn/pi,hamming(N+1));%生成FIR滤波器

使用MATLAB自带函数求滤波器的频率响应:

freqz(b,a,512);%求频率响应

1用矩形窗设计的滤波器的频率响应

2用三角窗设计的FIR滤波器频率响应

3用hanning窗设计的FIR滤波器频率响应

4用hamming窗设计的FIR滤波器频率响应

 

5用blackman窗设计的FIR滤波器频率响应

画出使用滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化,回放语音信号(以hamming窗为例):

f=fftfilt(b,z);%调用FIR滤波器(z为加噪后的语音信号)

sound(f,fs);%播放滤波后的语音信号

figure

(2)

subplot(2,2,1);

plot(z);

title('hamming窗FIR滤波器滤波前的时域波形');

subplot(2,2,2);

plot(f);

title('hamming窗FIR滤波器滤波后的时域波形');

z3=fft(z,fs);%滤波前信号的频谱

F0=fft(f,fs);%滤波后信号的频谱

subplot(2,2,3);

plot(abs(z3));

title('hamming窗FIR滤波器滤波前的频谱')

xlabel('频率/Hz');

ylabel('幅值');

subplot(2,2,4)

plot(abs(F0));

title('hamming窗FIR滤波器滤波后的频谱')

xlabel('频率/Hz');

ylabel('幅值');

图2(a)滤波前的时域波形

图2(b)滤波前的频谱

图2(c)滤波后的时域波形

图2(d)滤波后的频谱

2.提高部分

录制两段音乐信号,一段音调较高,一段音调较低,画出采样后信号的时域波形和频谱图:

[y,fs]=audioread('music_1.wav');

x1=y(1:

250000);%取前二十五万个样点

sound(x1,fs);%播放音乐1(低音,以钢琴为主)

xx1=fft(x1,fs);%音乐信号1的频谱xx1

[y,fs]=audioread('music_2.wav');

x2=y(1:

250000);%取前二十五万个样点

sound(x2,fs);%播放音乐2(高音,以小号为主)

xx2=fft(x2,fs);%音乐信号2的频谱xx2

图3(a)音乐信号1的时域波形

图3(b)音乐信号1的频谱

图3(c)音乐信号2的时域波形

图3(d)音乐信号2的频谱

将上述两段信号叠加,并加入干扰噪声对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。

选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。

m1=x1+x2;%将两段音乐信号叠加

mm1=fft(m1,fs);%叠加后信号的频谱mm1

sound(m1,fs);%播放叠加后的音乐信号

z=awgn(m1,20);%加入高斯白噪声

z1=fft(z,fs);%加噪信号的频谱z1

sound(z,fs);%播放加噪后的叠加信号

%-----------使用滤波器对叠加信号进行滤波-------

wp=2*pi*3200/fs;%滤波器参数

ws=2*pi*3400/fs;

wdelta=ws-wp;%过渡带宽度

N=ceil(6.6*pi/wdelta);%根据过渡带宽度求滤波器阶数

wn=(wp+ws)/2;%截止频率

[b,a]=fir1(N,wn/pi,hamming(N+1));%使用hamming窗生成滤波器

f=fftfilt(b,z);

F0=fft(f,fs);

%n=fs*(0:

51

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1