收藏 分享(赏)

应用Matlab对含噪声语音信号进行频谱分析及滤波.docx

上传人:weiwoduzun 文档编号:5640467 上传时间:2019-03-10 格式:DOCX 页数:11 大小:337.29KB
下载 相关 举报
应用Matlab对含噪声语音信号进行频谱分析及滤波.docx_第1页
第1页 / 共11页
应用Matlab对含噪声语音信号进行频谱分析及滤波.docx_第2页
第2页 / 共11页
应用Matlab对含噪声语音信号进行频谱分析及滤波.docx_第3页
第3页 / 共11页
应用Matlab对含噪声语音信号进行频谱分析及滤波.docx_第4页
第4页 / 共11页
应用Matlab对含噪声语音信号进行频谱分析及滤波.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、应用 Matlab 对含噪声的语音信号进行频谱分析及滤波一、实验内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号) ,对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。二、实现步骤1语音信号的采集 利用 Windows 下的录音机,录制一段自己的话音,时间在 1 s 内。然后在 Matlab 软件

2、平台下,利用函数 wavread 对语音信号进行采样,(可用默认的采样频率或者自己设定采样频率) 。2语音信号的频谱分析 要求首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性。在采集得到的语音信号中加入正弦噪声信号,然后对加入噪声信号后的语音号进行快速傅里叶变换,得到信号的频谱特性。并利用sound试听前后语音信号的不同。分别设计IIR和FIR滤波器,对加入噪声信号的语音信号进行去噪,画出并分析去噪后的语音信号的频谱,并进行前后试听对比。3.数字滤波器设计给出数字低通滤波器性能指标:如,通带截止频率 fp10000 Hz,阻带截止频率 fs 12000 Hz(可根

3、据自己所加入噪声信号的频率进行阻带截止频率设置) ,阻带最小衰减 Rs50 dB,通带最大衰减 Rp3 dB(也可自己设置) ,采样频率根据自己语音信号采样频率设定。报告内容一、实验原理含噪声语音信号通过低通滤波器,高频的噪声信号会被过滤掉,得到清晰的无噪声语音信号。二、实验内容录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;在语音信号中增加正弦噪声信号(自己设置几个频率的正弦信号 ),对加入噪声信号后的语音信号进行频谱分析;给定滤波器的性能指标,采用窗函数法和双线性变换设计数字滤波器,并画出滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波

4、,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比试听,分析信号的变化。给出数字低通滤波器性能指标:如,通带截止频率 fp10000 Hz,阻带截止频率 fs12000 Hz(可根据自己所加入噪声信号的频率进行阻带截止频率设置) ,阻带最小衰减 Rs50 dB,通带最大衰减 Rp3 dB(也可自己设置) ,采样频率根据自己语音信号采样频率设定。三、实验程序1、原始信号采集和分析clc;clear;close all;fs=10000; %语音信号采样频率为 10000x1=wavread(C:UsersacerDesktopvoice.wav); %读取语音信号的数据,赋给 x1so

5、und(x1,40000); %播放语音信号y1=fft(x1,10240); %对信号做 1024 点 FFT 变换f=fs*(0:1999)/1024;figure(1);plot(x1) %做原始语音信号的时域图形title(原始语音信号 );xlabel(time n);ylabel(fuzhi n);figure(2);plot(f,abs(y1(1:2000); %做原始语音信号的频谱图形title(原始语音信号频谱 )xlabel(Hz);ylabel(fuzhi);2、加入噪声y=wavread(C:UsersacerDesktopvoice.wav);y=y(:,1); %矩

6、阵维度置换成 1subplot(2,2,1);plot(y);title(加噪前的时域曲线);N=length(y)-1;n=0:1/fs:N/fs;x=1.5*sin(40*pi*n); %设置正弦噪声信号x=x.; %置换成矩阵z=y+x; %添加噪声subplot(2,2,2);plot(z);title(加噪后的时域曲线);sound(z,40000)3、 IIR 滤波器设计clc;clear;close all;fs=22050;x1=wavread(C:UsersacerDesktopvoice.wav);x1=x1(:,1)t=0:1/22050:(size(x1)-1)/220

7、50; %设置并添加噪声信号d=1.5*sin(40*pi*t);d=d.;x2=x1+d;wp=0.25*pi;ws=0.3*pi;Rp=1;Rs=15; %通阻带截止和通阻带衰减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); %选择滤波器的最小阶数Z,P,K=buttap(N); %创建 butterworth 模拟滤波器Bap,Aap=zp2tf(Z,P,K);b,a=lp2lp(Bap,Aap,Wn); bz,az=bilinear(

8、b,a,Fs); %用双线性变换法实现模拟滤波器到数字滤波器的转换H,W=freqz(bz,az); %绘制频率响应曲线figure(1);plot(W*Fs/(2*pi),abs(H);grid %滤波器xlabel(频率Hz);ylabel(频率响应幅度);title(Butterworth)f1=filter(bz,az,x2);figure(2);subplot(2,1,1); plot(t,x2); %画出滤波前的时域图title(滤波前的时域波形);subplot(2,1,2);plot(t,f1); %画出滤波后的时域图title(滤波后的时域波形);sound(f1,40000

9、); %播放滤波后的信号F0=fft(f1,10240);f=fs*(0:255)/10240figure(3)y2=fft(x2,10240);subplot(2,1,1);plot(f,abs(y2(1:256); %画出滤波前的频谱图title(滤波前的频谱);xlabel(Hz);ylabel(fuzhi);subplot(2,1,2);F1=plot(f,abs(F0(1:256); %画出滤波后的频谱图title(滤波后的频谱);xlabel(Hz);ylabel(fuzhi);4、 FIR 滤波器设计clear allfs=22050; %设置采样频率x1=wavread(C:U

10、sersacerDesktopvoice.wav);%读取声音x1=x1(:,1)f=fs*(0:1023)/1024; %F=(1:N-1)*Fs/N; %换算成实际的频率值t=0:1/22050:(length(x1)-1)/22050; %定义噪声信号d=1.5*sin(40*pi*t);x2=x1+d; %加噪声N=30;b1=fir1(N,0.3,hamming(N+1); %设计 FIR 滤波器M=128;f0=0:1/M:1-1/M;h1=freqz(b1,10,M); %滤波器幅频响应f1=filter(b1,10,x2); %滤波y0=fft(x2,40000);y00=ff

11、t(f1,40000);sound(f1,40000); %播放滤波后的声音figure(1)plot(f0,abs(h1); %滤波器幅频响应图title(滤波器幅频响应图)figure(2);subplot(2,1,1); plot(t,x2); %画出滤波前的时域图title(滤波前的时域波形);subplot(2,1,2);plot(t,f1); %画出滤波后的时域图title(滤波后的时域波形);F0=fft(f1,10240);f=fs*(0:255)/10240figure(3)subplot(211)plot(f,abs(y0(1:256);title(滤波前频谱)subplot(212)plot(f,abs(y00(1:256); %滤波后频谱title(滤波后频谱)C:UsersappleDesktopxinhao最遥远的距离.wav

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报