基于matlab的数字滤波器设计及其对语音信号的应用Word格式文档下载.doc
- 文档编号:3654604
- 上传时间:2023-05-02
- 格式:DOC
- 页数:14
- 大小:77KB
基于matlab的数字滤波器设计及其对语音信号的应用Word格式文档下载.doc
《基于matlab的数字滤波器设计及其对语音信号的应用Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《基于matlab的数字滤波器设计及其对语音信号的应用Word格式文档下载.doc(14页珍藏版)》请在冰点文库上搜索。
(2)脉冲相应不变法
(3)双线性变换
(4)使用matlab6下的FilterDesignedTool3.利用Matlab设计数字滤波器的方法:
设计思路:
首先将数字高通滤波器的技术指标转化为模拟滤波器的技术指标,再采用Buttetworth逼近的方法求得其系统函数H(S),再利用冲激响应不变法将模拟滤波器的系统函数H(s)变为相应的数字滤波器的系统函数H(Z),然后用MATALB进行仿真,然后确定数字滤波器的结构。
四.设计任务及步骤:
1.语音信号的采集
方法一:
通过开始—程序—附件—娱乐—录音机,录制一段自己的话音。
方法二:
或利用老师给的语音,在Matlab软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。
函数:
wavrecord(2*fs,fs)
程序如下:
[y,fs,bite]=wavread('
1.wav'
);
sound(y)
wavrecord(2*fs,fs);
fft(y);
Y=fft(y);
fp=1000;
fr=1200;
as=40;
ap=1;
[N,Wn]=BUTTORD(2*fp/fs,2*fr/fs,ap,as);
[B,A]=BUTTER(N,Wn);
2.语音信号的频谱分析
要求画出语音信号的时域波形;
然后对语音号进行快速傅里叶变换,得到信号的频谱特性。
fft
sound(y);
mag=abs(Y);
phase=angle(Y);
phase=phase*180/pi;
dB=20*log10(abs(Y)+eps);
t=(0:
length(y)-1)/fs;
figure
(1)
subplot(221);
plot(t,y);
title('
波形图'
xlabel('
时间(s)'
ylabel('
幅度'
f=(1:
length(Y))*fs/length(Y);
subplot(222);
plot(f,mag);
幅度谱'
频率(Hz)'
频谱幅度'
subplot(223);
plot(f,phase);
相位谱'
频谱相位'
subplot(224);
plot(f,dB);
对数幅度谱'
频谱幅度(dB)'
x1=wavread('
f:
\s1.wav'
%读取语音信号的数据,赋给变量x1
3.设计数字滤波器,画出其频率响应曲线
各滤波器的性能指标:
(1)低通滤波器性能指标 fp=1000Hz,fs=1200Hz,As=40dB,Ap=1dB。
(2)高通滤波器性能指标 fs=4000Hz,fp=4300Hz,As=40dB,Ap=1dB
(3)带通滤波器性能指标 fp1=1200Hz,fp2=3000Hz,fs1=1000Hz,fs2=3200Hz,As=40dB,Ap=1dB。
要求:
(1)频率变换法设计IIR滤波器:
可以利用函数butter、cheby1、cheby2和ellip等设计。
(2)(选做)设计IIR滤波器:
用双线性变换法设计上面要求的3种滤波器。
bilinear
(3)(选做)设计FIR滤波器:
用窗函数法设计上面要求的3种滤波器。
可以利用函数fir1设计FIR滤波器。
(4)函数freqz画出各滤波器的频率响应。
低通滤波器:
1(频率变换法设计IIR滤波器)butter函数
[y,fs,bit]=wavread('
1'
[n,fn]=buttord(fp/(fs/2),fr/(fs/2),ap,as,'
z'
[b,a]=butter(n,fn);
freqz(b,a);
[h,w]=freqz(b,a);
plot(w*fs/(2*pi),abs(h));
butter低通滤波'
y1=filter(b,a,y);
y2=fftfilt(b,y);
plot(y);
原始语音信号'
plot(y1);
IIR滤波后语音信号'
plot(y2);
FIR滤波后语音信号'
sound(y1,fs,bit);
2(频率变换法设计IIR滤波器)cheby1函数
[n,fn]=cheb1ord(fp/(fs/2),fr/(fs/2),ap,as,'
[b,a]=cheby1(n,ap,fn);
cheby1低通滤波'
3(频率变换法设计IIR滤波器)cheby2函数
[n,fn]=cheb2ord(fp/(fs/2),fr/(fs/2),ap,as,'
[b,a]=cheby2(n,ap,fn);
cheby2低通滤波'
得出来的信号波形如下:
4(频率变换法设计IIR滤波器)ellip函数
[n,fn]=ellipord(fp/(fs/2),fr/(fs/2),ap,as,'
[b,a]=ellip(n,ap,as,fn);
ellip低通滤波'
高通滤波器:
fp=4300;
fr=4000;
[b,a]=butter(n,fn,'
high'
butter高通滤波'
[b,a]=cheby1(n,ap,fn,'
cheby1高通滤波'
[b,a]=cheby2(n,ap,fn,'
cheby2高通滤波'
[b,a]=ellip(n,ap,as,fn,'
ellip高通滤波'
带通滤波器:
1
fp1=1200;
fr1=1000;
fp2=3000;
fr2=3200;
fp=[fp1,fp2];
fr=[fr1,fr2];
[n,fn]=buttord(fp/(fs/2),fr/(fs/2),ap,as,'
butter带通滤波'
2
cheby1带通滤波'
3
cheby2带通滤波'
4
ellip带通滤波'
窗函数
1.低通
fr=1000;
wr=2*pi*fr;
Window=boxcar(8);
b=fir1(7,fr/(fs/2),Window);
[h,w]=freqz(b,1);
低通滤波'
y1=filter(b,1,y);
2.带通
fp=3000
Window=blackman(16);
b=fir1(15,[fr/(fs/2),fp/(fs/2)],Window);
带通滤波'
3.高通
fr=3000;
b=fir1(7,fr/(fs/2),'
双线性变换
1.用双线行变换butter低通滤波
wp=(fp/fs)*2*pi;
ws=(fr/fs)*2*pi;
OmegaP=2*fs*tan(wp/2);
OmegaS=2*fs*tan(ws/2);
[N,Wn]=buttord(OmegaP,OmegaS,ap,as,'
s'
%选择滤波器的最小阶数
[b,a]=butter(N,Wn,'
[bz,az]=bilinear(b,a,fs);
[h,w]=freqz(bz,az);
y1=filter(bz,az,y);
y2=fftfilt(bz,y);
2.用双线行变换butter高通滤波
'
3.用双线行变换butter带通滤波
fp=[fp1fp2];
fr=[fr1fr2];
as=15;
%[b1,a1]=lp2bp(b,a,sqrt())
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 matlab 数字滤波器 设计 及其 语音 信号 应用
![提示](https://static.bingdoc.com/images/bang_tan.gif)