马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
N=2048;
[x,fs,NBITS]=wavread('d:\iii.wav'); %读取语音信号的数据,赋给变量x1
x1=x(1:N);
t=(0:N-1)/fs;
y1=fft(x1); %对信号做FFT变换
f=fs*(0:N/2-1)/N;
figure(1)
pyy=y1.*conj(y1)/N;
subplot(2,1,1),plot(t,x1));%滤波前时域图
%设计滤波器
wp=10;ws=800;fs=8000;rp=0.5;rs=40;
[n,wn]=buttord(wp/(fs/2),ws/(fs/2),rp,rs,'z');
[b,a]=butter(n,wn); %按二楼的意见进行了修改
%信号滤波
y=filter(b,a,x1);
X=fft(y);
subplot(2,1,2),plot(y);%滤波后时域图
figure(2)
subplot(2,1,1)
plot(f,pyy(1:N/2));% 滤波前功率谱图
pyy1=X.*conj(X)/N;
subplot(2,1,2)
plot(f,pyy1(1:N/2));滤波后功率谱图
滤波前后时域图如下:
滤波后的功率谱图如下:
从这两个图看起来我的程序好象有问题,请大家指教!谢谢!(我的声音信号理论上频率应该是15-400)。
[ 本帖最后由 zhlong 于 2007-10-25 22:46 编辑 ] |