编辑: yyy888555 | 2013-06-07 |
%返回采样点数 t=(1:N)/fs;
df=fs/N;
%采样间隔 n1=1:N;
f=(n1-1)*df;
%频带宽度 双线性变换法设计低通滤波器*** wp=2000*pi/fs;
ws=2400*pi/fs;
[n,wn]=buttord(wp,ws,1,10);
[b,a]=butter(n,wn/pi);
[H,m]=freqz(b,a);
figure(1);
plot(m,abs(H));
title('
IIR低通滤波器的频率响应'
);
xlabel('
频率W(rad)'
);
ylabel('
幅值'
);
grid;
figure(2);
y3=fft(x);
%原信号进行快速傅立叶变换 ys=filter(b,a,x);
%信号送入滤波器滤波,ys为输出 yz=fft(ys);
subplot(2,1,1);
plot(f,abs(y3));
title('
原信号的频谱图'
);
xlabel('
频率'
);
ylabel('
幅值'
);
subplot(2,1,2);
plot(f,abs(yz));
title('
IIR低通滤波器滤波后的信号频谱图'
);
xlabel('
频率'
);
ylabel('
幅值'
);
%声音信号时域波形 figure(3);
subplot(2,1,1);
plot(t,x);
title('
声音信号时域波形'
);
subplot(2,1,2);
plot(t,ys);
title('
滤波后声音信号时域波形'
);
sound(ys,fs);
实验结果: (5)、IIR高通滤波器: function[]=iirhighpass();
[x,fs,bits]=wavread('
yuyin.wav'
);
N=length(x);
%返回采样点数 t=(1:N)/fs;
df=fs/N;
%采样间隔 n1=1:N;
f=(n1-1)*df;
%频带宽度 双线性变换法设计高通滤波器* wp=2*5000*pi/fs;
ws=2*4800*pi/fs;
[n,wn]=buttord(wp,ws,1,20);
[b,a]=butter(n,wn/pi,'
high'
);
H=freqz(b,a);
figure(1);
plot(abs(H));
title('
巴特沃斯滤波器的频率响应'
);
xlabel('
频率W(rad)'
);
ylabel('
幅值'
);
grid;
figure(3);
ys=filter(b,a,x);
%信号送入滤波器滤波,ys为输出 ya=fft(ys);
%将滤波后的语音信号进行快速傅立叶变换 y3=fft(x);
%原信号进行快速傅立叶变换 subplot(2,1,1);
plot(f,abs(y3));
title('
原信号的频谱图'
);
xlabel('
频率'
);
ylabel('
幅值'
);
subplot(2,1,2);
plot(f,abs(ya));
title('
IIR高通滤波器滤波后的信号频谱图'
);
xlabel('
频率'
);
ylabel('
幅值'
);
figure(2) subplot(2,1,1);
plot(t,x);
title('
原信号时域图'
);
subplot(2,1,2);
plot(t,ys);
title('
滤波后信号时域图'
);
sound(ys,fs);
实验结果: (6)、IIR低通滤波器: function[]=iirbandpass();
[x,fs,bits]=wavread('
yuyin.wav'
);
N=length(x);
%返回采样点数 t=(1:N)/fs;
df=fs/N;
%采样间隔 n1=1:N;
f=(n1-1)*df;
%频带宽度 双线性变换法设计带通滤波器*** wp1=2400*pi/fs;
ws1=2000*pi/fs;
wp2=6000*pi/fs;
ws2=6400*pi/fs;
[n,wn]=buttord([wp1 wp2],[ws1 ws2],1,10);
[b,a]=butter(n,wn);
[H,m]=freqz(b,a);
figure(1);
plot(m*fs/(2*pi),abs(H));
title('
巴特沃斯滤波器的频率响应'
);
xlabel('
频率W(rad)'
);
ylabel('
幅值'
);
grid;
figure(2);
ys=filter(b,a,x);
%信号送入滤波器滤波,ys为输出 ya=fft(ys);
%将滤波后的语音信号进行快速傅立叶变换 y3=fft(x);
%原信号进行快速傅立叶变换 subplot(2,1,1);
plot(f,abs(y3));
title('
原信号的频谱图'
);
xlabel('
频率........