信号与系统三级项目

四、项目内容的具体研究和分析结果
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)
end
close(h)
global x1;
global x2;
axes(handles.axes1);
plot(x1);
ylabel('幅值');
xlabel('t ');
title('时域图1');
axes(handles.axes3);
plot(x2);
ylabel('幅值');pcu h
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 = 2^nextpow2(L1); % Next power of 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 = 2^nextpow2(L2); % Next power of 2 from 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 之间,而女声较男声更多的声音集中在较为低的频率段。所以女生声音有点比较尖的感觉,男声音听起来比较洪亮浑厚。
4.2.2区分方法
根据男、女声的差别我们可以总结出三种区分男、女声的方法:一是根据男、女声基因频率的范围来区分;二是根据男、女声频率主要集中在哪个频段来区分;三是根据男、女声低频成份、高频成分所占的比例来区分。
我们小组采用方法一‘通过观察得到的图形,我们可以看出男声与女声的声音大部分集中于200-4000Hz之间。人类基音范围人70~350hz,男声大概100~200hz,女生200~350hz。据此我们以200hz为界限判断男女声音。用汉宁窗函数滤去输入音频的高频部分,后经过椭圆滤波器(获得更窄的过渡带宽和较小的阻带波动)近似求出基音频率。
代码实现:
KKS689
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]=ellip(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;
mesh设备yy=y(halflen: ylen);
[ymax,maxindex] = max(yy);
fmax=fs1/(maxindex+30);
disp(['Maximum occurred at ', num2str(fmax), ' Hz'])
f=fmax;
justify=f;%Hz
if justify<200  %limitHz以下判断是男的
msgbox( 'This is a handsome boy')
else
msgbox( 'This is a fair girl')
ca173end
4.3  抽样定理和信号的降采样处理及仿真 4.3.1抽样定理
时域抽样定理说明:一个频域受限的信号f(t) 如果频谱只占据-w m  ~w m            的范围,则信号f(t)可以用等间隔的抽样值唯一地表示。而间隔必须不大 或者说,最低抽样频率为2f(m)
4.3.2信号的降采样处理及仿真
代码实现:
function  pushbutton13_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;
m 12)
2(m)m f f ωπ=(其中

本文发布于:2024-09-20 22:24:46,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/157186.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:声音   女声   信号   方法
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议