教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

DSP课程设计语音信号(7)

来源:网络收集 时间:2026-07-09
导读: 附录一: %语音信号时域频域分析 [y,Fs,bits]=wavread('2.wav');%读出信号,采样率和采样位数。 y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2) sigLength=

附录一:

%语音信号时域频域分析 [y,Fs,bits]=wavread('2.wav');%读出信号,采样率和采样位数。

y=y(:,1);%我这里假设你的声音是双声道,我只取单声道作分析,如果你想分析另外一个声道,请改成y=y(:,2)

sigLength=length(y); Y = fft(y,sigLength);

Pyy = Y.* conj(Y) / sigLength; halflength=floor(sigLength/2);

f=Fs*(0:halflength)/sigLength;

figure;plot(f,Pyy(1:halflength+1));xlabel('Frequency(Hz)');

t=(0:sigLength-1)/Fs; figure;plot(t,y);xlabel('Time(s)');

附录二: %抽取的源程序

[y,fs,bs]=wavread('d:\\01.wav',[25000,75000]);

y=y(:,1); lg=length(y); yx=(0:(lg-1))*fs/lg; yx=yx(1:lg/2); % sound(y,fs);

figure(1); subplot(211); plot(y);

title('原始信号'); subplot(212); yf=abs(fft(y)); yf=yf(1:lg/2); plot(yx,yf);

ycq=zeros(1,lg); %先将抽取后的值全设为零

for i=1:80:lg; %通过循环,每隔80个点将抽取后的值赋值为原函数的

ycq(i)=y(i); %采样值 end

sound(ycq,fs); figure(2); subplot(211); plot(ycq);

title('抽取后的信号'); subplot(212); ycqf=abs(fft(ycq)); ycqf=ycqf(1:lg/2); plot(yx,ycqf); 附录三:

语音信号的综合仿真分析程序: [y,fs,bits]=wavread('e:\\235.wav');

% sound(y,fs,bits);

Y=fft(y,40000);%采样点数40000

18

figure(1);

subplot(211);plot(y);title('原始信号波形');

subplot(212);plot(abs(Y));title('原始信号频谱');

fc=20000;%载波频率

y1=modulate(y,fc,fs,'fm');%对原语音信号调制

Y1=fft(y1,40000);%采样点数40000

figure(2);

subplot(211);plot(y1);title('调制后信号波形');

subplot(212);plot(abs(Y1));title('调制后信号频谱');

% sound(y1); y2=y+y1;

Y2=fft(y2,40000);%采样点数40000

figure(3);

subplot(211);plot(y2);title('调制信号+原始信号波形');

subplot(212);plot(abs(Y2));title('调制信号+原始信号频谱');

% sound(y2); figure(4);

fp=1000;fc=1200;As=100;Ap=1;fs1=22050;

wc=2*fc/fs1;wp=2*fp/fs1;

[n,wn]=ellipord(wp,wc,Ap,As); [b,a]=ellip(n,Ap,As,wn); freqz(b,a,512,fs1); x=filter(b,a,y2); X=fft(x,40000); figure(5);

subplot(211);plot(x);title('低通滤波后信号波形');

subplot(212);plot(abs(X));tit

le('低通滤波后信号频谱');

sound(x,40000); 附录四:

%短时能量,短时过零率 % function [x1,x2]=vad(x) [x,Fs,bits] = wavread('e:\\235.wav')

specgram(x,240,8000,80); x=double(x);

x=x/max(abs(x));%将幅度归一化到[-1,1]

framelen=240;

frameinc=80;%设定帧长为240帧移为80

amp1=10; amp2=2; zcr1=10; zcr2=5; maxsilence=3; minlen=15;

19

status=0; count=0; silence=0;

temp1=enframe(x(1:length(x)-1),framelen,frameinc);

temp2=enframe(x(2:length(x)),framelen,frameinc);

signs=(temp1.*temp2)<0; diffs=(temp1-temp2)>0.02; zcr=sum(signs.*diffs,2);%计算过零率

amp=sum(abs(enframe(x(1:length(x)-1),framelen,frameinc)),2); %计算短时能量

%调整能量门限

amp1=min(amp1,max(amp)/4); amp2=min(amp2,max(amp)/8); %开始零点检测

x1=0;x2=0;

for n=1:length(zcr); goto=0; switch status

case{0,1} %静音=0,1开始

if amp(n)>amp1 %确信进入语音阶段x1=max(n-count-1,1);

status=2; silence=0; count=count+1;

elseif

amp(n)>amp2|... %可能处在语音段 zcr(n)>zcr2

status=1; count=count+1;

else %静音状态 status=0; count=0; end

case 2, %2=语音段 if

amp(n)>amp2|...%保持在语音段 zcr(n)>zcr2; count=count+1;

else %语音将结束silence=silence+1;

if silence

elseif count

status=0;

silence=0; count=0; else status=3; end end

20

case 3,break; end end j=0;

for i=1:length(amp)-1; if(zcr(i)>0.02)&(zcr(i+1)<0.02)

j=j+1 jiesu1(j)=i; end end j=1

for i=1:length(jiesu1)-1 if((jiesu1(i+1)-jiesu1(i))>100)&jiesu1(i)~=1

jiesu(j)=jiesu1(i); j=j+1 end

end %找出每段语音结束点

j=1

for i=1:length(amp)-1; if ((zcr(i)<0.85)&zcr(i+1)>0.85)

kaishi1(j)=i+1 j=j+1; end end j=1 for i=1:length(kaishi1)-1 if((kaishi1(i+1)-kaishi1(i))>80)

kaishi(j)=kaishi1(i); j=j+1 end

end

count=count-silence/2; x2=x1+count-1; subplot(311) plot(x)

axis([1 length(x) -1 1]) ylabel('speech');

line([x1*frameincx1*frameinc],[-1,1],'color','red');

line([x2*frameincx2*frameinc],[-1,1],'color','red');

subplot(312) plot(amp);

axis([1 length(amp) 0 max(amp)])

ylabel('energy');

line([x1,x1],[min(amp),max(amp)],'color','red');

line ([x2

x2],[min(amp),max(amp)],'color','red');

subplot(313) plot(zcr); axis([1 length(zcr) 0 max(zcr)])

ylabel('zcr');

line([x1x1],[min(zcr),max(zcr)],'color','red');

line([x2

x2],[min(zcr),max(zcr)],'color','red');

21

…… 此处隐藏:1700字,全部文档内容请下载后查看。喜欢就下载吧 ……
DSP课程设计语音信号(7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/615852.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)