声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 800|回复: 1

[声学基础] 求助:关于人造畸变语音

[复制链接]
发表于 2012-4-10 17:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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);

——————————————————————————————

低通滤波器图

低通滤波器图
回复
分享到:

使用道具 举报

 楼主| 发表于 2012-4-10 17:50 | 显示全部楼层
刚才打错了,单峰的畸变效果。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-6 03:08 , Processed in 0.074179 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表