图形用户界面GUI.docx
《图形用户界面GUI.docx》由会员分享,可在线阅读,更多相关《图形用户界面GUI.docx(16页珍藏版)》请在冰豆网上搜索。
图形用户界面GUI
湖北民族学院
实验设计报告
图形用户界面(GUI)
课程:
随机信号处理
专业:
电子信息科学与技术
班级:
0312412
学号:
0312412XX
学生姓名:
XXX
指导教师:
XX
成绩:
______________________
2014年12月1日
实验1:
图形用户界面(GraphicalUserInterface)设计
实验目的
1.熟悉MATLAB基本操作
2.掌握对音频信号的常规处理
3.掌握对随机信号进行简单的图形界面操作
实验原理
图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。
GUI是GraphicalUserInterface的简称,即图形用户界面,通常人机交互图形化用户界面设计经常读做“goo-ee”准确来说GUI就是屏幕产品的视觉体验和互动操作部分。
GUI是一种结合计算机科学、美学、心理学、行为学,及各商业领域需求分析的人机系统工程,强调人—机—环境三者作为一个系统进行总体设计。
这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求,直接提升产品的市场竞争力。
GUI即人机交互图形化用户界面设计。
纵观国际相关产业在图形化用户界面设计方面的发展现状,许多国际知名公司早已意识到GUI在产品方面产生
GUI的强大增值功能,以及带动的巨大市场价值,因此在公司内部设立了相关部门专门从事GUI的研究与设计,同业间也成立了若干机构,以互相交流GUI设计理论与经验为目的。
随着中国IT产业,移动通讯产业,家电产业的迅猛发展,在产品的人机交互界面设计水平发展上日显滞后,这对于提高产业综合素质,提升与国际同等业者的竞争能力等等方面无疑起了制约的作用。
实验要求
在MATLAB中对一段wav音频文件进行简单操作,并设计20个GUI模块
实验步骤及内容
GUI整体界面
模块1音频波形
functionpushbutton1_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
plot(x);
axis([1500000-11]);
模块2音频播放
functionpushbutton3_Callback(hObject,eventdata,handles)
[x,fs,bits]=wavread('QXA.wav');%读取音频信息(双声道,16位,频率44100Hz)
x=x(:
1);
sound(x,fs,bits);%回放该音频
模块3信号频谱
functionpushbutton2_Callback(hObject,eventdata,handles)
[x,Fs,bits]=wavread('QXA.wav');%读出信号,采样率和采样位数。
x=x(:
1);
X=fft(x,4096);%对信号函数进行快速离散傅里叶变换分析
magX=abs(X);%求幅值
angX=angle(X);%求相位
subplot(211);plot(x);title('原始信号波形');
subplot(212);plot(X);title('原始信号频谱');
模块4信号幅值
functionpushbutton7_Callback(hObject,eventdata,handles)
[x,Fs,bits]=wavread('QXA.wav');%读出信号,采样率和采样位数。
x=x(:
1);
X=fft(x,4096);%对信号函数进行快速离散傅里叶变换分析
magX=abs(X);%求幅值
angX=angle(X);%求相位
subplot(211);plot(x);title('原始信号波形');
subplot(212);plot(magX);title('原始信号幅值');
模块5信号相位
functionpushbutton6_Callback(hObject,eventdata,handles)
[x,Fs,bits]=wavread('QXA.wav');%读出信号,采样率和采样位数。
x=x(:
1);
X=fft(x,4096);%对信号函数进行快速离散傅里叶变换分析
magX=abs(X);%求幅值
angX=angle(X);%求相位
subplot(211);plot(x);title('原始信号波形');
subplot(212);plot(angX);title('原始信号相位');
模块6误差函数
functionpushbutton4_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
a=erf(x);
plot(a);
模块7补余误差函数
functionpushbutton5_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
b=erfc(x);
plot(b);
axis();
模块8希尔伯特变换
functionpushbutton8_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
x=x(20000:
35000);
y=hilbert(x);
y=real(y);
plot(y);title('希尔伯特变换');
axis();
模块9功率谱
functionpushbutton9_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y1=y(1:
1000);
t=0:
1/Fs:
1;
y1=periodogram(y1,[],1000,Fs);
plot(y1);
模块10DFT
functionpushbutton23_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
fs=100;N=1024;
y=fft(x,N);
magy=abs(y);
f=(0:
length(y)-1)'*fs/length(y);
plot(f,magy);
xlabel('频率(Hz)');ylabel('幅值');
title('DFT');
模块11概率密度
functionpushbutton13_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(1:
1000);
N=length(y);
i=1:
N;
[f,i]=ksdensity(y);
plot(i,f);
grid;
xlabel('x');
ylabel('f(x)');
axis();
title('概率密度');
模块12自相关函数
functionpushbutton22_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(1:
1000);
R=xcorr(y);
plot(R);
grid;
title('自相关函数');
模块13均值
functionpushbutton14_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(1:
1000);
n=length(y);
x=randn(50,n);
average=zeros(1,50);
fori=1:
50
forj=1:
1000
average(i)=average(i)+x(i,j);
end
average(i)=average(i)/1000;
end
EX=sum(average)/50;
plot(average);
grid;
title('截取声音信号的均值')
模块14方差
functionpushbutton15_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(1:
1000);
n=length(y);
x=randn(50,n);
average=zeros(1,50);
fori=1:
50
forj=1:
1000
average(i)=average(i)+x(i,j);
end
average(i)=average(i)/1000;
end
EX=sum(average)/50;
variance=zeros(1,50);
fori=1:
50
forj=1:
1000
variance(i)=variance(i)+(x(i,j)-average(i)).^2;
end
variance(i)=variance(i)/1000;
end
DX=sum(variance)/50;
plot(variance);
grid;
title('截取声音信号的方差');
模块15均方值
functionpushbutton16_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(1:
1000);
n=length(y);
x=randn(50,n);
square=zeros(1,50);
fori=1:
50
forj=1:
1000
square(i)=square(i)+x(i,j).^2;
end
square(i)=square(i)/1000;
end
RMS=sum(square)/50;
plot(square);
grid;
title('截取声音信号的均方值');
模块16卷积
functionpushbutton18_Callback(hObject,eventdata,handles)
[y,Fs,bits]=wavread('QXA.wav');
y=y(500:
1000);
h=[ones(1,10)zeros(1,10)];
y2=conv(h,y);
stem(y2,'.');
grid;
title('截取声音信号的卷积');
模块17低通
functionpushbutton17_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
N=2;wc=0.3;
[b,a]=butter(N,wc);
X=fft(x);
subplot(321);plot(x);title('滤波前信号的波形');
subplot(322);plot(X);title('滤波前信号的频谱');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR滤波后信号的波形');
subplot(324);plot(Y);title('IIR滤波后信号的频谱');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR滤波后信号的波形');
subplot(326);plot(Z);title('FIR滤波后信号的频谱');
模块18高通
functionpushbutton19_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
N=2;wc=0.3;
[b,a]=butter(N,wc,'high');
X=fft(x);
subplot(321);plot(x);title('滤波前信号的波形');
subplot(322);plot(X);title('滤波前信号的频谱');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR滤波后信号的波形');
subplot(324);plot(Y);title('IIR滤波后信号的频谱');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR滤波后信号的波形');
subplot(326);plot(Z);title('FIR滤波后信号的频谱');
模块19带通
functionpushbutton20_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
N=2;wc=[0.3,0.6];
[b,a]=butter(N,wc);
X=fft(x);
subplot(321);plot(x);title('滤波前信号的波形');
subplot(322);plot(X);title('滤波前信号的频谱');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR滤波后信号的波形');
subplot(324);plot(Y);title('IIR滤波后信号的频谱');
z=fftfilt(b,x);
Z=fft(z);
subplot(325);plot(z);title('FIR滤波后信号的波形');
subplot(326);plot(Z);title('FIR滤波后信号的频谱');
模块20带阻
functionpushbutton21_Callback(hObject,eventdata,handles)
x=wavread('QXA.wav');
N=2;wc=[0.2,0.7];
[b,a]=butter(N,wc,'stop');
X=fft(x);
subplot(321);plot(x);title('滤波前信号的波形');
subplot(322);plot(X);title('滤波前信号的频谱');
y=filter(b,a,x);
Y=fft(y);
subplot(323);plot(y);title('IIR滤波后信号的波形');
subplot(324);plot(Y);title('IIR滤波后信号的频谱');
z=fftfilt(b,x);
Z=fft(z);subplot(325);
plot(z);title('FIR滤波后信号的波形');
subplot(326);plot(Z);title('FIR滤波后信号的频谱');