江大MATLAB语音信号的采集与处理课设(3)

2019-04-09 10:59

双线性变换法低通滤波器程序: FS=8000

F1=1000;Fh=1200; WP=(F1/FS)*2*pi; WS=(Fh/FS)*2*pi; OmegaP=2*FS*tan(WP/2); OmegaS=2*FS*tan(WS/2);

[n,Wn]=buttord(OmegaP,OmegaS,1,100,'s'); [b,a]=butter(n,Wn,'s'); [bz,az]=bilinear(b,a,FS); freqz(bz,az,4096,FS,'whole'); title('双线性变换法低通滤波器') 双线性变换法低通滤波器频率波形图:

6. 用滤波器对信号进行滤波

然后用自己设计的滤波器对采集到的信号进行滤波,画出滤波后信号的时域波形及频谱,并对滤波前后的信号进行对比,分析信号的变化;回放语音信号,分析滤波前后的语音变化;

窗函数低通滤波器滤波实现程序: [x1,Fs,bits]=wavread('h15.wav');

derta_Fs = Fs/length(x1);%设置频谱的间隔,分辨率 ,这里保证了x轴的点数必须和y轴点数一致 fs=Fs; fp1=1000; fs1=1200; As1=100; wp1=2*pi*fp1/fs; ws1=2*pi*fs1/fs; BF1=ws1-wp1; wc1=(wp1+ws1)/2;

M1=ceil((As1-7.95)/(2.286*BF1))+1;%按凯泽窗计算滤波器阶数 N1=M1+1;

beta1=0.1102*(As1-8.7);

Window=(kaiser(N1,beta1)); %求凯泽窗窗函数

b1=fir1(M1,wc1/pi,'low',Window); %wc1/pi为归一化,窗函数法设计函数 figure(2); freqz(b1,1,512);

title('FIR低通滤波器的频率响应');

x1_low = filter(b1,1, x1);%对信号进行低通滤波 ,Y = filter(B,A,X) ,输入X为滤波前序列,Y为滤波结果序列,B/A 提供滤波器系数,B为分子, A为分母 sound(x1_low,Fs,bits); figure(3); subplot(2,1,1); plot(x1_low);

title('信号经过FIR低通滤波器(时域)'); subplot(2,1,2);

plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(fftshift(fft(x1_low)))); title('信号经过FIR低通滤波器(频域)');

窗函数高通滤波器滤波的程序: clc; clear; close all;

[x1,Fs,bits]=wavread('h15.wav');

derta_Fs = Fs/length(x1);%设置频谱的间隔,分辨率 ,这里保证了x轴的点数必须和y轴点数一致 fs=Fs; As2=100; fp2=3000; fs2=2700; wp2=2*pi*fp2/fs; ws2=2*pi*fs2/fs; BF2=wp2-ws2; wc2=(wp2+ws2)/2;

M2=ceil((As2-7.95)/(2.286*BF2))+1;%按凯泽窗计算滤波器阶数 N2=M2+1;

beta2=0.1102*(As2-8.7);

Window=(kaiser(N2,beta2)); %求凯泽窗窗函数 b2=fir1(M2,wc2/pi,'high',Window); figure(4);

freqz(b2,1,512);%数字滤波器频率响应 title('FIR高通滤波器的频率响应');

x1_high = filter(b2,1,x1);%对信号进行高通滤波 sound(x1_high,Fs,bits); figure(5); subplot(2,1,1); plot(x1_high);

title('信号经过FIR高通滤波器(时域)'); subplot(2,1,2);

plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(fftshift(fft(x1_high)))); title('信号经过FIR高通滤波器(频域)');

窗函数带通滤波器滤波的程序: clc; clear; close all;

[x1,Fs,bits]=wavread('h15.wav');

derta_Fs = Fs/length(x1);%设置频谱的间隔,分辨率 ,这里保证了x轴的点数必须和y轴点数一致 fs=Fs; As3=100;

fp3=[1200,3000];fs3=[1000,3200];

wp3=2*pi*fp3/fs; ws3=2*pi*fs3/fs; BF3=wp3(1)-ws3(1); wc3=wp3+BF3/2;

M3=ceil((As3-7.95)/(2.286*BF3))+1;%按凯泽窗计算滤波器阶数 N3=M3+1;

beta3=0.1102*(As3-8.7);

Window=(kaiser(N3,beta3)); %求凯泽窗窗函数 b3=fir1(M3,wc3/pi,'bandpass',Window);%带通滤波器 figure(6);

freqz(b3,1,512);%数字滤波器频率响应 title('FIR带通滤波器的频率响应');

x1_daitong = filter(b3,1,x1);%对信号进行带通滤波 sound(x1_daitong,Fs,bits); figure(7); subplot(2,1,1); plot(x1_daitong);

title('信号经过FIR带通滤波器(时域)'); subplot(2,1,2);

plot([-Fs/2:derta_Fs: Fs/2-derta_Fs],abs(fftshift(fft(x1_daitong)))); title('信号经过FIR带通滤波器(频域)');


江大MATLAB语音信号的采集与处理课设(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:吐鲁番地区十六年“科技之冬”活动的影响和作用

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: