求助:关于人造畸变语音
本人用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=;
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);
——————————————————————————————
刚才打错了,单峰的有畸变效果。
页:
[1]