语音信号的滤波与频谱分析
更新时间:2023-09-20 12:47:01 阅读量: 医药卫生 文档下载
生物医学信号处理大作业
题目:语音信号的滤波与频谱分析
学生姓名 学院名称 精密仪器与光电子工程 专 业 学 号
一、实验目的
语音信号的滤波与频谱分析
录制自己的一段语音:“天津大学精密仪器与光电子工程学院生物医学工程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
5~6秒语音功率谱18x 104第16141210864200500100015002000250030007~8秒语音功率谱10x 105第9876543210050010001500200025003000第11~12秒语音功率谱12x 10510864200500100015002000250030004第15~16秒语音功率谱7x 106543210050010001500200025003000第3~4秒语音功率谱3.5x 10432.521.510.50050010001500200025003000
5第9~10秒语音功率谱7x 106543210050010001500200025003000
13~14秒语音功率谱6x 105第5432100500100015002000250030004第17~18秒语音功率谱2.5x 1021.510.50050010001500200025003000
频谱分析:人说话的频率基本集中在1200Hz以内的低频段,但我这里可以在高频段(2000Hz左右)可以观察到部分能量,这应该是在录音的时候电脑本身的噪音以及录音设备的误差造成
(2)根据功率谱线,大致可观察到语音信号在150~400和500~650之间有两个波峰,因此取这两个频宽作为我语音信号的特征频带,根据要求选择汉宁窗作为滤波器滤波。
1)汉宁窗滤波器的幅频特性显示
%汉宁窗 f1=150; %通带上下两个频率 f2=400; %带通滤波器的通带范围 w1=2*pi*f1/Fs; %归一化 w2=2*pi*f2/Fs; w=[w1,w2];
N=ceil(4*pi/(2*pi*200/Fs));%求出所需滤波器的阶数 Windows=HANNING(N);
b1=FIR1(N-1,w, Windows); %带通滤波器
figure;freqz(b1,1,512);title('汉宁窗带通(150~400)滤波器的频率响应'); %数字滤波器频率响应 f1=500;
f2=650; %带通滤波器的通带范围 w1=2*pi*f1/Fs; w2=2*pi*f2/Fs; w=[w1,w2]; N=ceil(4*pi/(2*pi*200/Fs)); Nw=N;
Windows=HANNING(N);
b2=FIR1(N-1,w, Windows);%带通滤波器
figure;freqz(b2,1,512);title('汉宁窗带通(500~~650)滤波器的频率响应');%数字滤波器频率响应
汉宁窗带通(150~400)滤波器的频率响应100Magnitude (dB)0-100-200-30000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.911000Phase (degrees)0-1000-200000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.91
汉宁窗带通(500~~650)滤波器的频率响应0Magnitude (dB)-100-200-30000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.91500Phase (degrees)0-500-1000-150000.10.20.30.40.50.60.70.8Normalized Frequency (?? rad/sample)0.91
2)将原始语音信号分别通过两个频带,以下是滤波后的时域波形
band1=fftfilt(b1,x0);
sound(band1,Fs,bits); %滤波后听到的声音有了明显的变化
subplot(2,1,1);plot(band1);title('汉宁窗(150~400)滤波后的时域波形'); band2=fftfilt(b2,x0); sound(band2,Fs,bits);
subplot(2,1,2);plot(band2);title('汉宁窗(500~650)滤波后的时域波形');
汉宁窗(150~400)滤波后的时域波形210-1-2012345678x 10汉宁窗(500~650)滤波后的时域波形0.40.20-0.2-0.4012345678x 109595
(3)特征频段语音信号随时间变化的曲线,分别作出150~400和500~650特征频带的语音信号曲线
a=zeros(s/0.05,1);%这一步是为了求出所画信号曲线的长度,并定义空数组 for i=1:s/0.05
f=x0((i-1)*Fs*0.05+1:i*Fs*0.05);%每0.05秒取出一段数据 l=length(f); q=fft(f,l);
E=q.*conj(q)/l; %求出该段的功率 a(i)=mean(E(150~400)); %求平均 end
figure,plot(0:0.05:s-0.05,a);title('150~400Hz汉宁窗滤波后的功率谱曲线')
b=zeros(s/0.05,1); for i=1:s/0.05
f=x0((i-1)*Fs*0.05+1:i*Fs*0.05); l=length(f); q=fft(f,l);
E=q.*conj(q)/l;
b(i)=mean(E(500:650)); end
figure,plot(0:0.05:s-0.05,b);title('500~650Hz汉宁窗滤波后的功率谱曲线')
2.5x 10-3150~400Hz汉宁窗滤波后的功率谱曲线21.510.50024681012141618
98765432100x 10-5500~650Hz汉宁窗滤波后的功率谱曲线24681012141618
正在阅读:
语音信号的滤波与频谱分析09-20
家长会最牛班主任发言 高二家长会班主任发言稿lu 精品03-27
REITs最全解读11-10
食品厂管理制度完整版(1).pdf05-07
判断题附答案01-13
2008小升初英语周周练(11卷)04-06
环境监测基础知识-08072210-15
黑龙江省鸡西市鸡东二中高二下学期期末考试语文模拟考试题.doc04-29
江西省农产品初加工行业企业名录2018版851家 - 图文01-19
泵车操作人员安全试题10-29
- 最新最全面的“周恩来班”创建资料(三) - 图文
- 中国人民大学经济学院考博题库
- 统计学原理试题(第一套)
- 2017-2022年中国大健康市场研究与投资前景分析报告(目录) - 图文
- 临床检验基础试题库 doc
- 经济学论文3000字
- 四川省内江市2018届高三第三次模拟考试 英语(WORD版含答案)
- 工会工作计划交流
- 财务管理基础题库1~18章
- 浅谈低年级数学教学
- 从力学基本原理学习钢筋 - 图文
- 2018—2019学年度第一学期初二地理备课组工作计划
- 计算机仿真习题及答案
- 奇门遁甲移星换斗秘法
- 草坪学复习题
- 整理过的广电概论复习资料
- 扎染实验报告
- 网络信息安全技术考试材料 - 图文
- 教材重要实词梳理练习(学生版)
- 新版浙教版七年级上科学知识点总结