搜档网
当前位置:搜档网 › 语音信号matlab+GUI滤波处理

语音信号matlab+GUI滤波处理

语音信号matlab+GUI滤波处理
语音信号matlab+GUI滤波处理

function varargout = digitalfilter(varargin)

% DIGITALFILTER MATLAB code for digitalfilter.fig

% DIGITALFILTER, by itself, creates a new DIGITALFILTER or raises the existing

% singleton*.

%

% H = DIGITALFILTER returns the handle to a new DIGITALFILTER or the handle to % the existing singleton*.

%

% DIGITALFILTER('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in DIGITALFILTER.M with the given input arguments. %

% DIGITALFILTER('Property','Value',...) creates a new DIGITALFILTER or raises the % existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before digitalfilter_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to digitalfilter_OpeningFcn via varargin.

%

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

%

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help digitalfilter

% Last Modified by GUIDE v2.5 11-Dec-2013 15:44:57

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @digitalfilter_OpeningFcn, ...

'gui_OutputFcn', @digitalfilter_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before digitalfilter is made visible.

function digitalfilter_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to digitalfilter (see VARARGIN)

% Choose default command line output for digitalfilter

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes digitalfilter wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = digitalfilter_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

function filtering_Callback(hObject, eventdata, handles)

%m_filter_choice_string=get(handles.m_filter_choice,'String');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

%set(handles.play_af,'Visible','off');

filter_order_value=str2num(get(handles.filter_order,'String'));

filter_startf_value=str2num(get(handles.filter_startf,'String'));

filter_stopf_value=str2num(get(handles.filter_stopf,'String'));

filtering_value=get(handles.filtering,'Value');

global fs;

N=filter_order_value;

if(get(handles.filter_hp,'Value')==1)

wn=filter_stopf_value/fs*2;

b=fir1(N,wn,'high');

end

if(get(handles.filter_lp,'Value')==1)

wn=filter_stopf_value/fs*2;

b=fir1(N,wn,'low');

end

if(get(handles.filter_bp,'Value')==1)

w1=filter_startf_value/fs*2;

w2=filter_stopf_value/fs*2;

b=fir1(N,[w1 w2],'bandpass');

end

if(get(handles.filter_bs,'Value')==1)

w1=filter_startf_value/fs*2;

w2=filter_stopf_value/fs*2;

b=fir1(N,[w1 w2],'DC-1');

end

%%设计滤波器//用下拉菜单实现

% switch m_filter_choice_string

% case HP%%高通

% wn=filter_stopf_value/44100*2;

% b=fir1(N,wn,'high');

% case LP%%低通

% wn=filter_stopf_value/44100*2;

% b=fir1(N,wn,'low');

% case BP%%带通

% w1=filter_startf_value/44100*2;

% w2=w1+filter_band/44100*2;

% b=fir1(N,[w1 w2],'bandpass');

% case BS%%带阻

% w1=filter_startf_value/44100*2;

% w2=w1+filter_band/44100*2;

% b=fir1(N,[w1 w2],'DC-1');

% end;

%% 滤波处理

if(filtering_value==1)

% fs=44100; %语音信号采样频率为22050

% x=wavread('C:\Documents and Settings\CYJ-714\My Documents\MATLAB\meiname.wav'); %读取语音信号的数据,赋给变量x

% x1=x(:,2);%抽取一声道

% t=(0:length(x1)-1)/44100

%

% X1=fft(x1,1024); %对信号做1024点FFT变

global fs;

global xx1;%xx1是截取后的音频信号

x1=xx1;

t=(0:length(xx1)-1)/44100;

f=fs*(0:511)/1024;

s=filter(b,1,x1);

S1=fft(s,1024); %对信号做1024点FFT变换

%%画出图形*4

% axes(handles.m_filter);

% freqz(b,1); %生成频率响应参数

%set(handles.m_filter,'XminorTick','on')

% axes(handles.m_signal_be);

% plot(t,x1,'g');

% hold on;

% plot(t,s,'r');

% legend('a','b');

% title('原始语音信号');xlabel('time');ylabel('magnitude');

% axis('manual');

% hold on;

%set(handles.m_signal_be,'XminorTick','on')

axes(handles.m_signal_af)

plot(t,s);

%axis([0 10 -0.8 0.8]);

title('滤波后语音信号');xlabel('time');ylabel('magnitude');

%set(handles.m_signal_af,'XminorTick','on')

% axes(handles.m_fft_be);

% axis auto;

% plot(f,abs(X1(1:512)),'g');

% hold on;

% plot(f,abs(S1(1:512)),'r');

% legend;

% title('原始语音信号频谱');xlabel('frequency');ylabel('magnitude'); % axis('manual');

% hold on;

%set(handles.m_fft_be,'XminorTick','on')

axes(handles.m_fft_af);

plot(f,abs(S1(1:512)));

%axis([0 25000 0 14]);

title('滤波后语音信号频谱');xlabel('frequency');ylabel('magnitude');

axes(handles.m_filter);

H=fft(b,1024);%求出它的DFT变换,然后用plot分别画图即可。

plot([1:512]/1024*fs,20*log10(abs(H(1:512)))); %这个是幅频特性衰减函数

%plot(angle(H)); %这个是相频特性,

% [h,f1]=freqz(b,1); %生成频率响应参数

% subplot(2,1,1);

% plot(f1,abs(h)) ;%画幅频响应图

% subplot(2,1,2);

% plot(f1,angle(h)); %画相频响应图

% handles.song=s1;

global m_song;%m_song是滤波后的音频信号

m_song=s;

end

% wavwrite(s1,44100,'C:\Documents and Settings\CYJ-714\My Documents\MATLAB\flanger.wav');

guidata(hObject,handles);

% hObject handle to m_execute (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% hObject handle to m_filter_choice (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns m_filter_choice contents as cell array

% contents{get(hObject,'Value')} returns selected item from m_filter_choice

% hObject handle to m_execute (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% hObject handle to m_filter_choice (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: contents = cellstr(get(hObject,'String')) returns m_filter_choice contents as cell array % contents{get(hObject,'Value')} returns selected item from m_filter_choice

function play_af_Callback(hObject, eventdata, handles)

% S=wavread('C:\Documents and Settings\CYJ-714\My Documents\MATLAB\meiname.wav'); % sound(S,44100);

% set(handles.play_af,'UserData',1);

global m_song;

global fs;

m_m_song=m_song;

sound(m_m_song,fs);

% m_song=handles.song

% sound(m_m_song,44100);

% i=1;

% % sound(S1,44100);

% while(get(handles.play_af,'UserData')==1)

% if (i<=3)%总长度为6秒

% sound(m_m_song((i-1)*fs/10+1:i*fs/10),fs);

% i=i+1;

% end

% end

guidata(hObject,handles);

% function stopplay_af_Callback(hObject, eventdata, handles)

% set(handles.play_af,'UserData',0);

% guidata(hObject,handles);

% function m_filter_choice_Callback(hObject, eventdata, handles)

% m_filter_choice_value=get(handles.m_filter_choice,'String');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

% %当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示

% if((m_filter_choice_value==HP)||(m_filter_choice_value==LP))

% set(handles.filter_order,'visible','on');

% set(handles.filter_band,'visible','off');

% set(handles.filter_stopf,'visible','on');

% set(handles.filter_starf,'visible','off');

% else

% %当选择Bandpass或者Bandstop,使相应的临界频率的显示,使参数能够输入

% if((m_filter_choice_value==BP)||(m_filter_choice_value==BS))

% set(handles.m_order,'visible','on');

% set(handles.m_stopf,'visible','off');

% set(handles.m_startf,'visible','on');

% set(handles.m_band,'visible','on');

% end

% end

% function m_filter_choice_CreateFcn(hObject, eventdata, handles)

%

% % Hint: popupmenu controls usually have a white background on Windows.

% % See ISPC and COMPUTER.

% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) % set(hObject,'BackgroundColor','white');

% end

function filter_order_Callback(hObject, eventdata, handles)

filter_order_value=str2num(get(handles.filter_order,'String'));%%在按键调用时也要加上

if (isempty(filter_order_value))

set(hObject,'String','1') %%无输入时,设为0

end

% function filter_order_CreateFcn(hObject, eventdata, handles)

%

% % Hint: edit controls usually have a white background on Windows.

% % See ISPC and COMPUTER.

% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

% set(hObject,'BackgroundColor','white');

% end

function filter_band_Callback(hObject, eventdata, handles)

%

% function filter_band_CreateFcn(hObject, eventdata, handles)

%

% % Hint: edit controls usually have a white background on Windows.

% % See ISPC and COMPUTER.

% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))

% set(hObject,'BackgroundColor','white');

% end

function filter_hp_Callback(hObject, eventdata, handles)

input=get(handles.filter_hp,'Value');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示

if(input==1)

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','off');

set(handles.filter_lp,'Visible','off');

set(handles.filter_bp,'Visible','off');

set(handles.filter_bs,'Visible','off');

else

if(input==0)

set(handles.filter_lp,'Visible','on');

set(handles.filter_bp,'Visible','on');

set(handles.filter_bs,'Visible','on');

set(handles.filter_hp,'Visible','on');

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

end

end

function filter_lp_Callback(hObject, eventdata, handles)

input=get(handles.filter_lp,'Value');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示

if(input==1)

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','off');

set(handles.filter_hp,'Visible','off');

set(handles.filter_bp,'Visible','off');

set(handles.filter_bs,'Visible','off');

else

if(input==0)

set(handles.filter_lp,'Visible','on');

set(handles.filter_bp,'Visible','on');

set(handles.filter_bs,'Visible','on');

set(handles.filter_hp,'Visible','on');

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

end

end

function filter_bp_Callback(hObject, eventdata, handles)

input=get(handles.filter_bp,'Value');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示

if(input==1)

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

set(handles.filter_lp,'Visible','off');

set(handles.filter_hp,'Visible','off');

set(handles.filter_bs,'Visible','off');

else

if(input==0)

set(handles.filter_lp,'Visible','on');

set(handles.filter_bp,'Visible','on');

set(handles.filter_bs,'Visible','on');

set(handles.filter_hp,'Visible','on');

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

end

end

function filter_bs_Callback(hObject, eventdata, handles)

input=get(handles.filter_bs,'Value');%读取此时设计的滤波器的类型,“Howpass、Lowpass、Bandpass、Bandstop”

%当选择Lowpass或者Highpass,屏蔽相应的临界频率的显示

if(input==1)

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

set(handles.filter_lp,'Visible','off');

set(handles.filter_bp,'Visible','off');

set(handles.filter_hp,'Visible','off');

else

if(input==0)

set(handles.filter_lp,'Visible','on');

set(handles.filter_bp,'Visible','on');

set(handles.filter_bs,'Visible','on');

set(handles.filter_hp,'Visible','on');

set(handles.filter_stopf,'visible','on');

set(handles.filter_startf,'visible','on');

end

end

function showing_Callback(hObject, eventdata, handles)

showing_value=get(handles.showing,'Value');

if(showing_value==1)

% fs=44100; %语音信号采样频率为44100

% x=audioread('C:\Documents and Settings\CYJ-714\My Documents\MATLAB\meiname.wav'); %读取语音信号的数据,赋给变量x

% x_1=x(:,2);%抽取一声道

% global song_length;

% song_length=length(x_1);

global song_start;

% global File_name;

% x1=audioread(filename,[song_start:song_start+10*fs]);

global fs;

global File_name;

x11=audioread(File_name,[song_start (song_start+10*fs)]);

x1=x11(:,1);

t=(0:length(x1)-1)/fs;

f=fs*(0:511)/1024;

X1=fft(x1,1024); %对信号做FFT变

axes(handles.m_signal_be);

plot(t,x1);

title('原始语音信号');xlabel('time');ylabel('magnitude');

axes(handles.m_fft_be);

plot(f,abs(X1(1:512)));

title('原始语音信号频谱');xlabel('frequency');ylabel('magnitude');

global xx1;%从整个音频中截取出的一段信号

xx1=x1;

end

% wavwrite(s1,44100,'C:\Documents and Settings\CYJ-714\My Documents\MATLAB\flanger.wav');

guidata(hObject,handles);

function song_slider_Callback(hObject, eventdata, handles)

% function song_slider_CreateFcn(hObject, eventdata, handles)

%

% % Hint: slider controls usually have a light gray background.

% if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) % set(hObject,'BackgroundColor',[.9 .9 .9]);

% end

function set_start_Callback(hObject, eventdata, handles)

%load chuandi.mat

% [x Fs]=audioread(filename); %读取语音信号的数据,赋给变量x

load chuandi.mat;

global File_name;

File_name=filename;

[x Fs]=audioread(File_name,'native'); %读取语音信号的数据,赋给变量x

global fs;

fs=Fs;

% global x_1;

% x_1=x(:,2);%抽取一声道,x1是整个歌曲长度

global song_length;

song_length=length(x);

song_slider_value=get(handles.song_slider,'Value');

global song_start;

song_start=floor(song_slider_value*song_length)+1;

% function set_stop_Callback(hObject, eventdata, handles)

% song_slider_value=get(handles.song_slider,'Value');

% global song_length;

% global song_stop;

% song_stop=floor(song_slider_value*song_length);

function play_be_Callback(hObject, eventdata, handles)

global xx1;

global fs;

sound(xx1,fs);

%

%

% function filter_order_CreateFcn(hObject, eventdata, handles)

%

% % Hint: edit controls usually have a white background on Windows.

% % See ISPC and COMPUTER.

% if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) % set(hObject,'BackgroundColor','white');

% end

function set_start_CreateFcn(hObject, eventdata, handles)

function showing_CreateFcn(hObject, eventdata, handles)

function filter_stopf_Callback(hObject, eventdata, handles)

function filter_stopf_CreateFcn(hObject, eventdata, handles)

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');

end

function song_slider_CreateFcn(hObject, eventdata, handles)

% Hint: slider controls usually have a light gray background.

if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor',[.9 .9 .9]);

end

function filter_order_CreateFcn(hObject, eventdata, handles)

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');

end

function filter_hp_CreateFcn(hObject, eventdata, handles)

function filter_lp_CreateFcn(hObject, eventdata, handles)

function filter_bp_CreateFcn(hObject, eventdata, handles)

function filter_bs_CreateFcn(hObject, eventdata, handles)

function filtering_CreateFcn(hObject, eventdata, handles)

function play_af_CreateFcn(hObject, eventdata, handles)

function filter_startf_CreateFcn(hObject, eventdata, handles)

% Hint: edit controls usually have a white background on Windows.

% See ISPC and COMPUTER.

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white');

end

function m_filter_CreateFcn(hObject, eventdata, handles)

function m_signal_be_CreateFcn(hObject, eventdata, handles)

function m_fft_be_CreateFcn(hObject, eventdata, handles)

function m_signal_af_CreateFcn(hObject, eventdata, handles)

function m_fft_af_CreateFcn(hObject, eventdata, handles)

function play_be_CreateFcn(hObject, eventdata, handles)

语音信号处理与及其MATLAB实现分析

目录 摘要 (2) 第一章绪论 (3) 1.1 语音课设的意义 (3) 1.2 语音课设的目的与要求 (3) 1.3 语音课设的基本步骤 (3) 第二章设计方案论证 (5) 2.1 设计理论依据 (5) 2.1.1 采样定理 (5) 2.1.2 采样频率 (5) 2.1.3 采样位数与采样频率 (5) 2.2 语音信号的分析及处理方法 (6) 2.2.1 语音的录入与打开 (6) 2.2.2 时域信号的FFT分析 (6) 2.2.3 数字滤波器设计原理 (7) 2.2.4 数字滤波器的设计步骤 (7) 2.2.5 IIR滤波器与FIR滤波器的性能比较 (7) 第三章图形用户界面设计 (8) 3.1 图形用户界面概念 (8) 3.2 图形用户界面设计 (8) 3.3 图形用户界面模块调试 (9) 3.3.1 语音信号的读入与打开 (9) 3.3.2 语音信号的定点分析 (9) 3.3.3 N阶高通滤波器 (11) 3.3.4 N阶低通滤波器 (12) 3.3.5 2N阶带通滤波器 (13) 3.3.6 2N阶带阻滤波器 (14) 3.4 图形用户界面制作 (15) 第四章总结 (18) 附录 (19) 参考文献 (24)

摘要 数字信号处理是将信号以数字方式表示并处理的理论和技术。数字信号处理与模拟信号处理是信号处理的子集。 数字信号处理的目的是对真实世界的连续模拟信号进行测量或滤波。因此在进行数字信号处理之前需要将信号从模拟域转换到数字域,这通常通过模数转换器实现。而数字信号处理的输出经常也要变换到模拟域,这是通过数模转换器实现的。 数字信号处理的算法需要利用计算机或专用处理设备如数字信号处理器(DSP)和专用集成电路(ASIC)等。数字信号处理技术及设备具有灵活、精确、抗干扰强、设备尺寸小、造价低、速度快等突出优点,这些都是模拟信号处理技术与设备所无法比拟的。 数字信号处理的核心算法是离散傅立叶变换(DFT),是DFT使信号在数字域和频域都实现了离散化,从而可以用通用计算机处理离散信号。而使数字信号处理从理论走向实用的是快速傅立叶变换(FFT),FFT的出现大大减少了DFT的运算量,使实时的数字信号处理成为可能、极大促进了该学科的发展。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。

滤波器语音信号去噪讲解

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2013年春季学期 信号处理课程设计 题目:基于MATLAB的FIR滤波器语音信号去噪专业班级:通信工程(1)班 姓名:王兴栋 学号:10250114 指导教师:陈海燕 成绩:

摘要 语音信号在数字信号处理中占有极其重要的地位,因此选择通过对语音信号的研究来巩固和掌握数字信号处理的基本能力十分具有代表性。对数字信号处理离不开滤波器,因此滤波器的设计在信号处理中占有极其重要的地位。而MATLAB 软件工具箱提供了对各种数字滤波器的设计。本论文“在MATLAB平台上实现对语音信号的去噪研究与仿真”综合运用了数字信号处理的各种基本知识,进而对不带噪语音信号进行谱分析以及带噪语音信号进行谱分析和滤波处理。通过理论推导得出相应的结论,再通过利用MATLAB作为编程工具来进行计算机实现比价已验证推导出来的结论。在设计过程中,通过设计FIR数字滤波器和IIR数字滤波器来完成滤波处理。在设计过程中,运用了MATLAB对整个设计中的图形的绘制和一些数据的计算以及仿真。 关键字滤波器;MATLAB;仿真;滤波

前言 语音是语言的声学表现,是人类交流信息最自然、最有效、最方便的手段。随着社会文化的进步和科学技术的发展,人类开始进入了信息化时代,用现代手段研究语音处理技术,使人们能更加有效地产生、传输、存储、和获取语音信息,这对于促进社会的发展具有十分重要的意义,因此,语音信号处理正越来越受到人们的关注和广泛的研究。 语音信号是信息技术处理中最重要的一门科学,是人类社会几步的标志。那么什么是语音?语音是人类特有的功能,也是人类获取外界信息的重要工具,也是人与人交流必不可少的重要手段。那么什么又是信号?那信号是什么呢?信号是传递信息的函数。离散时间信号——序列——可以用图形来表示。 语音信号处理是一门用研究数字信号处理研究信号的科学。它是一新兴的信息科学,同时又是综合多个学科领域的一门交叉科学。语音在我们的日常生活中随时可见,也随处可见,语音很大程度上可以影响我们的生活。所以研究语音信号无论是在科学领域上还是日常生活中都有其广泛而重要的意义。 本论文主要介绍的是的语音信号的简单处理。本论文针对以上问题,运用数字信号学基本原理实现语音信号的处理,在matlab7.0环境下综合运用信号提取,幅频变换以及傅里叶变换、滤波等技术来进行语音信号处理。我所做的工作就是在matlab7.0软件上编写一个处理语音信号的程序,能对语音信号进行采集,并对其进行各种处理,达到简单语音信号处理的目的。 对语音信号的研究,本论文采用了设计两种滤波器的基本研究方法来达到研究语音信号去噪的目的,最终结合图像以及对语音信号的回放,通过对比,得出结论。

信号系统处理 语音信号滤波处理

数字信号处理实验报告 实验名称:基于MATLAB对语音信号 进行分析及滤波处理 院系:物联网工程学院 班级:电子信息工程1101 姓名:

一、实验目的 综合计算运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应的结论,培养发现问题、分析问题和解决问题的能力。并利用MATLAB作为工具进行实现,从而复习巩固课堂所学的理论知识,提高对所学知识的综合应用能力,并从实践上初步实现对数字信号的处理。此外,还系统的学习和实现对语音信号处理的整体过程,从语音信号的采集到分析、处理、频谱分析、显示和储存。 二、实验要求 1.分析原始语音信号的时域特性和频谱特性。 2.设计一个IIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。 3.设计一个FIR滤波器,用该滤波器对语音信号进行滤波处理,分析滤波后信号的时域特性和频谱特性。 三、实验原理 1.采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max大于信号中最高频率fmax的2倍时(fs.max>=2fmax),采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍;采样定理又称奈奎斯特定理。 采样频率越高,即采样的时间间隔越短,对声音波形的表示越精确。 2.时域信号的FFT分析:信号的频谱分析就是计算机信号的傅里叶变换。连续信号与系统的傅里叶分析显然不便于用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值运算,成为用计算机分析离散信号和系统的有力工具。对连续信号和系统,可以通过时域采样,应用DFT进行近似谱分析。 3.IIR数字滤波器设计原理利用双线性变换设计IIR滤波器(巴特沃斯数字低通滤波器的设计),首先要设计出满足指标要求的模拟滤波器的传递函数Ha(s),然后由Ha(s)通过双线性变换可得所要设计的IIR滤波器的系统函数H(z)。如果给定的指标为数字滤波器的指标,则首先要转换成模拟滤波器的技术指标,这里主要是边界频率Wp和Ws的转换,对ap和as指标不作变化。边界频率的转换关系为∩=2/T tan(w/2)。接着,按照模拟低通滤波器的技术指标根据相应设计公式

基于Matlab的语音信号处理与分析

系(院)物理与电子工程学院专业电子信息工程题目语音信号的处理与分析 学生姓名 指导教师 班级 学号 完成日期:2013 年5 月 目录 1 绪论.............................................................................................................. 错误!未定义书签。 1.1课题背景及意义................................................................................. 错误!未定义书签。 1.2国内外研究现状................................................................................. 错误!未定义书签。 1.3本课题的研究内容和方法................................................................. 错误!未定义书签。 1.3.1 研究内容................................................................................ 错误!未定义书签。 1.3.2 开发环境................................................................................ 错误!未定义书签。 2 语音信号处理的总体方案............................................................................ 错误!未定义书签。 2.1 系统基本概述.................................................................................... 错误!未定义书签。 2.2 系统基本要求与目的........................................................................ 错误!未定义书签。 2.3 系统框架及实现................................................................................ 错误!未定义书签。 2.3.1 语音信号的采样.................................................................... 错误!未定义书签。 2.3.2 语音信号的频谱分析............................................................ 错误!未定义书签。 2.3.3 音乐信号的抽取.................................................................... 错误!未定义书签。 2.3.4 音乐信号的AM调制.............................................................. 错误!未定义书签。 2.3.5 AM调制音乐信号的同步解调............................................... 错误!未定义书签。 2.4系统设计流程图................................................................................. 错误!未定义书签。 3 语音信号处理基本知识................................................................................ 错误!未定义书签。 3.1语音的录入与打开............................................................................. 错误!未定义书签。 3.2采样位数和采样频率......................................................................... 错误!未定义书签。 3.3时域信号的FFT分析......................................................................... 错误!未定义书签。 3.4切比雪夫滤波器................................................................................. 错误!未定义书签。 3.5数字滤波器设计原理......................................................................... 错误!未定义书签。 4 语音信号实例处理设计................................................................................ 错误!未定义书签。 4.1语音信号的采集................................................................................. 错误!未定义书签。

语音信号的处理与滤波

广西工学院 数字信号处理课程设计设计题目:语音信号的处理与滤波 系别: 学号: 姓名: 班级: 指导教师: 完成日期:

目录 1. 摘要 (3) 2.MATLAB简介 (3) 3.设计目的 (4) 4.设计内容 (4) 5.设计原理 (4) 6.设计步骤 (5) 7.总结与分析 (10) 8.参考资料 (10)

摘要 本课题分析了数字信号处理课程的重要性及特点,可以帮助理解与掌握课程中的基本概念、基本原理、基本分析方法;并利用MATLAB对语音信号进行分析和处理,要求采集语音信号后,在MATLAB软件平台进行频谱分析。用设计的数字滤波器对语音信号进行了滤波 MATLAB简介 MATLAB 是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有: ?数学和计算 ?算法开发 ?建模,模拟和原形化 ?数据分析,探索和可视化 ?科学与工程制图 ?应用开发,包括图形用户界面的建立 MATLAB是一个交互式的系统,其基本数据元素是无须定义维数的数组。这让你能解决很多技术计算的问题,尤其是那些要用到矩阵和向量表达式的问题。而要花的时间则只是用一种标量非交互语言(例如C或Fortran)写一个程序的时间的一小部分。 . 名称“MATLAB”代表matrix laboratory(矩阵实验室)。MATLAB最初是编写来提供给对由LINPACK和EINPACK工程开发的矩阵软件简易访问的。今天,MATLA B使用由LAPACK和ARPACK工程开发的软件,这些工程共同表现了矩阵计算的软件中的技术发展。 MATLAB已经与许多用户输入一同发展了多年。在大学环境中,它是很多数学类、工程和科学类的初等和高等课程的标准指导工具。在工业上,MATLAB是高产研究、开发和分析所选择的工具。 MATLAB以一系列称为工具箱的应用指定解答为特征。对多数用户十分重要的是,工具箱使你能学习和应用专门的技术。工具箱是是MATLAB函数(M-文件)的全面的综合,这些文件把MATLAB的环境扩展到解决特殊类型问题上。具有可用工具箱的领域有:信号处理,控制系统神经网络,模糊逻辑,小波分析,模拟等等。

语音信号处理实验报告

通信与信息工程学院 信息处理综合实验报告 班级:电子信息工程1502班 指导教师: 设计时间:2018/10/22-2018/11/23 评语: 通信与信息工程学院 二〇一八年 实验题目:语音信号分析与处理 一、实验内容 1. 设计内容 利用MATLAB对采集的原始语音信号及加入人为干扰后的信号进行频谱分析,使用窗函数法设计滤波器滤除噪声、并恢复信号。 2.设计任务与要求 1. 基本部分

(1)录制语音信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (2)对所录制的语音信号加入干扰噪声,并对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (3)分别利用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman 窗几种函数设计数字滤波器滤除噪声,并画出各种函数所设计的滤波器的频率响应。 (4)画出使用几种滤波器滤波后信号时域波形和频谱,对滤波前后的信号、几种滤波器滤波后的信号进行对比,分析信号处理前后及使用不同滤波器的变化;回放语音信号。 2. 提高部分 (5)录制一段音乐信号并对其进行采样;画出采样后语音信号的时域波形和频谱图。 (6)利用MATLAB产生一个不同于以上频段的信号;画出信号频谱图。 (7)将上述两段信号叠加,并加入干扰噪声,尝试多次逐渐加大噪声功率,对加入噪声的信号进行频谱分析;画出加噪后信号的时域波形和频谱图。 (8)选用一种合适的窗函数设计数字滤波器,画出滤波后音乐信号时域波形和频谱,对滤波前后的信号进行对比,回放音乐信号。 二、实验原理 1.设计原理分析 本设计主要是对语音信号的时频进行分析,并对语音信号加噪后设计滤波器对其进行滤波处理,对语音信号加噪声前后的频谱进行比较分析,对合成语音信号滤波前后进行频谱的分析比较。 首先用PC机WINDOWS下的录音机录制一段语音信号,并保存入MATLAB软件的根目录下,再运行MATLAB仿真软件把录制好的语音信号用audioread函数加载入MATLAB仿真软件的工作环境中,输入命令对语音信号进行时域,频谱变换。 对该段合成的语音信号,分别用矩形窗、三角形窗、Hanning窗、Hamming窗及Blackman窗几种函数在MATLAB中设计滤波器对其进行滤波处理,滤波后用命令可以绘制出其频谱图,回放语音信号。对原始语音信号、合成的语音信号和经过滤波器处理的语音信号进行频谱的比较分析。 2.语音信号的时域频域分析 在Matlab软件平台下可以利用函数audioread对语音信号进行采样,得到了声音数据变量y,同时把y的采样频率Fs=44100Hz放进了MATALB的工作空间。

基于MATLAB的语音信号滤波处理

基于MATLAB的语音信号滤波处理 题目:基于MATLAB的语音信号滤波处理 课程:数字信号处理 学院:电气工程学院 班级: 学生: 指导教师: 二O一三年十二月

目录CONTENTS 摘要 一、引言 二、正文 1.设计要求 2.设计步骤 3.设计内容 4.简易GUI设计 三、结论 四、收获与心得 五、附录

一、引言 随着Matlab仿真技术的推广,我们可以在计算机上对声音信号进行处理,甚至是模拟。通过计算机作图,采样,我们可以更加直观的了解语音信号的性质,通过matlab编程,调用相关的函数,我们可以非常方便的对信号进行运算和处理。 二、正文 2.1 设计要求 在有噪音的环境中录制语音,并设计滤波器去除噪声。 2.2 设计步骤 1.分析原始信号,画出原始信号频谱图及时频图,确定滤波器类型及相关指标; 2.按照类型及指标要求设计出滤波器,画出滤波器幅度和相位响应,分析该滤波器是否符合要求; 3.用所设计的滤波器对原始信号进行滤波处理,画出滤波后信号的频谱图及时频图; 4.对滤波前的信号进行分析比对,评估所设计滤波器性能。 2.3 设计内容 1.原始信号分析

分析信号的谱图可知,噪音在1650HZ和3300HZ附近的能量较高,而人声的能量基本位于1000HZ以下。因此,可以设计低通滤波器对信号进行去噪处理。 2.IIR滤波器设计 用双线性变换法分别设计了巴特沃斯低通滤波器和椭圆低通滤波器和带阻滤波器: ①巴特沃斯滤波器 fp=800;fs=1300;rs=35;rp=0.5; 程序代码如下: fp=800;fs=1300;rs=35;rp=0.5;Fs=44100; wp=2*Fs*tan(2*pi*fp/(2*Fs));ws=2*Fs*tan(2*pi*fs/(2*Fs)); [n,wn]=buttord(wp,ws,rp,rs,'s'); [b,a]=butter(n,wn,'s'); [num,den]=bilinear(b,a,Fs); [h,w]=freqz(num,den,512,Fs);

语音信号处理试验教程

语音信号处理试验 实验一:语音信号时域分析 实验目的: (1)录制两段语音信号,内容是“语音信号处理”,分男女声。 (2)对语音信号进行采样,观察采样后语音信号的时域波形。 实验步骤: 1、使用window自带录音工具录制声音片段 使用windows自带录音机录制语音文件,进行数字信号的采集。启动录音机。录制一段录音,录音停止后,文件存储器的后缀默认为.Wav。将录制好文件保存,记录保存路径。男生女生各录一段保存为test1.wav和test2.wav。 图1基于PC机语音信号采集过程。 2、读取语音信号 在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样点数。通过使用wavread函数,理解采样、采样频率、采样位数等概念! Wavread函数调用格式: y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。

[y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(hz),nbits表示采样位数。 y=wavread(file,N),读取前N点的采样值放在向量y中。 y=wavread(file,[N1,N2]),读取从N1到N2点的采样值放在向量y中。 3、编程获取语音信号的抽样频率和采样位数。 语音信号为test1.wav和test2.wav,内容为“语音信号处理”,两端语音保存到工作空间work文件夹下。在M文件中分别输入以下程序,可以分两次输入便于观察。 [y1,fs1,nbits1]=wavread('test1.wav') [y2,fs2,nbits2]=wavread('test2.wav') 结果如下图所示 根据结果可知:两端语音信号的采样频率为44100HZ,采样位数为16。 4、语音信号的时域分析 语音信号的时域分析就是分析和提取语音信号的时域参数。进行语音分析时,最先接触到并且夜市最直观的是它的时域波形。语音信

根据MATLAB的加噪语音信号的滤波

《计算机仿真技术》 基于MATLAB的加噪语音信号的滤波学生姓名: 专业:电子信息工程 班级: 学号: 指导教师: 完成时间:2017年12月

一.滤波器的简述 在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法即实现方法,并进行图形用户界面设计,以显示所介绍迷你滤波器的设计特性。 在无线脉冲响应(IIR)数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法及双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应(FIR)数字滤波器设计中,讨论了FIR线性相位滤波的特点和用窗口函数设计FIR数字滤波器两个问题。两类滤波器整个过程都是按照理论分析、编程设计、集体实现的步骤进行的。为方便分析直观者直观、形象、方便的分析滤波器的特性,创新的设计出图形用户界面---滤波器分析系统。整个系统分为两个界面,其内容主要包括四个部分:System(系统)、Analysis(分析)、Tool(工具)、Help(帮助)。 数字滤波在DSP中占有重要地位。数字滤波器按实现的网络结构或者从单位脉冲响应,分为IIR(无限脉冲响应)和FIR(有限脉冲响应)滤波器。如果IRR 滤波器和FIR滤波器具有相同的性能,那么通常IIR滤波器可以用较低的阶数获得高的选择性,执行速度更快,所有的存储单元更少,所以既经济又高效。二.设计要求 1.在matlab平台上录制一段语音信号; 2.完成语音信号的谱分析; 3.对语音信号进行加噪以及加噪后信号的谱分析; 4.选择合适的滤波器进行滤波,确定相关指标; 5.实现滤波过程,显示滤波后的结果,并进行谱分析。 三.实验内容与步骤 1、语音信号的录入

数字信号处理期末实验 语音信号分析与处理

山东建筑大学信电学院课程设计说明书 语音信号分析与处理 摘要 用MATLAB对语音信号进行分析与处理,采集语音信号后,在MATLAB软件平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器滤除噪声,恢复原信号。 数字滤波器是数字信号处理的基础,用来对信号进行过滤、检测和参数估计等处理。IIR数字滤波器最大的优点是给定一组指标时,它的阶数要比相同组的FIR 滤波器的低的多。信号处理中和频谱分析最为密切的理论基础是傅立叶变换(FT)。离散傅立叶变换(DFT)和数字滤波是数字信号处理的最基本内容。 关键词:MATLAB;语音信号;加入噪声;滤波器;滤波 1. 设计目的与要求 (1)待处理的语音信号是一个在20Hz~20kHz频段的低频信号。 (2)要求MATLAB对语音信号进行分析和处理,采集语音信号后,在MATLAB平台进行频谱分析;并对所采集的语音信号加入干扰噪声,对加入噪声的信号进行频谱分析,设计合适的滤波器进行滤除噪声,恢复原信号。 1 山东建筑大学信电学院课程设计说明书

2. 设计步骤 (1)选择一个语音信号或者自己录制一段语音文件作为分析对象; (2)对语音信号进行采样,并对语音信号进行FFT频谱分析,画出信号的时域波形图和频谱图; (3)利用MATLAB自带的随机函数产生噪声加入到语音信号中,对语音信号进行回放,对其进行FFT频谱分析; (4)设计合适滤波器,对带有噪声的语音信号进行滤波,画出滤波前后的时域波形图和频谱图,比较加噪前后的语音信号,分析发生的变化; (5)对语音信号进行回放,感觉声音变化。 3. 设计原理及内容 3.1 理论依据 (1)采样频率:采样频率(也称采样速度或者采样率)定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。采样频率只能用 于周期性采样的采样器,对于非周期采样的采样器没有规则限制。通俗的讲,采样频率是指计算机每秒钟采集多少个声音样本,是描述声音文件的音质、音调,衡量声卡、声音文件的质量标准。采样频率越高,即采样的间隔时间越短,则在单位之间内计算机得到的声音样本数据就越多,对声音波形的表示也越精确。(2)采样位数:即采样值或取样值,用来衡量声音波动变化的参数。 (3)采样定理:在进行模拟/数字信号的的转换过程中,当采样频率f大于信s.max 号中,最高频率f的2倍时,即:f>=2f,则采样之后的数字信号完整的maxmaxs.max 保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的 5~10倍;采样频率又称乃奎斯特定理。 (4)时域信号的FFT分析:信号的频谱分析就是计算信号的傅立叶变换。连续信号与系统的傅立叶分析显然不便于直接用计算机进行计算,使其应用受到限制。而FFT是一种时域和频域均离散化的变换,适合数值计算,成为用计算机分析 离2 山东建筑大学信电学院课程设计说明书 散信号和系统的的有力工具。对连续信号和系统,可以通过时域采样,应用DFT 进行近似谱分析。

:基于MATLAB的IIR滤波器的语音信号去噪.

滤波器设计在数字信号处理中占有极其重要的地位,本次课程设计主要是录制一段语音信号对其进行加噪处理,然后利用IIR低通滤波器对加有随机噪声的语音信号进行滤波处理及时频谱分析,画出滤波之后的频谱图与时域波形,并对信号滤波处理前后进行分析比较,分析信号的变化。通过对对所设计滤波器的仿真和频率特性分析,由仿真结果可以看出,所设计的滤波器能够实现对语音信号的语音有效去噪,并对滤波前后的语音信号进行对比。 关键词:去噪;滤波器;MATLAB

一语音信号去噪的设计任务................................................................................................ 错误!未定义书签。二语音信号去噪的基本原理. (3) 2.1 数字滤波器的基本设计方法 (3) 2.2 双线性变换法 (4) 2.3数字滤波器设计基本思想 (5) 2.4 数字滤波器的设计步骤 (6) 2.5采样定理 (7) 三基于MATLAB的仿真结果及结果分析 (10) 3.1 IIR高通滤波器的仿真 (10) 3.2 原始语音信号的录制 (10) 3.3 语音信号的时频域分析 (11) 3.4 加随机噪声后的时频域分析 (12) 3.5 滤波前后的时频域比较 (15) 总结 (17) 参考文献 (18) 致谢 (19) 附录 (20)

一 基本原理 1.1 数字滤波器的基本设计方法 IIR 数字滤波器的设计一般有两种方法:一个是借助模拟滤波器的设计方法进行。其设计步骤是,先设计模拟滤波器,再按照某种方法转换成数字滤波器。这种方法比较容易一些,因为模拟滤波器的设计方法已经非常成熟,不仅有完整的设计公式,还有完善的图表供查阅;另外一种直接在频率或者时域内进行,由于需要解联立方程,设计时需要计算机做辅助设计。其设计步骤是:先设计过渡模拟滤波器得到系统函数)(s H a ,然后将)(s H a 按某种方法转换成数字滤波器的系统函数)(z H [1]。为了保证转换后的)(z H 稳定且满足技术指标要求,对转换关系提出两点要求: (1)因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。 (2)数字滤波器的频率相应模仿模拟滤波器的频响特性,s 平面的虚轴映射为z 平面的单位圆,相应的频率之间呈线性关系。 利用模拟滤波器成熟的理论设计IIR 数字滤波器的过程是: (1)确定数字低通滤波器的技术指标:通带边界频率p ω、通带最大衰减p α、阻带截止频率s ω、阻带最小衰减s α。 (2)将数字低通滤波器的技术指标转换成相应的模拟低通滤波器的技术指标。 (3)按照模拟低通滤波器的技术指标设计过渡模拟低通滤波器。 (4)用所选的转换方法,将模拟滤波器)(s H a 转换成数字低通滤波器系统函数)(z H 。 IIR 数字滤波器的设计流程图2-1如下: 变换 Ω Ω=g(ω ) 变换 S=f (Z ) 图2-1 IIR 数字滤波器的设计步骤流程图[1] 成熟的模拟滤波器设计方法主要有脉冲响应不变法和双线性变换法。 模拟滤波器 技术指标 数字滤波器 技术指标 模拟滤波器 设计方法 模拟滤波器 )(S Ha 数字滤波器 )(Z H

含噪声的语音信号分析与处理设计讲解

课程设计任务书 学生姓名:苗强强专业班级:电信1204 指导教师:阙大顺沈维聪工作单位:信息工程学院 题目: 程控宽带放大器的设计 初始条件: 程控宽带放大器是电子电路中常用模块,在智能仪器设备及嵌入式系统中有广 泛的应用。因此对于电子信息专业的技术人员来说,熟练掌握该项技术很有必要。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体 要求) (1)输入阻抗>1KΩ,单端输入,单端输出,放大器负载电阻为600Ω; (2)3dB通频带10kHz~6MHz,在20kHz~5MHz频带内增益起伏<1dB。 (3)增益调节范围10 dB~40 dB,(通过键盘操作调节)。 (4)发挥部分:当输入频率或输出负载发生变化时,通过微处理器自动调节,保持 放大器增益不变。 (5)电路通过仿真即可。 时间安排: 1. 任务书下达,查阅资料 1天 2. 制图规范、设计说明书讲解 2天 3. 设计计算说明书的书写 5天 4. 绘制图纸 1天 5. 答辩 1天 指导教师签名:年月日 系主任(或责任教师)签名:年月日

滤波器设计在数字信号处理中占有极其重要的地位,FIR数字滤波器和IIR滤波器是滤波器设计的重要组成部分。利用MATLAB信号处理工具箱可以快速有效地设计各种数字滤波器。课题基于MATLAB有噪音语音信号处理的设计与实现,综合运用数字信号处理的理论知识对加噪声语音信号进行时域、频域分析和滤波。通过理论推导得出相应结论,再利用MATLAB 作为编程工具进行计算机实现。在设计实现的过程中,使用窗函数法来设计FIR数字滤波器,用巴特沃斯、切比雪夫和双线性变法设计IIR数字滤波器,并利用MATLAB 作为辅助工具完成设计中的计算与图形的绘制。通过对对所设计滤波器的仿真和频率特性分析,可知利用MATLAB信号处理工具箱可以有效快捷地设计FIR和IIR数字滤波器,过程简单方便,结果的各项性能指标均达到指定要求。 关键词数字滤波器 MATLAB IIR滤波器 FIR滤波器

语音信号处理 (第2版)赵力 编著 语音信号处理勾画要点

语音信号处理(第2版)赵力编著 重点考点 第2章语音信号处理的基础知识 1.语音(Speech)是声音(Acoustic)和语言(Language)的组合体。可以这样定义语音:语音是由一连串的音组成语言的声音。 2.人的说话过程可以分为五个阶段:(1)想说阶段(2)说出阶段(3)传送阶段(4)理解阶段(5)接收阶段。 3.语音是人的发声器官发出的一种声波,它具有一定的音色,音调,音强和音长。其中,音色也叫音质,是一种声音区别于另一种声音的基本特征。音调是指声音的高低,它取决于声波的频率。声音的强弱叫音强,它由声波的振动幅度决定。声音的长短叫音长,它取决于发音时间的长短。 4.说话时一次发出的,具有一个响亮的中心,并被明显感觉到的语音片段叫音节(Syllable)。一个音节可以由一个音素(Phoneme)构成,也可以由几个音素构成。音素是语音发音的最小单位。任何语言都有语音的元音(Vowel)和辅音(Consonant)两种音素。 5.元音的另一个重要声学特性是共振峰(Formant)。共振峰参数是区别不同元音的重要参数,它一般包括共振峰频率(Formant Frequency)的位置和频带宽度(Formant Bandwidth)。 6.区分语音是男声还是女声、是成人声音还是儿童声音,更重要的因素是共振峰频率的高低。 7.浊音的声带振动基本频率称基音周期(或基音频率),F0表示。 8.人的听觉系统有两个重要特性,一个是耳蜗对于声信号的时频分析特性;另一个是人耳听觉掩蔽效应。 9.掩蔽效应分为同时掩蔽和短时掩蔽。 10.激励模型:一般分成浊音激励和清音激励。浊音激励波是一个以基音周期为周期的斜三角脉冲串。 11.声道模型:一是把声道视为由多个等长的不同截面积的管子串联而成的系统。按此观点推导出的叫“声管模型”。另一个是把声道视为一个谐振腔,按此推导出的叫“共振峰模型”。 12.完整的语音信号的数字模型可以用三个子模型:激励模型、声道模型和辐射模型的串联来表示。 13.语谱图:人们致力于研究语音的时频分析特性,把和时序相关的傅立叶分析的显示图形。 第三章语音信号分析 1.贯穿于语音分析全过程的是“短时分析技术”。 2.语音信号的数字化一般包括放大及增益控制、反混叠滤波、采样、A/D变换及编码(一般就是PCM码);预处理一般包括预加重、加窗和分帧等。 3.预滤波的目的有两个:

基于matlab的语音信号滤波处理——数字信号处理课程设计

数字信号处理课程设计 题目:基于matlab的语音信号滤波处理学院:物理与电子信息工程 专业:电子信息工程 班级: B07073041 学号: 200932000066 姓名:高珊 指导教师:任先平

摘要: 语音信号处理是研究用数字信号处理技术和语音学知识对语音信号进行处理的新兴学科,是目前发展最为迅速的学科之一,通过语音传递信息是人类最重要,最有效,最常用和最方便的交换信息手段,所以对其的研究更显得尤为重要。 Matlab语言是一种数据分析和处理功能十分强大的计算机应用软件,它可以将声音文件变换成离散的数据文件,然后用起强大的矩阵运算能力处理数据。这为我们的本次设计提供了强大并良好的环境! 本设计要求自己录制一段自己的语音后,在MATLAB软件中采集语音信号、回放语音信号并画出语音信号的时域波形和频谱图。再在Matlab中分别设计不同形式的FIR数字滤波器。之后对采集的语音信号经过不同的滤波器(低通、高通、带通)后,观察不同的波形,并进行时域和频谱的分析。对比处理前后的时域图和频谱图,分析各种滤波器对于语音信号的影响。最后分别收听进行滤波后的语音信号效果,做到了解在怎么样的情况下该用怎么样的滤波器。

目录 1.设计内容 (4) 2.设计原理 (4) 2.1语音信号的时域分析 (4) 2.2语音信号的频域分析 (5) 3.设计过程 (5) 3.1实验程序源代码 (6) 3.1.1原语音信号时域、频域图 (6) 3.1.2低通滤波器的设计 (6) 3.1.3高通滤波器的设计 (7) 3.1.4带通滤波器的设计 (8) 3.1.5语音信号的回放 (9) 3.2调试结果描述 (10) 3.3所遇问题及结果分析 (15) 3.3.1所遇主要问题 (16) 3.3.2结果分析 (16) 4.体会与收获 (17) 5.参考文献 (17)

对语音信号进行分析及处理资料

一、设计目的 1.进一步巩固数字信号处理的基本概念、理论、分析方法和实现方法;使自身对信号的采集、处理、传输、显示和存储等有一个系统的掌握和理解; 2.增强应用Matlab语言编写数字信号处理的应用程序及分析、解决实际问题的能力; 3.培养自我学习的能力和对相关课程的兴趣; 二、设计过程 1、语音信号的采集 采样频率,也称为采样速度或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。 采样位数可以理解为声卡处理声音的解析度。这个数值越大,解析度就越高,录制和回放的声音就越真实 采样定理又称奈奎斯特定理,在进行模拟/数字信号的转换过程中,当采样频率fs不小于信号中最高频率fm的2倍时,采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的5~10倍。 利用Windows下的录音机,录制了一段发出的声音,内容是“数字信号”,时间在3 s内。接着在D盘保存为WAV格式,然后在Matlab软件平台下.利用函数wavread对语音信号进行采样,并记录下了采样频率和采样点数,在这里我们还通过函数sound引入听到采样后自己所录的一段声音。 [x1,fs,bits]=wavread('E:\数字信号.wav'); %读取语音信号的数据,赋给变量x1,返回频率fs 44100Hz,比特率为16 。 2 、语音信号的频谱分析 (1)首先画出语音信号的时域波形; 程序段: x=x1(60001:1:120000); %截取原始信号60000个采样点

plot(x) %做截取原始信号的时域图形 title('原始语音采样后时域信号'); xlabel('时间轴 n'); ylabel('幅值 A'); (2)然后用函数fft 对语音号进行快速傅里叶变换,得到信号的频谱特性; y1=fft(x,6000); %对信号做N=6000点FFT 变换 figure(2) subplot(2,1,1),plot(k,abs(y1)); title('|X(k)|'); ylabel('幅度谱'); subplot(2,1,2),plot(k,angle(y1)); title('arg|X(k)|'); ylabel('相位谱'); (3)产生高斯白噪声,并且对噪声进行一定的衰减,然后把噪声加到信号中,再次对信号进行频谱特性分析,从而加深对频谱特性的理解; d=randn(1,60000); %产生高斯白噪声 d=d/100; %对噪声进行衰减 x2=x+d; %加入高斯白噪声 3、设计数字滤波器 (1)IIR 低通滤波器性能指标通带截止频Hz f c 1000=,阻带截止频率 Hz f st 1200=,通带最大衰减dB 11=δ,阻带最小衰减dB 1002=δ。 (2)FIR 低通滤波器性能指标通带截止频率Hz f c 1000=,阻带截止频率 Hz f st 1200=, 通带衰减1δ≤1dB ,阻带衰减 2δ≥ 100dB 。 (3)IIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 30=,通带最大衰减dB A P 1=。 (4)(4)FIR 高通滤波器的设计指标,Hz f z 1000=,Hz f p 2000=,阻带最小衰减dB A s 50=,通带最大衰减dB A P 1=。 (5)用自己设计的各滤波器分别对采集的信号进行滤波,在Matlab 中,FIR 滤波器利用函数fftfilt 对信号进行滤波,IIR 滤波器利用函数filter 对信号进行滤波。比较滤波前后语音信号的波形及频谱,在一个窗口同时画出滤波前后

基于MATLAB的语音信号采集和双线性变换法滤波器设计

第一章语音信号的采集 第一节语音信号采集的介绍 MATLAB是美国Math Works公司推出的一种面向工程和科学计算的交互式计算软件,在MATLAB环境中,可以通过多种编程方法驱动声卡实现对语音信号的采集和播放,它的信号处理与分析工具箱为语音信号分析提供了十分丰富的功能函数,利用这些功能函数可以快捷而又方便地完成语音信号的处理和分析.使用MATLAB语言编程可以将声音文件变换为离散的数据文件,然后利用其强大的矩阵运算能力处理数据,如数字滤波、傅里叶变换、时域和频域分析、声音回放以及各种分析图的呈现等等. 在Matlab环境中,主要可以通过以下几种方法驱动声卡,采集语音信号: 1.将声卡作为对象处理采集语音信号Matlab将声卡作为对象处理,其后的一切操作都不与硬件直接相关,而是通过对该对象的操作来作用于硬件设备(声卡)。操作时首先要对声卡产生一个模拟输入对象(ai),给ai对象添加一个通道设置采样频率后,就可以启动设备对象,开始采集数据,采集完成后停止对象并删除对象。 2.调用wavrecord功能函数采集语音信号。wavrecord功能函数只适用于windows95/98/N平台,它使用windows声音输入设备录制声音。函数调用方式:wavrecord(N,fs,ch,nbits); N:采集的样本数据量; fs:样本采集频率,为8000Hz、11025Hz、22050Hz和44100Hz之一,默认值为11025Hz; ch:样本采集通道,1为单声道,2为双声道,默认值为1(单声道); nbits:每个样本的位数(或称解析度),‘double’、‘single’或‘int16’为16位,‘uint8’为8位; 3.运用audiorecorder

相关主题