信号与系统三级项目

上传人:日度 文档编号:145971794 上传时间:2020-09-25 格式:DOC 页数:7 大小:271KB
返回 下载 相关 举报
信号与系统三级项目_第1页
第1页 / 共7页
信号与系统三级项目_第2页
第2页 / 共7页
信号与系统三级项目_第3页
第3页 / 共7页
信号与系统三级项目_第4页
第4页 / 共7页
信号与系统三级项目_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《信号与系统三级项目》由会员分享,可在线阅读,更多相关《信号与系统三级项目(7页珍藏版)》请在金锄头文库上搜索。

1、四、项目内容的具体研究和分析结果4.1 语音信号采集方法及时频域波形显示 我们先自己通过声卡采集男女生声音信号,将文件保存为(*.WAV)的格式,然后通过Matlab里的audioread函数将文件导入到Matlab里,通过调用函数显示出声音信号的频域波形。具体的函数如下:function pushbutton5_Callback(hObject, eventdata, handles)h=waitbar(0,please wait);for i=1:1000 waitbar(i/1000,h)endclose(h)global x1;global x2;axes(handles.axes1)

2、;plot(x1);ylabel(幅值);xlabel(t );title(时域图1);axes(handles.axes3);plot(x2);ylabel(幅值);xlabel(t );title(时域图2);function pushbutton6_Callback(hObject, eventdata, handles)global x1;global x2;global fs1;global fs2;axes(handles.axes4); fs=8000; global L1; L1=length(x1); NFFT = 2nextpow2(L1); % Next power of

3、 2 from length of y Y = fft(x1,NFFT)/L1; f = fs/2*linspace(0,1,NFFT/2+1); % Plot single-sided amplitude spectrum. plot(f,2*abs(Y(1:NFFT/2+1); ylabel(Magnitude (dB); xlabel(Frequency (Hz);title(频谱图); axes(handles.axes5); fs=8000; global L2; L2=length(x2); NFFT = 2nextpow2(L2); % Next power of 2 from

4、length of Y = fft(x2,NFFT)/L2; f = fs/2*linspace(0,1,NFFT/2+1); % Plot single-sided amplitude spectrum. plot(f,2*abs(Y(1:NFFT/2+1); ylabel(Magnitude (dB); xlabel(Frequency (Hz);title(频谱图);时域:男声VS女声男声女声 频域:男声VS女声男声女声4.2 男、女声波形区分方法4.2.1 男、女声的差别 通过观察得到的图形,我们可以看出男声与女声的声音大部分集中于200-4000Hz之间,而女声较男声更多的声音集中在

5、较为低的频率段。所以女生声音有点比较尖的感觉,男声音听起来比较洪亮浑厚。4.2.2区分方法 根据男、女声的差别我们可以总结出三种区分男、女声的方法:一是根据男、女声基因频率的范围来区分;二是根据男、女声频率主要集中在哪个频段来区分;三是根据男、女声低频成份、高频成分所占的比例来区分。我们小组采用方法一通过观察得到的图形,我们可以看出男声与女声的声音大部分集中于200-4000Hz之间。人类基音范围人70350hz,男声大概100200hz,女生200350hz。据此我们以200hz为界限判断男女声音。用汉宁窗函数滤去输入音频的高频部分,后经过椭圆滤波器(获得更窄的过渡带宽和较小的阻带波动)近似

6、求出基音频率。代码实现:function pushbutton7_Callback(hObject, eventdata, handles)global x1;global fs1;data1=x1(:,1);n=0:length(x1)-1;% 对采集数据作滤波处理blocksize =length(data1); % 计算窗函数长度 window = hanning(blocksize); % 计算汉宁窗函数data2=window.*data1; % 对数据先作加窗处理% wp=70,400; %100Hz-400Hz% wp=wp*2/fs;wp=3000*2/fs1;b,a=elli

7、p(4,0.1,20,wp); % 构造椭圆滤波器data=filter(b,a,data2); % 求加窗处理后的数据经过滤波器的响应xmax,index=max(data1);timewin=floor(0.015*fs1);xwin=data1(index-timewin:index+timewin);y,lags=xcov(xwin);ylen=length(y);halflen=(ylen+1)/2 +30;yy=y(halflen: ylen);ymax,maxindex = max(yy);fmax=fs1/(maxindex+30);disp(Maximum occurred

8、at , num2str(fmax), Hz)f=fmax;justify=f;%Hzif justify200 %limitHz以下判断是男的 msgbox( This is a handsome boy)else msgbox( This is a fair girl)end 4.3 抽样定理和信号的降采样处理及仿真4.3.1抽样定理 时域抽样定理说明:一个频域受限的信号f(t) 如果频谱只占据-wm wm 的范围,则信号f(t)可以用等间隔的抽样值唯一地表示。而间隔必须不大或者说,最低抽样频率为2f(m)4.3.2信号的降采样处理及仿真代码实现:function pushbutton13

9、_Callback(hObject, eventdata, handles)% hObject handle to pushbutton13 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)s=str2double(get(handles.edit1,String);s=1/s;global x1;axes(handles.axes6); global L1; %jia n

10、gcaiyangglobal fs1;global M1;k1=1:L1/s;%确定抽取位置y1=x1(s*k1);%实现抽取后的数据M1=length(y1);%计算抽取后数据点数图%抽取数据在原采样频率FS下的波形频谱分析yf=fft(y1);%求频谱% ty=(0:M-1)/FS;%计算数据点时刻%抽取数据在FS/2采样频率下的波形频谱分析fz1=(0:M1/2)*(fs1/s)/M1;%确定频谱图频率刻度plot(fz1,abs(yf(1:M1/2+1);%绘制频谱图title(新采样率下新频谱图);%加标题%实现数据转换global x2;axes(handles.axes7); g

11、lobal L2; %jia ngcaiyangglobal fs2;global M2;k2=1:L2/s;%确定抽取位置y2=x2(s*k2);%实现抽取后的数据M2=length(y2);%计算抽取后数据点数图%抽取数据在原采样频率FS下的波形频谱分析yf2=fft(y2);%求频谱% ty=(0:M-1)/FS;%计算数据点时刻%抽取数据在FS/2采样频率下的波形频谱分析fz2=(0:M2/2)*(fs2/s)/M2;%确定频谱图频率刻度plot(fz2,abs(yf2(1:M2/2+1);%绘制频谱图title(新采样率下新频谱图);%加标题%实现数据转换 最终可得出声音信号的主要频

12、率范围为02500Hz,而根据采样定理可知,该声音信号采样频率应不小于5000Hz(奈奎斯特频率),故使用8000Hz的采样频率可以保证声音在失真较少的条件下进行信号的采样与恢复,但当采样频率远远小于5000Hz,声音可能完全失真。五、总结本次三级项目我们主要进行了语音信号的采集,并对采集的语音信号进行时域和频域波形显示及仿真,然后对采集的语音信号进行降采样处理和男女声的区分。使用Matlab语言实现语音信号的采集,时域和频域波形显示,使我们对信号时域和频域有了更深的理解,而它们之间的桥梁就是傅里叶变换,通过仿真验证抽样定理,理解奈奎斯特频率,即最低允许的抽样频率:根据人类基音范围,区分男声与女声,经过我们小组成员的不懈努力,但这个还是方法存在一定的误差。 我们小组使用了GUI 界面,能直观看到整个实验过程,加深了此项目的理解。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号