基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx

上传人:b****2 文档编号:3665616 上传时间:2023-05-02 格式:DOCX 页数:18 大小:520.35KB
下载 相关 举报
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第1页
第1页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第2页
第2页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第3页
第3页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第4页
第4页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第5页
第5页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第6页
第6页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第7页
第7页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第8页
第8页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第9页
第9页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第10页
第10页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第11页
第11页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第12页
第12页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第13页
第13页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第14页
第14页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第15页
第15页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第16页
第16页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第17页
第17页 / 共18页
基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx

《基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx(18页珍藏版)》请在冰点文库上搜索。

基于MATLAB的数字滤波器设计 及其对语音信号的应用Word文档格式.docx

3课程设计基础

MATLAB编程基础、数字信号处理知识、语音信号处理知识。

4.具体步骤与要求

4.1 语音信号的采集

录制一段自己的话音,或利用老师给的语音,在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。

程序:

[I,Fs,bits]=wavread('

2.wav'

);

%读取语音信号2.wav

sound(I);

%重放语音

wavrecord(2*Fs,Fs);

%使用基于PC的音频输入设备

4.2语音信号的频谱分析

要求画出语音信号的时域波形;

然后对语音号进行快速傅里叶变换,得到信号的频谱特性。

clearall

3.wav'

%读取语音信号3.wav

Y=fft(I);

%进行快速傅里叶变换

mag=abs(Y);

%求取幅度谱

phase=angle(Y);

%求取相位谱

phase=phase*180/pi;

%转换为Pi单位

dB=20*log10(abs(Y)+eps);

%求取对数幅度谱

t=(0:

length(I)-1)/Fs;

%设置标度

subplot(221);

plot(t,I);

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)'

图2时域波形和信号的频谱特性

4.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画出各滤波器的频率响应。

%LPF设计

fpL=1000;

%通带频率Hz

fsL=1200;

%阻带频率Hz

apL=1;

%通带纹波DB

asL=40;

%阻带衰减DB

WpL=fpL*2/Fs;

%通带角频率rad

WsL=fsL*2/Fs;

%阻带角频率rad

%巴特沃斯低通滤波器

[nL,WnL]=buttord(WpL,WsL,apL,asL);

%求得n和Wn,n是最小阶数,Wn是截止频率

[bL,aL]=butter(nL,WnL,'

low'

%低通滤波器传递函数系数

[hL,wL]=freqz(bL,aL);

title('

巴特沃斯低通滤波器'

%cheby1低通滤波器

[n1L,Wn1L]=cheb1ord(WpL,WsL,apL,asL);

[b1L,a1L]=cheby1(n1L,apL,Wn1L,'

[h1L,w1L]=freqz(b1L,a1L);

cheby1低通滤波器'

%cheby2低通滤波器

[n2L,Wn2L]=cheb2ord(WpL,WsL,apL,asL);

[b2L,a2L]=cheby2(n2L,apL,Wn2L,'

[h2L,w2L]=freqz(b2L,a2L);

cheby2低通滤波器'

%椭圆低通滤波器

[n3L,Wn3L]=ellipord(WpL,WsL,apL,asL);

[b3L,a3L]=ellip(n3L,apL,asL,Wn3L,'

[h3L,w3L]=freqz(b3L,a3L);

椭圆低通

%HPF设计

fpH=4300;

fsH=4000;

apH=1;

asH=40;

WpH=fpH*2/Fs;

WsH=fsH*2/Fs;

%巴特沃斯高通滤波器

[nH,WnH]=buttord(WpH,WsH,apH,asH);

[bH,aH]=butter(nH,WnH,'

high'

[hH,wH]=freqz(bH,aH);

巴特沃斯高通滤波器'

%cheby1高通滤波器

[n1H,Wn1H]=cheb1ord(WpH,WsH,apH,asH);

[b1H,a1H]=cheby1(n1H,apH,Wn1H,'

[h1H,w1H]=freqz(b1H,a1H);

cheby1高通滤波器'

%cheby2高通滤波器

[n2H,Wn2H]=cheb2ord(WpH,WsH,apH,asH);

[b2H,a2H]=cheby2(n2H,apH,Wn2H,'

[h2H,w2H]=freqz(b2H,a2H);

cheby2高通滤波器'

%椭圆高通滤波器

[n3H,Wn3H]=ellipord(WpH,WsH,apH,asH);

[b3H,a3H]=ellip(n3H,apH,asH,Wn3H,'

[h3H,w3H]=freqz(b3H,a3H);

椭圆高通滤波器'

%BPF设计

fp1=1200;

%通带截止频率

fp2=3000;

fpB=[12003000];

%通带频率

fs1=1000;

%阻带截止频率

fs2=3200;

fsB=[10003200];

%阻带频率

apB=1;

%通带纹波

asB=40;

%阻带衰减

WpB=fpB*2/Fs;

WsB=fsB*2/Fs;

[nB,WnB]=buttord(WpB,WsB,apB,asB);

[bB,aB]=butter(nB,WnB);

[hB,wB]=freqz(bB,aB);

巴特沃斯带通滤波器'

[n1B,Wn1B]=cheb1ord(WpB,WsB,apB,asB);

[b1B,a1B]=cheby1(n1B,apB,Wn1B'

[h1B,w1B]=freqz(b1B,a1B);

cheby1带通滤波器'

[n2B,Wn2B]=cheb2ord(WpB,WsB,apB,asB);

[b2B,a2B]=cheby2(n2B,apB,Wn2B);

[h2B,w2B]=freqz(b2B,a2B);

cheby2带通滤波器'

[n3B,Wn3B]=ellipord(WpB,WsB,apB,asB);

[b3B,a3B]=ellip(n3B,apB,asB,Wn3B);

%figure(10)

[h3B,w3B]=freqz(b3B,a3B);

椭圆带通滤波器'

4.4 用滤波器对信号进行滤波,比较滤波前后语音信号的波形及频谱

要求用自己设计的各滤波器分别对采集的语音信号进行滤波,并在一个窗口同时画出滤波前后的波形及频谱。

(1)IIR滤波器利用函数filter对信号进行滤波;

(2)FIR滤波器利用函数fftfilt对信号进行滤波。

%LPF滤波且进行频谱变换

%IIR低通滤波

IIRyL=filter(bL,aL,x);

%语音信号通过butter低通滤波器

IIRy1L=filter(b1L,a1L,x);

%语音信号通过cheby1低通滤波器

IIRy2L=filter(b2L,a2L,x);

%语音信号通过cheby2低通滤波器

IIRy3L=filter(b3L,a3L,x);

%语音信号通过ellip低通滤波器

%FIR低通滤波

FIRyL=fftfilt(bL,x);

FIRy1L=fftfilt(b1L,x);

FIRy2L=fftfilt(b2L,x);

FIRy3L=fftfilt(b3L,x);

%IIR低通滤波后FFT

FFTIIRyL=fft(IIRyL);

%语音信号通过butter低通滤波器后FFT

FFTIIRy1L=fft(IIRy1L);

%语音信号通过cheby1低通滤波器后FFT

FFTIIRy2L=fft(IIRy2L);

%语音信号通过cheby2低通滤波器后FFT

FFTIIRy3L=fft(IIRy3L);

%语音信号通过ellip低通滤波器后FFT

%FIR低通滤波后FFT

FFTFIRyL=fft(FIRyL);

FFTFIRy1L=fft(FIRy1L);

FFTFIRy2L=fft(FIRy2L);

FFTFIRy3L=fft(FIRy3L);

%绘制原始语音、IIR、FIR低通滤波后语音波形、及滤波后频谱图

figure(3)

subplot(6,4,1),plot(x),title('

原始语音信号'

subplot(6,4,2),plot(x),title('

subplot(6,4,3),plot(x),title('

subplot(6,4,4),plot(x),title('

subplot(6,4,5),plot(IIRyL),title('

butter-IIR-LPF'

subplot(6,4,6),plot(IIRy1L),title('

cheby1-IIR-LPF'

subplot(6,4,7),plot(IIRy2L),title('

cheby2-IIR-LPF'

subplot(6,4,8),plot(IIRy3L),title('

ellip-IIR-LPF'

subplot(6,4,9),plot(FFTIIRyL),title('

butter-IIR-FFT'

subplot(6,4,10),plot(FFTIIRy1L),title('

cheby1-IIR-FFT'

subplot(6,4,11),plot(FFTIIRy2L),title('

cheby2-IIR-FFT'

subplot(6,4,12),plot(FFTIIRy3L),title('

ellip-IIR-FFT'

subplot(6,4,13),plot(FIRyL),title('

butter-FIR-LPF'

subplot(6,4,14),plot(FIRy1L),title('

cheby1-FIR-LPF'

subplot(6,4,15),plot(FIRy2L),title('

cheby2-FIR-LPF'

subplot(6,4,16),plot(FIRy3L),title('

ellip-FIR-LPF'

subplot(6,4,17),plot(FFTFIRyL),title('

butter-FIR-FFT'

subplot(6,4,18),plot(FFTFIRy1L),title('

cheby1-FIR-FFT'

subplot(6,4,19),plot(FFTFIRy2L),title('

cheby2-FIR-FFT'

subplot(6,4,20),plot(FFTFIRy3L),title('

ellip-FIR-FFT'

subplot(6,4,21),plot(wL*Fs/(2*pi),abs(hL)),title('

butter-LPF'

subplot(6,4,22),plot(w1L*Fs/(2*pi),abs(h1L)),title('

cheby1-LPF'

subplot(6,4,23),plot(w2L*Fs/(2*pi),abs(h2L)),title('

cheby2-LPF'

subplot(6,4,24),plot(w3L*Fs/(2*pi),abs(h3L)),title('

ellip-LPF'

原始语音、IIR、FIR低通滤波后语音波形、及滤波后频谱图如下:

HPF滤波且进行频谱变换

%IIR高通滤波

IIRyH=filter(bH,aH,x);

%语音信号通过低通滤波器

IIRy1H=filter(b1H,a1H,x);

IIRy2H=filter(b2H,a2H,x);

IIRy3H=filter(b3H,a3H,x);

%FIR高通滤波

FIRyH=fftfilt(bH,x);

FIRy1H=fftfilt(b1H,x);

FIRy2H=fftfilt(b2H,x);

FIRy3H=fftfilt(b3H,x);

%IIR高通滤波后FFT

FFTIIRyH=fft(IIRyH);

FFTIIRy1H=fft(IIRy1H);

FFTIIRy2H=fft(IIRy2H);

FFTIIRy3H=fft(IIRy3H);

%FIR高通滤波后FFT

FFTFIRyH=fft(FIRyH);

FFTFIRy1H=fft(FIRy1H);

FFTFIRy2H=fft(FIRy2H);

FFTFIRy3H=fft(FIRy3H);

%绘制原始语音、IIR、FIR高通滤波后语音波形、及滤波后频谱图

figure(4)

subplot(5,4,1),plot(x),title('

subplot(5,4,2),plot(x),title('

subplot(5,4,3),plot(x),title('

subplot(5,4,4),plot(x),title('

subplot(5,4,5),plot(IIRyH),title('

butter-IIR-HPF'

subplot(5,4,6),plot(IIRy1H),title('

cheby1-IIR-HPF'

subplot(5,4,7),plot(IIRy2H),title('

cheby2-IIR-HPF'

subplot(5,4,8),plot(IIRy3H),title('

ellip-IIR-HPF'

subplot(5,4,9),plot(FFTIIRyH),title('

subplot(5,4,10),plot(FFTIIRy1H),title('

subplot(5,4,11),plot(FFTIIRy2H),title('

subplot(5,4,12),plot(FFTIIRy3H),title('

subplot(5,4,13),plot(FIRyH),title('

subplot(5,4,14),plot(FIRy1H),title('

subplot(5,4,15),plot(FIRy2H),title('

subplot(5,4,16),plot(FIRy3H),title('

subplot(5,4,17),plot(FFTFIRyH),title('

subplot(5,4,18),plot(FFTFIRy1H),title('

subplot(5,4,19),plot(FFTFIRy2H),title('

subplot(5,4,20),plot(FFTFIRy3H),title('

subplot(6,4,21),plot(wH*Fs/(2*pi),abs(hH)),title('

butter-HPF'

subplot(6,4,22),plot(w1H*Fs/(2*pi),abs(h1H)),title('

cheby1-HPF'

subplot(6,4,23),plot(w2H*Fs/(2*pi),abs(h2H)),title('

cheby2-HPF'

subplot(6,4,24),plot(w3H*Fs/(2*pi),abs(h3H)),title('

ellip-HPF'

BPF滤波且进行频谱变换

IIRyB=filter(bB,aB,x);

IIRy1B=filter(b1B,a1B,x);

IIRy2B=filter(b2B,a2B,x);

IIRy3B=filter(b3B,a3B,x);

FIRyB=fftfilt(bB,x);

FIRy1B=fftfilt(b1B,x);

FIRy2B=fftfilt(b2B,x);

FIRy3B=fftfilt(b3B,x);

FFTIIRyB=fft(IIRyB);

FFTIIRy1B=fft(IIRy1B);

FFTIIRy2B=fft(IIRy2B);

FFTIIRy3B=fft(IIRy3B);

FFTFIRyB=fft(FIRyB);

FFTFIRy1B=fft(FIRy1B);

FFTFIRy2B=fft(FIRy2B);

FFTFIRy3B=fft(FIRy3B);

%绘制原始语音、IIR、FIR带通滤波后语音波形、及滤波后频谱图

figure(5)

subplot(6,4,3

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2