- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用m的atlab对语音信号进行频谱分析及滤波
探 究 性 学 习 之 二
?????????????????????? --应用MatLab对语音信号进行频谱分析及滤波
?
?1.通过课下的自我的学习,加深对书本理论知识的理解,提升自身的实际应用能力;
?2.巩固所学的数字信号处理理论知识,使自身对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解;
?3.培养自我学习的能力和对相关课程的兴趣;
????? 录制一段个人自己的语音信号,并对录制的信号进行采样;画出采样后语音信号的时域波形和频谱图;给定滤波器的性能指标,采用窗函数法和双线性变换设计滤波器,并画出 滤波器的频率响应;然后用自己设计的滤波器对采集的信号进行滤波,画出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语 音信号;最后,设计一个信号处理系统界面。
1.语音信号的采集 ?? 利用Windows下的录音机,录制一段自己的话音,时间在1?s内。然后在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,我们很快理 解了采样频率、采样位数等概念。
2.语音信号的频谱分析 ?? 要求学生首先画出语音信号的时域波形;然后对语音号进行快速傅里叶变换,得到信号的频谱特性, 从而加深学生对频谱特性的理解。
程序如下:
? clc;clear;close all;
? fs=22050; %语音信号采样频率为22050
? x1=wavread(wo.wav); %读取语音信号的数据,赋给变量x1
? sound(x1,22050); %播放语音信号
? y1=fft(x1,1024);? %对信号做1024点FFT变换
? f=fs*(0:511)/1024;figure(1);
? plot(x1)? %做原始语音信号的时域图形
? title(原始语音信号);xlabel(time n);ylabel(fuzhi n);
? figure(2);freqz(x1) %绘制原始语音信号的频率响应图
? title(频率响应图)
? figure(3);subplot(2,1,1);
? plot(abs(y1(1:512))) %做原始语音信号的FFT频谱图??
? title(原始语音信号FFT频谱);
? subplot(2,1,2);plot(f,abs(y1(1:512)));%同一个图???
? title(原始语音信号频谱)
? xlabel(Hz);ylabel(fuzhi);
波形如下:
?
3. 滤波电路设计
??? 给出低通滤波器性能指标fb=1000?Hz,fc=1200?Hz,Rs=15 dB,Rp=1?dB。并使语音信号经 过该滤波器。 程序如下:
? clc;clear;close all;
? fs=22050;x1=wavread(wo.wav);
? t=0:1/22050:(size(x1)-1)/22050;
? Au=0.03;d=[Au*cos(2*pi*5000*t)];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(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,22050); %播放滤波后的信号
? F0=fft(f1,1024);f=fs*(0:511)/1024;
? figure(3)
? y2=fft(x2,1024);
? subp
文档评论(0)