matlab gui 回调函数

来源:百度知道 编辑:UC知道 时间:2024/05/28 01:09:09
您好,高手,请教您一个问题:我现在要实现,给一个edit里输入采样频率,一个edit里输入才样点数,用wavread读入一个音频文件对其进行fft变换,吧频谱由一个坐标系输出来,请问我的各个控件下的回调函数应该怎么写,非常感谢!
请高手们,详细说明下,在下是初学者,多多包涵!

可以参考下
% --- Executes on button press in fft.
function fft_Callback(hObject, eventdata, handles)
global pathname filename sf nfft outfile H1 H2;
fid=fopen([pathname filename],'r');
x=fscanf(fid,'%f',[1,inf]); %按行读入原始信号数据
%FFT变换
nt=length(x);
h=findobj('Tag','cypl');
sf=str2double(get(h,'string'));
h=findobj('Tag','nfftcd');
nfft=str2double(get(h,'string'));
y=fft(x);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%绘制输入曲线图形
t=0:1/sf:100/sf;
plot(H1,t,x(1:101));
xlabel('时间(s)');
ylabel('幅值');
title('输入数据的时程曲线图')
grid on;
%绘制幅频曲线图
f=0:sf/nfft:(nt-1)*sf/nfft;
plot(H2,f,abs(y));
axis([0,(nt-1)*sf/(nfft*2),3*min(y)/2,3*max(y)/2])
xlabel('频率(Hz)');
ylabel('幅值');
title('信号频谱图');
outfile=y;
grid on
%grid on;
%h = fin