📄 fir_rand.m
字号:
function varargout = fir_rand(varargin)% FIR_RAND Application M-file for fir_rand.fig% FIG = FIR_RAND launch fir_rand GUI.% FIR_RAND('callback_name', ...) invoke the named callback.% Last Modified by GUIDE v2.0 06-Sep-2005 10:58:29if nargin == 0 % LAUNCH GUI fig = openfig(mfilename,'reuse'); % Use system color scheme for figure: set(fig,'Color',get(0,'defaultUicontrolBackgroundColor')); % Generate a structure of handles to pass to callbacks, and store it. handles = guihandles(fig); guidata(fig, handles); if nargout > 0 varargout{1} = fig; endelseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK try if (nargout) [varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard else feval(varargin{:}); % FEVAL switchyard end catch disp(lasterr); endend%| ABOUT CALLBACKS:%| GUIDE automatically appends subfunction prototypes to this file, and %| sets objects' callback properties to call them through the FEVAL %| switchyard above. This comment describes that mechanism.%|%| Each callback subfunction declaration has the following form:%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)%|%| The subfunction name is composed using the object's Tag and the %| callback type separated by '_', e.g. 'slider2_Callback',%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.%|%| H is the callback object's handle (obtained using GCBO).%|%| EVENTDATA is empty, but reserved for future use.%|%| HANDLES is a structure containing handles of components in GUI using%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This%| structure is created at GUI startup using GUIHANDLES and stored in%| the figure's application data using GUIDATA. A copy of the structure%| is passed to each callback. You can store additional information in%| this structure at GUI startup, and you can change the structure%| during callbacks. Call guidata(h, handles) after changing your%| copy to replace the stored original so that subsequent callbacks see%| the updates. Type "help guihandles" and "help guidata" for more%| information.%|%| VARARGIN contains any extra arguments you have passed to the%| callback. Specify the extra arguments by editing the callback%| property in the inspector. By default, GUIDE sets the property to:%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))%| Add any extra arguments after the last argument, before the final%| closing parenthesis.% --------------------------------------------------------------------function varargout = pushbutton2_Callback(h, eventdata, handles, varargin)close all;index2;% --------------------------------------------------------------------function varargout = pushbutton3_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = plot_button_Callback(h, eventdata, handles, varargin)global select_signal;global t;sa=str2double(get(handles.sample_input,'String'));% Calculate data[Py,fy]=pburg(select_signal,10,length(t),sa);% Create time plotaxes(handles.time_axes)plot(t,select_signal)ylabel('Time-domain')set(handles.time_axes,'XMinorTick','on')grid on% Create magnitude plotaxes(handles.psd_axes)plot(fy,Py)ylabel('Frequency-domain')grid on% --------------------------------------------------------------------function varargout = time_axes_CreateFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = plot_button_CreateFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = pushbutton2_CreateFcn(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = plot_button2_Callback(h, eventdata, handles, varargin)global select_signal;global t;ord=str2double(get(handles.order_input,'String'));wl=str2double(get(handles.w1_input,'String'));wh=str2double(get(handles.w2_input,'String'));sa=str2double(get(handles.sample_input,'String'));val = get(handles.win_pop,'Value');switch val case 1 windo=rectwin(ord+1); case 2 windo=triang(ord+1); case 3 windo=hann(ord+1); case 4 windo=chebwin(ord+1,3);endval = get(handles.pop_menu,'Value');switch val; case 1 b=fir1(ord,wh/(sa/2),'high',windo); figure(1) freqz(b,1) yfilt=filter(b,1,select_signal); [Py,fy]=pburg(select_signal,10,length(t),sa); [Pyfilt,fyfilt]=pburg(yfilt,10,length(t),sa); axes(handles.filter_axes1) plot(t,yfilt) grid on axes(handles.filter_axes2) plot(fyfilt,Pyfilt) grid on case 2 b=fir1(ord,[wl/(sa/2),wh/(sa/2)],'bandpass',windo); figure(1) freqz(b,1) yfilt=filter(b,1,select_signal); [Py,fy]=pburg(select_signal,10,length(t),sa); [Pyfilt,fyfilt]=pburg(yfilt,10,length(t),sa); axes(handles.filter_axes1) plot(t,yfilt) grid on axes(handles.filter_axes2) plot(fyfilt,Pyfilt) grid on case 3 b=fir1(ord,[wl/(sa/2),wh/(sa/2)],'stop',windo); figure(1) freqz(b,1) yfilt=filter(b,1,select_signal); [Py,fy]=pburg(select_signal,10,length(t),sa); [Pyfilt,fyfilt]=pburg(yfilt,10,length(t),sa); axes(handles.filter_axes1) plot(t,yfilt) grid on axes(handles.filter_axes2) plot(fyfilt,Pyfilt) grid on case 4 b=fir1(ord,wl/(sa/2),'low',windo); figure(1) freqz(b,1) yfilt=filter(b,1,select_signal); [Py,fy]=pburg(select_signal,10,length(t),sa); [Pyfilt,fyfilt]=pburg(yfilt,10,length(t),sa); axes(handles.filter_axes1) plot(t,yfilt) grid on axes(handles.filter_axes2) plot(fyfilt,Pyfilt) grid onend% --------------------------------------------------------------------function varargout = w1_input_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = w2_input_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = sample_input_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = order_input_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = popupmenu1_Callback(h, eventdata, handles, varargin)% --------------------------------------------------------------------function varargout = filter_button_Callback(h, eventdata, handles, varargin)global select_signal;global t;f = 1000*(0:198)/512;c=conv(select_signal(1:100),handles.h(1:100));length(c)figure(1)plot(f,c)mag=abs(handles.h);db=10*log10(mag);axes(handles.filter_axes1)grid on% --- Executes during object creation, after setting all properties.function win_pop_CreateFcn(hObject, eventdata, handles)% hObject handle to win_pop (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called% Hint: popupmenu controls usually have a white background on Windows.% See ISPC and COMPUTER.if ispc set(hObject,'BackgroundColor','white');else set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));end% --- Executes on selection change in win_pop.function win_pop_Callback(hObject, eventdata, handles)% hObject handle to win_pop (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% Hints: contents = get(hObject,'String') returns win_pop contents as cell array% contents{get(hObject,'Value')} returns selected item from win_pop% --------------------------------------------------------------------function varargout = pushbutton7_Callback(h, eventdata, handles, varargin)close all;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -