语音信号课程设计结果及答案Word格式文档下载.docx
- 文档编号:17271462
- 上传时间:2022-11-30
- 格式:DOCX
- 页数:25
- 大小:339.22KB
语音信号课程设计结果及答案Word格式文档下载.docx
《语音信号课程设计结果及答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《语音信号课程设计结果及答案Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
1)简述文件I/O功能及其好处:
:
2)文件I/O功能中常用的两个函数命令,简述其用法:
3)将上面对wode语音文件进行处理后在workspace里得到的变量x保存成dat格式的文件,文件名为myfile,在调用myfile文件,观察workspace里变量的情况。
Save‘myfile’x
观察后结论:
生成一个myfile.mat的文件Variablescreatedincurrentworkspace.
(5)绘图命令:
1)简述几个绘图常用的命令和图形注释命令,并做简单说明:
利用plot;
subplot
例如:
income=[3.24.15.05.6];
outgo=[2.54.03.354.9];
subplot(2,1,1);
plot(income)
subplot(2,1,2);
plot(outgo)
2)在x-y直角坐标中绘出下列两个函数图形:
,其中步长设为0.1.
要求:
要用到subplottitlexlabelylabel,要有程序及画出的图像。
x=[-5:
0.1:
5];
y=10./(1+x.^2);
z=5+4.*sin(x);
subplot(1,2,1);
plot(x,y);
xlabel('
x'
ylabel('
y'
subplot(1,2,2);
plot(x,z);
z'
绘图结果:
3)做下列函数图形:
设n为区间[0,1]的等分段数.
自己设定n的大小,要用到title,xlabel,ylabel,要有程序以及图像。
x=[0:
0.01:
1];
y=[0:
u=sin(pi*x)'
*sin(pi*y);
figure;
),ylabel('
),title=('
u=sin(pi*x)*sin(pi*y)'
mesh(x,y,u);
2语音信号采集
1)实验目的
(1)学会用windows自带的录音机录制不同采样频率、量化等级、声道的语音信号。
(2)学会用cooledit录音软件录制并保存语言信号,并进行后期的处理。
(3)能用matlab中的相关函数录制并播放语音信号,并学会绘制语音信号的时域波形和频谱图。
1)实验环境
课程设计平台:
带有声卡的电脑一台,MATLAB6.5
2)实验要求
针对每一项实验任务书写详细的实验报告,对实验的方法、步骤、实验结果、实验数据波形进行描述和分析。
3)实验内容
(1)认真阅读实验原理,自行查找有关资料,做好实验前的理论和技术准备。
(2)用录音机录制一段自己的语音信号,选择三种不同的采样率对同一语音信号进行采样,生成.wav文件,并试听回放效果,进行比较。
(3)用cooledit录音软件录制一段带有伴奏的语音信号。
(4)用wavrecord函数录制语音信号,用sound函数播放。
(5)比较不同录音方法的优缺点。
(6)根据自己录制的语音信号根编写有关的MATLAB程序。
4)实验结果与分析:
(1)不同录音方法的优缺点:
(2)编写录制、播放语音信号的matlab程序
Fs=11025;
y=wavrecord(5*Fs,Fs,1);
save'
wode.wav'
x;
sound(x,Fs,8);
3语音信号的时频分析
熟悉matlab的界面和一般操作;
掌握语音信号的时域波形及其频谱,加窗和滤波的实现;
掌握短时平均能量,平均过零,平均幅度、自相关函数;
2)实验内容:
(1)分别画出所采集语音的时域、频域波形;
再进行加窗处理,画出加窗后的对应幅度谱(用subplot2*2的图同时显示时域,对数幅度,加25ms窗及10ms窗的对数幅度谱的图形);
(2)分别画出所录制语音的短时平均能量、平均过零、平均幅度、自相关的波形;
3)实验结果与分析:
(1)结果图:
dft(x,11025)
分析说明:
(2)结果图:
1)、短时平均能量:
stEn(x,20,10,11025)
2)、平均过零:
stZn(x,20,10,11025)
3)、平均幅度:
stMn(x,20,10,11025)
4)、自相关:
stRn(x,1,20,10,11025)
4)实验程序:
function[En]=stEn(x,N,l,sampling_rate)
%sp2=x;
N=winlgh;
l=frmlgh;
L=length(x);
d=floor((L-N)/l);
x=x'
;
p=ones(N,1);
%计算短时平均能量
En=zeros(1,d);
fori=1:
d
En(i)=(x((1+(i-1)*l):
(1+(i-1)*l+N-1)).^2)*p;
end
etime=length(x)/sampling_rate;
figure
plot(l/sampling_rate:
l/sampling_rate:
l*d/sampling_rate,En);
axis([0etimemin(En)max(En)]);
grid;
Time(s)'
title('
短时平均能量'
function[Zn]=stZn(x,N,l,sampling_rate)
%计算短时平均过零
Zn=zeros(1,d);
Max=max(x);
L
ifabs(x(i))<
(Max/20)%定不同能量的闸值
x(i)=0;
end
end
forn=(1+(i-1)*l):
(1+(i-1)*l+N-1)
Zn(i)=Zn(i)+abs(sign(x(n))-sign(x(n+1)));
etime=length(x)/sampling_rate;
Zn=Zn/N;
l*d/sampling_rate,Zn);
axis([0etimemin(Zn)max(Zn)]);
短时平均过零'
3)、平均幅度:
function[Mn]=stMn(x,N,l,sampling_rate)
%x=x;
%计算短时平均幅度
Mn=zeros(1,d);
Mn(i)=abs(x((1+(i-1)*l):
(1+(i-1)*l+N-1)))*p;
l*d/sampling_rate,Mn);
axis([0etimemin(Mn)max(Mn)]);
短时平均幅度'
4)、自相关:
function[Rn]=stRn(sp2,n,N,k,sp)%n为起始点,N为窗长,k为修正长度
%计算短时修整自相关
function[Rn]=stRn(x,n,N,k,sp)%n为起始点,N为窗长,k为修正长度
Rn=zeros(1,k);
temp=x(n:
(n+N-1));
temp2=x(n:
(n+N-1+k));
k
Rn(i)=temp*temp2(i:
(i+N-1))'
t=(1:
length(Rn))/sp;
plot(t,Rn);
修正短时自相关'
s(秒)'
4语音信号的语谱图
加深信号处理理论在语音信号中的应用;
理解语谱图与时频分辨率的关系;
(1)使用函数specgram_ex3p19.画出所采集语音的宽带语谱图和窄带语谱图,分析语谱图与时频分辨率的关系;
(2)生成高通和低通滤波器,对语音信号进行滤波,对比一下效果;
宽带:
specgram_ex3p19(y,50,10,11025)
窄带:
specgram_ex3p19(y,200,10,11025)
(1)语谱图
function[spec]=specgram_ex3p19(x,winlgh,frmlgh,sampling_rate);
%specgram_hw3p20(x,winlgh,frmlgh,sampling_rate)
%
%functiontocomputeaspectrogram
%x=inputwaveform
%winlgh=windowlengthinsamples
%frmlgh=framelengthinsamples
%sampling_rate=samples/sec
%PARAMETERS
%sampling_rate=10000;
%samplingrate
lfft=1024;
%FFTlength
lfft2=lfft/2;
%winlgh=200;
%(128)windowlength(insamples)
%frmlgh=10;
%frameinterval(insamples)
noverlap=winlgh-frmlgh;
%x=x(1:
4500);
x=2.0*x/max(abs(x));
etime=length(x)/sampling_rate;
%---------------------------------------------------------------------------%
spec=abs(specgram(x,lfft,sampling_rate,winlgh,noverlap));
subplot(211);
plot((1:
length(x))/sampling_rate,x)
xlabel('
title('
SPEECH'
axis([0etime-2.52.5]);
grid;
subplot(212)
imagesc(0:
.010:
etime,0:
1000:
(sampling_rate/2),log10(abs(spec)));
axis('
xy'
)
Time(ms)'
Frequency(Hz)'
SPECTROGRAM'
(2)高、低通滤波器
g=[1+zeros(1,100)zeros(1,176)];
gg=[zeros(1,150)1+zeros(1,126)];
f=fft(y);
wbl=f(1:
276).*g;
wbh=f(1:
276).*gg;
bl=idft(wbl,276);
bh=idft(wbh,276);
plot(abs(bl));
低通滤波器'
plot(abs(bh));
高通滤波器'
5滤波器的设计及应用
熟悉MATLAB编程语言;
掌握滤波器的设计方法及应用。
用MATLAB设计FIR滤波器,采用窗函数法设计一个采样频率为600
输入信号频率为100
、250
和270
的混叠信号,设计的FIR滤波器的技术指标:
采样频率600
,采样点数256个,通带截止频率100
,阻带起始频率200
,经FIR滤波器滤掉250
的信号,留下100
的信号,达到滤波效果;
结果图:
%designaFIRlowpassfilter
%wp=0.2pi,Rp=0.25DB,ws=0.3pi,As=50dB
wp=1/3*pi;
ws=2/3*pi
tr_width=ws-wp;
M=ceil(6.6*pi/tr_width)+1;
n=[0:
1:
M-1];
wc=(ws+wp)/2;
%idealLPFcutofffrequency
hd=ideal_lp(wc,M);
w_ham=(hamming(M))'
h=hd.*w_ham;
[db,mag,pha,grd,w]=freqz_m(h,[1]);
delta_w=2*pi/1000;
Rp=-(min(db(1:
wp/delta_w+1)));
%actualpassbandripple
As=-round(max(db(ws/delta_w+1:
501)));
%minstopbandattenuation
%subplot(1,1,1);
figure
(1)
%subplot(2,2,1);
stem(n,hd);
%title('
IdealImplustRespone'
%axis([0M-1-0.10.3]);
n'
hd(n)'
%subplot(2,2,2);
stem(n,w_ham);
HammingWindows'
%axis([0M-1-0.11.1]);
w(n)'
%subplot(2,2,3);
stem(n,h);
ActualInpluseResponse'
h(n)'
%subplot(2,2,4);
%plot(w/pi,db);
MagnitudeResponseindB'
grid
axis([01-10010]);
frequencyinpiunits'
Decibels'
pp=0.05*10.^db;
lenth=length(f);
w=(1/lenth:
1/lenth:
0.5)*11025;
duishu=log(abs(f(2:
length(w))));
plot(pp.*duishu(10:
510));
6语音信号的线形预测分析
理解线性预测分析方法原理;
掌握其经典解法中的自相关法;
理解lpc谱的特点;
对语音信号进行加窗处理,画出加窗后的时域和自相关波形,及加窗后的信号频谱,4极点和6极点模型的频率响应,并将三者进行比较。
理解说明LPC谱的特点。
lpc46(y,1,200,11025)%执行两次
%%%%%%%%%%%%%%%%%%%%%%对比6与4阶自相关法
function[rea4]=lpc46(x,first,winlgh,sampling_rate);
sw=x(first:
(first+winlgh-1))'
.*hamming(winlgh);
%a加汉明窗
Rsw=xcorr(sw'
%a自相关
t=(first:
(first+winlgh-1))*1000/sampling_rate;
plot(t,sw);
ms'
加窗后时域波形'
t=(1:
length(Rsw))*1000/sampling_rate;
plot(t,Rsw);
加窗后自关波形'
mid=round(length(Rsw)/2);
Rsw4=[Rsw(mid:
(mid+3));
Rsw((mid-1):
(mid+2));
Rsw((mid-2):
(mid+1));
Rsw((mid-3):
mid)];
%生成4*4自相关阵
Rsw6=[Rsw(mid:
(mid+5));
(mid+4));
Rsw((mid-4):
Rsw((mid-5):
%生成6*6自相关阵
rea4=inv(Rsw4)*Rsw((mid+1):
(mid+4))'
%求预测系数4
rea6=inv(Rsw6)*Rsw((mid+1):
(mid+6))'
%求预测系数6
A4=sqrt(Rsw(250)-Rsw((mid+1):
(mid+4))*rea4);
%求增益
A6=sqrt(Rsw(250)-Rsw((mid+1):
(mid+6))*rea6);
w=pi/512:
pi/512:
pi;
%生成输出频率范围
j=sqrt(-1);
FW4=rea4'
*[exp(-j*w);
exp(-j*w*2);
exp(-j*w*3);
exp(-j*w*4)];
%在频率范围求预测频响
FW6=rea6'
exp(-j*w*4);
exp(-j*w*5);
exp(-j*w*6)];
HW4=A4./(1-FW4);
%由预测频响求
HW6=A6./(1-FW6);
FW2=fft(sw,1024);
%信号傅立叶变换
FW3=FW2(1:
512);
w=(1/1024:
1/1024:
0.5)*sampling_rate;
figure;
subplot(2,2,1);
plot(w,log(abs(FW3)));
频率hz'
加窗后信号频谱'
subplot(2,2,2);
plot(w,log(abs(HW4)),'
g'
4极点模型频率响应'
subplot(2,2,3);
plot(w,log(abs(HW6)),'
r'
6极点模型频率响应'
%subplot(2,2,4);
plot(w,log(abs(FW3)),w,log(abs(HW4)),w,log(abs(HW6)));
三者比较'
subplot(2,2,4);
7同态滤波的应用
理解同态分析方法原理;
掌握最小相位分析法。
用最小相位法分离低倒谱分量作为声道响应,估计基音周期,以冲激响应生成语音信号,与实际信号进行对比。
将分离的低倒谱和高倒谱部分变换到时域和频域;
观察其与实际信号的关系。
f=fft(x);
0.5)*8000;
h=log(abs(f(2:
z=idft(h(1:
276),276);
%daopu
dp=fft(z).*g;
%didaopu
sdp=idft(dp,276);
gdp=fft(z).*gg;
%gaodaopu
igdp=idft(gdp,276);
fdp=fft(z).*f(1:
276);
ifdp=idft(fdp,276);
plot(x(1:
276));
语音信号波形'
plot(abs(fdp));
生成的语音信号'
figure
(2)
plot(abs(dp));
低倒谱频域'
plot(abs(sdp));
低倒谱时域'
plot(abs(gdp));
ti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 信号 课程设计 结果 答案