生物医学信号处理大作业
题目:语音信号的滤波与频谱分析
学生姓名 学院名称 精密仪器与光电子工程 专 业 学 号
一、实验目的
语音信号的滤波与频谱分析
录制自己的一段语音:“天津大学精密仪器与光电子工程学院生物医学工程X班XXX, College of precision instrument and opto-electronics engineering, biomedical engineering”,时间控制在15秒到30秒左右;利用wavread函数读入语言信号,记住采样频率。
二、实验过程
(1)求原始语音信号的特征频带:可以分别对一定时间间隔内,求功率谱(傅里叶变换结果取模的平方)并画出功率谱。
(2)根据语音信号频谱特点,设计FIR或IIR滤波器,分别画出滤波器幅频和相频特性曲线。说明滤波器特性参数。用设计的滤波器对信号滤波,画出滤波后时域波形。用sound函数回放语音信号。
(3)求出特征频段语音信号随时间变化的曲线(每隔0.05秒求一次功率谱,连接成曲线)。
(4)选做:语谱图:横轴为时间,纵轴为频率,灰度值大小表示功率谱值的大小。(提示,可以采用spectrogram函数)
(1)读入语音文件并画出其时域波形和频域波形,实现加窗fft并求出其功率谱。
clc
clear all; close all;
[x,Fs,bits]=wavread('C:\\Users\\刘冰\\Desktop\\数字信号处理\\liubing');
x0=x(:,1); %将采集来的语音信号转换为一个数组 sound(x0,Fs,bits); y=fft(x);
figure;plot(x,’b’);title('原始语音信号时域波形'); y1=fft(x0);
y1=fftshift(y1); d = Fs/length(x);
figure;plot([-Fs/2:d: Fs/2-d],abs(y1),’b’);title('原始语音信号的频域信号'); % 画出原始语音信号的频谱图
原始语音信号时域波形10.80.60.40.20-0.2-0.4-0.6-0.8-1012345678x 1095
原始语音信号的频域波形300025002000150010005000-2.5-2-1.5-1-0.500.511.522.5x 104
N=length(x);
w1 = window(@hann,N); w2 = window(@blackman,N); x1=x0.*w1; %对原始信号加汉宁窗处理 x2=x0.*w2; %对原始信号加布兰克曼窗处理 figure,plot(x1);title(加汉宁窗后的语音信号) %显示加窗后的时域语音信号 s=floor(length(x0)/Fs);
%计算原始语音信号的时间长度,这里得到的结果是18秒,因为floor是向下取整,所以信号的末尾一点会被去掉,但是因为最后一点没有声音信号,所以影响可以忽略。
%加汉宁窗后功率谱,加布兰克曼窗后又可以得到一组图,只需要将下列循环中的x1改为x2,这里就不再显示
%每两秒对语音信号求一次功率谱并显示
for i=1:1:s/2
f=x1((i-1)*Fs*2+1:i*Fs*2); %每两秒取出一段信号 l=length(f); q=fft(f,l);
E=abs(q).*abs(q); %傅里叶变换结果取模的平方
figure,plot(E(1:3000),'b');title(['第',num2str(i*2-1),'~',num2str(i*2),'秒语音功率谱']);
%因为语音信号主要集中在低频段,所以这里只需要显示低频段即可,取(1:3000)
end
加窗后的时域波形
0.80.60.40.20-0.2-0.4-0.6-0.8012345678x 1095
第1~2秒语音功率谱5000450040003500300025002000150010005000050010001500200025003000
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新医药卫生语音信号的滤波与频谱分析 全文阅读和word下载服务。
相关推荐: