基于Matlab&GUI语音信号处理平台的设计*

2020-03-04 05:13燕丽红
计算机与数字工程 2020年1期
关键词:框图信号处理滤波器

燕丽红

(西安欧亚学院信息工程学院 西安 710065)

1 引言

语音信号作为当今生活中最常用的信号被广泛引用[1~2],而语音信号在信息的传输过程中的可靠性、有效性以及其他的一些问题也都不断地出现,不断被学者去攻克,而如今大数据崛起标志新时代的到来,对语音信号的处理更是要求及时、有效,可靠[3~4]。因此,本文首先对语音信号进行分析,并模拟通信信道的噪声进行加噪声音的分析,进而设计合理的滤波器进行语音信号的回复,主要通过Matlab及GUI人机界面进行了语音信号的处理,对于实际语音信号分析具有很重要的指导作用,同时对于学生进行信号处理类课程的学习奠定了一定的基础。

2 语音信号处理系统设计

2.1 语音信号处理总体框图

本系统主要通过麦克风、录音软件等形式进行语音信号的采集,并根据采样定理进行语音信号的离散化处理,并模拟具体的通信信道进行加噪语音信号的产生,进行通过数字信号处理系统设计相关理论进行滤波器设计,进而实现原始语音的回复。系统实现框图如图1所示。

图1 典型的语音信号处理框图

2.2 语音信号处理平台涉及的部分Matlab函数

audioread函数:读取MP3格式音频。

Freqz函数:计算线性系统的响应频率,包括幅频响应和相频响应。

rand函数:在某一信号中加入随机噪声。

cheb1ord函数:切比雪夫1型滤波器。

Filter函数:一维数字滤波器[5~8]。

3 基于Matlab的语音信号处理设计

3.1 原始语音的产生

首先通过格式工厂将自己的录音通过格式工厂进行转换成MP3,进而使用audioread函数进行调用并实现原始语音的产生。

fs=16000;

[x,fs,bits]=audioread(‘ 这 是 我 的 录 音 。mp3’);

play(x); %话音回放

N=length(x); % 计算信号x的长度

n=0:N-1;

figure(1);

plot(n,x1);%画出原始语音信号的时域波形

图2 原始语音和加噪语音时域、频域图

3.2 噪声的处理

由于通信信道自带会有噪声,因此模拟信道进行随机噪声的产生[9],进而模拟带噪信号进行设计。

L=length(x);%计算音频信号的长度

n=0.04*randn(L,2);%产生等长度的随机噪声信号

x_z=x+n;%将两个信号叠加成一个新的信号——加噪声处理

sound(x_z);%对加噪后的语音信号进行分析

n=length(x);%选取变换的点数

x_zp=fft(x_z,n);%对n点进行傅里叶变换到频域

f=fs*(0:n/2-1)/n;%对应点的频率

3.3 滤波器的设计

根据语音信号的特点,设计数字滤波器[10],对加噪后的语音信号进行滤波处理。

wp=0.01;ws=0.06;rp=1;rs=50;

[N4,Wc]=buttord(wp,ws,rp,rs);

[B,A]=butter(N4,Wc);

[Hd,w]=freqz(B,A);

图3 巴特沃斯过滤前后对比图

通过图形可以明显看出,采用巴特沃斯滤波器进行的语音信号处理很好地进行了还原。

4 基于GUI的语音信号处理平台设计

4.1 设计思路

结合语音信号处理的框图,通过GUI设计人机交互界面[11~12],方便用户进行原始信号,加噪信号,及滤波器设计等模块的设计,对不同的模块设计其相应的属性进行控件的设置,通过与Matlab产生的信号进行对比和设计,对于用户对信号的分析可以更有效和直观[13~15]。

4.2 语音信号处理平台设计

首先在GUI界面中,构建人机交互界面,包含原始语音、加噪语音、滤波器实现方法(脉冲响应不变法、双线性变换法)及退出模块,通过设置控件属性,调整控件大小,设计的语音信号处理平台如图4所示。

图4 基于GUI的语音信号处理平台框架

4.3 加噪后的设计界面

function pushbutton2_Callback(hObject,eventdata,handles)

%hObjecthandle to pushbutton2(see GCBO)

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

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

y1=fft(x1,512);

f=Fs*(0:511)/512;

Au=0.04;

wav_in=wav_in(:,1);

t=0:1/Fs:(size(x1)-1)/Fs;%将所加噪声信号的点数调整到与原始信号相同

d=[Au*cos(2*pi*5000*t)]';%噪声为 5kHz的余弦信号

x2=10*x1+d;

y2=fft(x2,512);

handles.x1=x2

guidata(hObject,handles);

axes(handles.axes2);

plot(t,x2)

title(‘加噪后的信号’);

图5 基于GUI的加噪语音信号的产生

4.4 滤波器设计界面

%---Executes on button press in pushbutton3。

function pushbutton3_Callback(hObject,eventdata,handles)

%hObjecthandle to pushbutton3(see GCBO)

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

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

global x1;

global x2;

global Fs;

global bits;

mc(x2,Fs,bits,hObject,handles)

%---Executes on button press in pushbutton4。

function pushbutton4_Callback(hObject,eventdata,handles)

%hObjecthandle to pushbutton4(see GCBO)

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

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

sx(x2,Fs,bits,hObject,handles)

图6 基于GUI的滤波器设计的原始语音信号的还原

5 结语

语音信号处理作为信号处理的典型应用之一,如何有效、快捷地进行系统的设计和分析,是满足当今大数据处理时代要求高效、可靠的基本条件,本文通过Matlab进行语音信号的采集和处理,通过通过GUI界面设计了语音信号处理平台,方便用户进行系统有效的分析和处理。而在图形可视化界面设计过程中,还可以将其设计的滤波器系统保存为.txt文件,从而方便在其他平台上的数据处理和分析。这将对用户进行DSP处理器进行系统设计带来很大的便利,也将会是用户在工程应用上的一个有效的数据分析工具。

猜你喜欢
框图信号处理滤波器
浅谈有源滤波器分析及仿真
基于多模谐振器的超宽带滤波器设计
包装过程称量信号处理方法研究
捷豹I-PACE纯电动汽车高压蓄电池充电系统(三)
算法框图的补全
FIR滤波器线性相位特性的研究
基于图表法构建《万有引力定律与航天》知识网络
无机化学推断题与框图题解法
FFT、PFT和多相位DFT滤波器组瞬态响应的比较