语音信号预加重及matlab实现

预加重:数字语音高频部分进行加重,去除口唇辐射影响,增加高频分辨率

解释:根据电力声类比发现,声门激励类比为二阶低通,口唇类比为一阶高通,为了去除语音中声门和口唇辐射的影响,反映声道以及共振峰的性质,所以需要再增加一个一阶高通。(阶数越高,带外衰减越快,滤波效果越好)

一阶FIR高通滤波器:
传递函数:H(z)=1-αz^(-1) 其中,α取值0.9-1.0
预处理后信号:y(n)=x(n)-αx(n-1)

matlab程序:

fid=fopen('C:\Users\如初\Desktop\matlab程序\yujiazhong.txt','rt')
e=fscanf(fid,'%f')%读取数据文件中的数据
ee=e(200:455)
%1、原始时域波形
figure(1)
subplot(211)
plot(ee)
xlabel('样点数')
ylabel('幅度')
%2、预处理后时域信号
un=filter([1,-0.98],[1],ee)%y(n)=x(n)-αx(n-1)
subplot(212)
plot(un)
xlabel('样点数')
ylabel('幅度')
%3、高通滤波器
[h1,f1]=freqz([1,-0.98],[1],256,4000)%H(z)=1-αz-1(-1次方)  (注:4000/2是高通滤波器的截至频率)
pha=angle(h1)
H1=abs(h1)
figure(2)
subplot(211)
plot(f1,H1)
xlabel('频率/Hz')
ylabel('幅度/dB')
subplot(212)
plot(f1,pha)
xlabel('频率/Hz')
ylabel('角度/rad')
%4、原始频域
r=fft(ee,1024)
r1=abs(r)
pinlv=(0:1:255)*8000/512%点和频率的对应关系,假设采样率fs是8000,512是采样点N,8000/512是分辨率
yuanlai=20*log10(r1)%幅值取对数,1024个点
signal(1:256)=yuanlai(1:256)%取256个点与横坐标对应,但是不会有信息的遗失吗?
figure(3)
subplot(211)
plot(pinlv,signal)
xlabel('频率/Hz')
ylabel('幅度/dB')
%5、预处理后频域信号
r2(1:256)=r(1:256)
u=r2.*h1'%频域相乘相当于时域的卷积,用fft变化后(含有幅度和相位的数值)的相乘(注:因为此处是点对点的相乘,所以高通的截止频率设置没有影响)
u2=abs(u)
u3=20*log10(u2)
subplot(212)
plot(pinlv,u3)
xlabel('频率/Hz')
ylabel('幅度/dB')
发布了5 篇原创文章 · 获赞 0 · 访问量 210

猜你喜欢

转载自blog.csdn.net/weixin_42846157/article/details/104482892