matlab语音信号采集与处理6,基于MATLAB的语音信号的采集与处理详解

数字信号处理

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

fs=22050;%语音信号采样频率为22050

x1=wavread('D:\\MATLAB\\bin\\zx.wav');%读取语音信号的数据,赋给变量x1 sound(x1,22050);%播放语音信号

y1=fft(x1,1024);%对信号做1024点FFT变换

f=fs*(0:511)/1024;%将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f

subplot(2,1,1); %创建两行一列绘图区间的第1个绘图区间 plot(abs(y1(1:512))); %做原始语音信号的FFT频谱图 title('原始语音信号FFT频谱'); subplot(2,1,2);

plot(f,abs(y1(1:512)));?s是绝对值,plot是直角坐标下线性刻度曲线

第 6 页

数字信号处理

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

图5-3:原始信号的FFT变换

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

fs=22050; %语音信号采样频率为22050

x1=wavread('D:\\MATLAB\\bin\\zx.wav'); %读取语音信号的数据,赋给变量x1 f=fs*(0:511)/1024; %将0到511,步长为1的序列的值与fs相乘并除以1024的值,赋值给f

t=0:1/fs:(length(x1)-1)/fs; %将0到x1的长度减1后的值除以fs的值,且步长为1/fs的值,的序列的值,赋予t

第 7 页

数字信号处理

Au=0.005; %噪声幅值

d=[Au*sin(2*pi*5500*t)]'; %所加的噪声是正弦信号 x2=x1+d; %将正弦信号噪声加在语音信号上 sound(x2,22050); %播放语音信号

y1=fft(x1,1024); %对信号y1做1024点FFT变换 y2=fft(x2,1024); %对信号y2做1024点FFT变换 figure(4); %创建图形窗1 plot(t,x2); %做加噪后的信号时域 title('加噪后的信号');

图5-4:加噪声后的语音信号

第 8 页

数字信号处理

5-3:巴特沃斯滤波器的设计:

wp=0.25*pi; %通带截止频率 ws=0.3*pi; %阻带截止频率 Rp=1; %通带最大衰减(db) Rs=15; %阻带最大衰减(db) Fs=22050; Ts=1/Fs;

wp1=2/Ts*tan(wp/2); %将模拟指标转换成数字指标 ws1=2/Ts*tan(ws/2); %将模拟指标转换成数字指标

[N,Wn]=buttord(wp1,ws1,Rp,Rs,'s'); %选择滤波器的最小阶数(估算得到Butterworth低通滤波器的最小阶数N和3dB截止频率Wc)

[Z,P,K]=buttap(N); %创建Butterworth低通滤波器原型 [Bap,Aap]=zp2tf(Z,P,K); %将零极点增益转换为普遍分子,分母 [b,a]=lp2lp(Bap,Aap,Wn); %将普遍的分子和分母转换为以Wn为截止频率

[bz,az]=bilinear(b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换(模拟转换为数字)

[H,W]=freqz(bz,az); %求频率响应 figure(6)

plot(W*Fs/(2*pi),abs(H)) %绘制Butterworth低通滤波器频率响应曲线

grid %添加图格 xlabel('频率/Hz') ylabel('频率响应幅度') title('Butterworth')

第 9 页

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
设计要求 1、语音信号采集利用 Windows下的录音机,录制一段自己的话音,时间在1s内然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。 2、语音信号的频谱分析在Matlab中,可以利用函数fft对信号进行快速傅立叶变换,得到信号的频谱特性,要求学生首先画出语音信号的时域波形,然后对语音信号进行频谱分析。 3、设计数字滤波器和画出其频率响应给出各滤波器的性能指标; 给定滤波器的性能指标如下: (1)低通滤波器的性能指标:fb=1000Hz,fc=1200Hz,As=100dB,Ap=1dB, (2)高通滤波器的性能指标:fb=5000Hz,fc=4800Hz, As=100dB,Ap=1dB, (3)带通滤波器的性能指标:fb1=1200Hz,fb2=3000Hz, fc1=1000Hz,fc2=3200Hz, As=100dB,Ap=1dB, 采用窗函数法和双线性变换法设计上面要求的3种滤波器,并画出滤波 器的频率响应。 4、用滤波器对信号进行滤波 ,然后用自己设计的滤波器对采集到的信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化; 5、回放语音信号,分析滤波前后的语音变化; 6、设计系统界面,为了使编制的程序操作方便,设计处理系统的用户界面,在所设计的系 统界面上可以实现上述要求中的包括采集、分析、滤波等全部内容,并能够选 择滤波器的类型,输入滤波器的参数、显示滤波器的频率响应等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值