发布时间 : 星期六 文章鏁板瓧淇″彿澶勭悊璇剧▼璁捐.. - 鐧惧害鏂囧簱更新完毕开始阅读a8960f86a0c7aa00b52acfc789eb172dec639962
图2.3巴特沃思带通滤波器
3.将声音信号送入滤波器滤波
x=wavread('C:\\Users\\acer\\Desktop\\数字信号\\sound.wav');%播放原始信号
wavplay(x,fs); %播放原始信号 N=length(x);%返回采样点数 df=fs/N;%采样间隔 n1=1:N/2;
f=[(n1-1)*(2*pi/N)]/pi;%频带宽度 figure(4); subplot(4,2,1);
plot(x);%录制信号的时域波形
13
title('原始信号的时域波形');%加标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%加网格
y0=fft(x);%快速傅立叶变换 subplot(4,2,3);
plot(f,abs(y0(n1)));%原始信号的频谱图 title('原始信号的频谱图');%加标题 xlabel('频率w/pi');%显示横坐标表示的意义 ylabel('幅值 ');%显示纵坐标表示的意义 title('原始信号的频谱图');%加标题 grid;%加网格
3.1低通滤波器滤波 fs=8000; beta=10.056; wc=2*pi*1000/fs; ws=2*pi*1200/fs; width=ws-wc;
wn=(ws+wc)/2; n=ceil(12.8*pi /width);
h=fir1(n,wn/pi,'band',kaiser(n+1,beta)); [h1,w]=freqz(h);
14
ys=fftfilt(h,x);%信号送入滤波器滤波,ys为输出 fftwave=fft(ys);%将滤波后的语音信号进行快速傅立叶变换 figure(4);
subplot(4,2,2);%在四行两列的第二个窗口显示图形 plot(ys);%信号的时域波形
title('低通滤波后信号的时域波形');%加标题 xlabel('频率w/pi');
ylabel('幅值/A');%显示标表示的意义 grid;%网格
subplot(4,2,4); %在四行两列的第四个窗口显示图形 plot(f, abs(fftwave(n1)));%绘制模值 xlabel('频率w/pi');
ylabel('幅值/A');%显示标表示的意义
title('低通滤波器滤波后信号的频谱图');%标题 grid;%加网格
wavplay(ys,8000); %播放滤波后信号
3.2高通滤波器滤波 fs=8000; beta=10.056; ws=2*5000/fs; wc=2*4800/fs;
15
width=ws-wc;
wn=(ws+wc)/2; n=ceil(12.8*pi/width);
h=fir1(n,wn/pi, 'high',kaiser(n+2,beta)); [h1,w]=freqz(h);
ys=fftfilt(h,x);%将信号送入高通滤波器滤波 subplot(4,2,5);%在四行两列的第五个窗口显示图形 plot(ys);%信号的时域波形 xlabel('频率w/pi');
ylabel('幅值/A');%显示标表示的意义 title('高通滤波后信号的时域波形');%标题 ylabel('幅值/A');%显示纵坐标的表示意义 grid;%网格
fftwave=fft(ys); %将滤波后的语音信号进行快速傅立叶变换 subplot(4,2,7);%在四行两列的第七个窗口显示图形 plot(f,abs(fftwave(n1)));%绘制模值 axis([0 1 0 50]); xlabel('频率w/pi');
ylabel('幅值/A');%显示标表示的意义
title('高通滤波器滤波后信号的频谱图');%标题 grid;%加网格
wavplay(ys,8000); %播放滤波后信号
16