资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
音频信号及计算机处理方法复 习 概念 语音特点 汉语特点 语音信号的模型 第2章 语音信号的读取及分帧使用: 相关指令: y,fs,nbits=wavread(wavFilename) 指令wavread功能是读入以.wav为扩展名的 音频文件。(1)输入参数wavFilename是 以.wav为扩展名的音频文件名称,输出参 数y是数字化得音频信号;fs是采样频率; nbits是每个样点的二进制位数。 f=enframe(x,win,inc) 说明:输入x是语音信号;win是帧长或窗 函数,若为窗函数,帧长便取窗函数长, inc是帧移。输出参数y是分帧后的数组,将 为帧数X帧长 短时能量 计算第i帧语音信号 的短时能量公式 短时平均幅度 计算第i帧语音信号 的短时平均幅度公式 短时傅里叶变换 相关概念 相关指令 语谱图 相关概念 相关程序 第5章 信噪比概念 相关数字滤波器设计 IIR滤波器设计:重点巴特沃斯滤波器设计 FIR滤波器设计:窗函数法设计 对语音信号滤波 例:设计一个巴特沃斯低通滤波器,它的Wp为500Hz,Ws 为750Hz,采样频率fs=8000Hz,Rp=3dB, Rs=50dB,并画出 幅频特性,并对bluesky3。Wav数据进行滤波。 。 clear all; clc; close all; fp=500; fs=750; % 设置滤波器的通带和阻带频率 Fs=8000; Fs2=Fs/2; % 采样频率Fs Wp=fp/Fs2; Ws=fs/Fs2; % 把通带和阻带频率归一化 Rp=3; Rs=50; % 通带波纹和阻带衰减 n,Wn=buttord(Wp,Ws,Rp,Rs); % 求取滤波器阶数 b,a=butter(n,Wn); % 设计巴特沃斯型低通滤波器系数 db,mag,pha,grd,w=freqz_m(b,a); % 求滤波器的频率响应曲线 plot(w*Fs2/pi,db); grid on; filedir=; % 指定文件路径 filename=bluesky3.wav; % 指定文件名 fle=filedir filename % 构成路径和文件名 的字符串 s,fs=wavread(fle); % 读入数据文件 s=s-mean(s); % 消除直流分量 s=s/max(abs(s); % 幅值归一化 N=length(s); % 求出信号长度 t=(0:N-1)/fs; % 设置时间 y=filter(b,a,s); % 把语音信号通过滤波器 wlen=200; inc=80; nfft=512; % 设置帧长,帧移和nfft长 win=hann(wlen); % 设置窗函数 d=stftms(s,win,nfft,inc); % 原始信号的STFT变换 fn=size(d,2); % 获取帧数 frameTime=(1:fn)-1)*inc+nfft/2)/Fs; % 计算每帧对应的时间-时间 轴刻度 W2=1+nfft/2; % 计算频率轴刻度 n2=1:W2; freq=(n2-1)*Fs/nfft; d1=stftms(y,win,nfft,inc); % 滤波后信号的STFT变换 % 作图 figure(1) plot(w/pi*Fs2,db,k,linewidth,2) grid; axis(0 4000 -100 5); title(低通滤波器的幅值响应曲线) xlabel(频率/Hz); ylabel(幅值/dB); figure(2) subplot 211; plot(t,s,k); title(纯语音信号:男声“蓝天,白云”) xlabel(时间/s 10 (a); ylabel(幅值) subplot 212; imagesc(frameTime,freq,abs(d(n2,:); axis xy title(纯语音信号的语谱图) xlabel(时间/s 10 (b); ylabel(频率/Hz) m = 256; LightYellow = 0.6 0.6 0.6; MidRed = 0 0 0; Black = 0.5 0.7 1; Colors = LightYellow; MidRed; Black; colormap(SpecColorMap(m,Colors); figure(3) subplot 211; plot(t,y,k); title(滤波后的语音信号) xlabel(时间/s 10 (a); ylabel(幅值) subplot 212; imagesc(frameTime,freq,abs(d1(n2,:); axis xy title(滤波后语音信号的语谱图) xlabel(时间/s 10 (b); ylabel(频率/Hz) m = 256; LightYellow = 0.6 0.6 0.6; MidRed = 0 0 0; Black = 0.5 0.7 1; Colors = LightYellow; MidRed; Black; colormap(SpecColorMap(m,Colors); ylim(0 1000); 例:用窗函数法设计数字FIR带阻滤波器,窗长N取奇数:它的Wp为 180Hz,220Hz ,Ws为190Hz,210Hz,采样频率fs=8000Hz,Rp=3dB, Rs=40dB, 对并对bluesky3.Wav加噪200Hz信号数据进行滤波。 通过查表,选汉宁窗. As=40;Fs=8000; Fs2=Fs/2; % 阻带最小衰减和采样频率 fp=180,220; fs=190,210; % 通带阻带频率 wp=fp/Fs2*pi; ws=fs/Fs2*pi; % 转为圆频率 deltaw=abs(ws(1)-wp(1); % 求取过渡带 wc=(wp+ws)/2; % 求取截止频率 M0=ceil(6.2*pi/deltaw); %按汉宁窗计算所需滤波器长度 M=M0+mod(M0+1,2); %采用第一类偶对称滤波,保证窗长为奇数 b=fir1(M-1,wc/pi,stop,hanning(M);%用汉宁窗计算滤波器 h,w=freqz(b,1,4000); % 求幅值的频率响应 db=20*log10(abs(h); filedir=; % 指定文件路径 filename=bluesky3.wav; % 指定文件名 fle=filedir filename % 构成路径和文件名的字符串 s,fs=wavread(fle); % 读入数据文件 s=s-mean(s); % 消除直流分量 s=s/max(abs(s); % 幅值归一化 N=length(s); % 求出信号长度 t=(0:N-1)/Fs; % 设置时间 ns=0.5*cos(2*pi*200*t); % 计算出200Hz频信号 x=s+ns; % 语音信号和50Hz工频信号叠加 snr1=SNR_singlech(s,x) % 计算叠加200Hz工频信号后的信噪比 y=conv(b,x); % FIR带陷滤波,输出为y z=y(fix(M/2)+1:end-fix(M/2); % 消除conv带来的滤波器输出延迟的 影响 snr2=SNR_singlech(s,z) % 计算滤波后语音信号的信噪比 % 作图 figure(1) plot(w/pi*Fs2,db,k,linewidth,2); title(幅频响应曲线); xlabel(频率/Hz);ylabel(幅值/dB);grid on; figure(2) subplot 311; plot(t,s,k); title(纯语音信号:男声“蓝天,白云”) xlabel(时间/s); ylabel(幅值) subplot 312; plot(t,x,k); title(带200Hz频信号的语音信号) xlabel(时间/s); ylabel(幅值) subplot 313; plot(t,z,k); title(消除200Hz频信号后的语音信号) xlabel(时间/s); ylabel(幅值) figure(3) S=fft(s,fs); X=fft(x,fs); Z=fft(z,fs); subplot(311); plot(abs(S(1:fs/2);title(滤波前原信 号幅度频谱); subplot(312) plot(abs(X(1:fs/2);title(加噪信号幅 度频谱); subplot(313) plot(abs(Z(1:fs/2);title(滤波后信号 幅度频谱);
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号