教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 教育文库 >

基于matlab的语音信号处理(3)

来源:网络收集 时间:2026-07-12
导读: 高通滤波器:去掉信号中不必要的低频成分,去掉低频干扰的滤波器。在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,

高通滤波器:去掉信号中不必要的低频成分,去掉低频干扰的滤波器。在电力系统中,谐波补偿时用高通滤波器滤除某次及其以上的各次谐波。高通滤波器是指车载功放中能够让中、高频信号通过而不让低频信号通过的电路,其作用是滤去音频信号中的低音成分,增强中音和高音成分以驱动扬声器的中音和高音单元。此外高通滤波器常常和低通滤波器成对出现,不论哪一种,都是为了把一定的声音频率送到应该去的单元。

带通滤波器:能通过某一频率范围内的频率分量、但将其他范围的频率分量衰减到极低水平的滤波器,与带阻滤波器的概念相对。一个模拟带通滤波器的例子是电阻-电感-电容电路(RLC circuit)。这些滤波器也可以用低通滤波器同高通滤波器组合来产生。

3.5程序流程图

图3-1

程序流程图

第四章软件仿真调试结果分析

4.1语音信号的时频分析

在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数,Wavread函数调用格式

y=wavread(file)%读取file所规定的wav文件,返回采样值放在向量y中。

[y,fs,bits]=wavread(file) %采样值放在向量y中,fs表示采样频率(hz),bits表示采样位数。

y=wavread(file,N)%读取前N点的采样值放在向量y中。

y=wavread(file,[N1,N2])%读取从N1到N2点的采样值放在向量y中。 对语音信号Orisound.wav进行采样其程序如下:

[y,fs,nbits]= wavread('E:\yuanyinpin.wav');%把语音信号加载入MATLAB仿真软件平台中

画出语音信号的时域波形,再对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:

Xk=fft(xn,N)

参数xn为被变换的时域序列向量,N是DFT变换区间长度,当N大于xn的长度时,fft函数自动在xn后面补零。,当N小于xn的长度时,fft函数计算xn的前N个元素,忽略其后面的元素。在本次设计中,我们利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。程序如下:

[y,fs,nbits]=wavread('E:\yuanyinpin.wav'); %语音信号的采集 sound(y,fs,nbits); %语音信号的播放 n=length(y);

Y=fft(y,n); %快速傅里叶变换 figure;

subplot(2,1,1);

plot(y);

title('原始信号波形','fontweight','bold');

axis([67000 87000 -0.5 0.5]);

grid;

subplot(2,1,2);

plot(abs(Y));

title('原始信号频谱','fontweight','bold');

axis([0 15000 0 1000]);

grid;

程序结果如下图:

图4-1原始信号采集波形图

4.2语音信号加噪与频谱分析

在MATLAB中产生高斯白噪声非常方便,我们可以直接应用两个函数:一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用randn函数产生高斯分布序列。

在本次设计中,我们是利用MATLAB中的随机函数(rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。randn函数有两种基本调用格式:randn(n)和randn(m,n),前者产生n×n服从标准高斯分布的随机数矩阵,后者产生m×n的随机数矩阵。在这里,我们选用randn(m,n)函数。语音信号添加噪声及其频谱分析的主要程序如下:

[y,fs,nbits]= wavread('E:\yuanyinpin.wav');

sound(y,fs,nbits);

n = length (y)

Noise=0.03*randn(n,2);

s=y+Noise;

sound(s,fs);

figure;

subplot(2,1,1);

plot(s);

title('加噪语音信号的时域波形','fontweight','bold');

axis([ 67000 87000 -0.5 0.5]);

grid;

S=fft(s);

subplot(2,1,2); plot(abs(S));

title('加噪语音信号的频域波形','fontweight','bold');

axis([ 0 15000 0 1000]);

grid;

程序结果如下图:

图4-2信号加噪时域波形图与频谱图

4.3滤波器的设计

4.3.1设计FIR滤波器

如前所述,IIR滤波器和FIR滤波器的设计方法有很大的区别。下面我们着重介绍用窗函数法设计FIR滤波器的步骤。如下:

(1)根据对阻带衰减及过渡带的指标要求,选择窗函数类型(矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣的窗函数。

(2)构造希望逼近的频率响应函数。

(3)计算h(n).。

(4)加窗得到设计结果。

4.3.2设计IIR滤波器

无论是数字滤波器还是模拟滤波器,他们技术指标的建立都是以所谓的“固有衰减”参数为参照。以数字滤波器为例,固有衰减参数(关于之旅分量归一化)定义为:

A(w)=-20lg|H(ejw)|-20lg|H(ej0)

目前IIR数字滤波器设计的最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表供查询,因此,充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。IIR数字滤波器的设计步骤是:

(1)按一定规则将给出的数字滤波器的技术指标转换为模拟低通滤波器的技术指标;

(2)根据转换后的技术指标设计模拟低通滤波器Gs;

(3)再按一定规则将G(s)转换成H(z)。

若设计的数字滤波器是低通的,那么上述设计工作可以结束,若所设计的是高通,带通或带阻滤波器,那么还有步骤(4);

(4)将高通、带通、或带阻数字l不去的技术指标先转化为低通模拟滤波器的技术指标,然后按照上述步骤(2)设计出低通Gs,再将Gs转换为所需的H(z)。

4.3.3双线性变换法和窗函数法

对于数字高通、带通滤波器的设计,通用方法为双线性变换法。可以借助于模拟滤波器的频率转换设计一个所需类型的过渡模拟滤波器,再经过双线性变换将其转换策划那个所需的数字滤波器。具体设计步骤如下:

(1)确定所需类型数字滤波器的技术指标。

(2)将所需类型数字滤波器的边界频率转换成相应的模拟滤波器的边界频率,转换公式为Ω=2/T tan(0.5ω)

(3)将相应类型的模拟滤波器技术指标转换成模拟低通滤波器技术指标。

(4)设计模拟低通滤波器。

(5)通过频率变换将模拟低通转换成相应类型的过渡模拟滤波器。

(6)采用双线性变换法将相应类型的过渡模拟滤波器转换成所需类型的数字

滤波器。

我们知道,脉冲响应不变法的主要缺点是会产生频谱混叠现象,使数字滤波器的频响偏离模拟滤波器的频响特性。为了克服之一缺点,可以采用双线性变换法。

下面我们总结一下利用模拟滤波器设计IIR数字低通滤波器的步骤:

(1)确定数字低通滤波器的技术指标:通带边界频率、通带最大衰减,阻带截止频率、阻带最小衰减。

(2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。

(3)按照模拟低通滤波器的技术指标设计及过渡模拟低通滤波器。

(4)用双线性变换法,模拟滤波器系统函数转换成数字低通滤波器系统函数。

接下来,我们根据语音信号的特点给出有关滤波器的技术指标:

(1)低通滤波器的性能指标:

fp=1000Hz,fc=1200Hz,As=100db ,Ap=1dB

…… 此处隐藏:3340字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于matlab的语音信号处理(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/115270.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)