matlab gui 数据传递

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

button 控件 callback函数
a=get(handles.edit1,'string');
a=str2num(a);
b=get(handles.edit2,'string');
b=str2num(b);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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;