|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本人用matlab编了个小程序,基于共振峰模型,构造了一个双峰的低通滤波器(先前试过单峰的没有畸变的效果),但是过滤后却没有任何声音,程序及结果如下:function a=distortfilter2(Ak1,Fk1,Ak2,Fk2,T1,T2) %自定义一个双共振峰低通滤波,参考《数字语音编码》【赵晓群】P42
%共振峰带宽Ak
%共振峰中心频率Fk
zk1=exp(-Ak1*T1+sqrt(-1)*2*pi*Fk1*T1); %共振峰对应的2对极点 %
zk2=exp(-Ak1*T1-sqrt(-1)*2*pi*Fk1*T1);
zk3=exp(-Ak2*T2+sqrt(-1)*2*pi*Fk2*T2);
zk4=exp(-Ak2*T2+sqrt(-1)*2*pi*Fk2*T2);
a1=zk1+zk2; % a1=2*exp(-Ak*T)*cos(2*pi*Fk*T);
a2=-1*zk1*zk2; % a2=-(exp(-Ak*T).^2);
a3=zk3+zk4;
a4=-1*zk3*zk4;
a=[1,-(a1+a3),(a1*a3-a2-a4),(a1*a4+a2*a3),a2*a4];
c=(1-a1-a2)*(1-a3-a4);
figure
freqz(c,a,512)
title('畸变滤波器的幅频响应')
——————————————————————————————————————————————
%调用
y1=wavread('Beijing.wav');
a=distortfilter2(50,100,50,900,1/8000,1/8000);
y2=filter(1,a,y1);
sound(y2,8000,16);
——————————————————————————————
|
-
低通滤波器图
|