@@ -35,6 +35,9 @@ function gui_OpeningFcn(hObject, eventdata, handles, varargin)
3535varargout{1 } = handles .output ;
3636
3737function initialize_gui(fig_handle , handles , isreset )
38+ global s qss ;
39+ s = NaN ;
40+ qss = NaN ;
3841set(handles .A ,' String' ,' ' );
3942set(handles .Omega ,' String' ,' ' );
4043set(handles .Phi ,' String' ,' ' );
@@ -77,6 +80,7 @@ function Clear_Callback(hObject, eventdata, handles)
7780
7881% --- Executes on button press Apply.
7982function Apply_Callback(hObject , eventdata , handles )
83+ global s qss ;
8084t_grid = 0 : 0.00001 : 1 ;
8185A = str2double(get(handles .A ,' String' ));
8286Omega = str2double(get(handles .Omega ,' String' ));
@@ -108,17 +112,17 @@ function Apply_Callback(hObject, eventdata, handles)
108112 end
109113 if get(handles .best_values ,' Value' )==1 ,
110114 bitBudget = str2double(get(handles .bit_budget ,' String' ));
111- switch str{val };
115+ switch str{val };
112116 case ' Function - 1'
113117 [bNumerical ,NNumerical ,mseNumerical ] = func1Numerically(Omega ,Phi ,A ,bitBudget );
114118 case ' Function - 2'
115- [bNumerical ,NNumerical ,mseNumerical ] = func2Numerically(Omega ,Phi ,A ,bitBudget );
119+ [bNumerical ,NNumerical ,mseNumerical ] = func2Numerically(Omega ,Phi ,A ,bitBudget );
116120 case ' Function - 3'
117- [bNumerical ,NNumerical ,mseNumerical ] = func3Numerically(Omega ,Phi ,A ,Alpha ,bitBudget );
121+ [bNumerical ,NNumerical ,mseNumerical ] = func3Numerically(Omega ,Phi ,A ,Alpha ,bitBudget );
118122 case ' Function - 4'
119- [bNumerical ,NNumerical ,mseNumerical ] = func4Numerically(Omega ,Phi ,A ,Alpha ,bitBudget );
123+ [bNumerical ,NNumerical ,mseNumerical ] = func4Numerically(Omega ,Phi ,A ,Alpha ,bitBudget );
120124 case ' Function - 5'
121- [bNumerical ,NNumerical ,mseNumerical ] = func5Numerically(Omega ,Phi ,A ,Alpha ,Beta ,bitBudget );
125+ [bNumerical ,NNumerical ,mseNumerical ] = func5Numerically(Omega ,Phi ,A ,Alpha ,Beta ,bitBudget );
122126 end
123127 qss = sampleAndQuantize(s ,bitBudget ,1 );
124128 mse = mseProject(s ,qss );
@@ -132,17 +136,18 @@ function Apply_Callback(hObject, eventdata, handles)
132136 min_b = b ;
133137 end
134138 end
135- set(handles .bM ,' String' ,bNumerical );
136- set(handles .nM ,' String' ,NNumerical );
137- set(handles .MSEM ,' String' ,mseNumerical );
138- end
139+ set(handles .bM ,' String' ,bNumerical );
140+ set(handles .nM ,' String' ,NNumerical );
141+ set(handles .MSEM ,' String' ,mseNumerical );
139142 end
140- plot(handles .axes1 ,t_grid ,s );
141- plot(handles .axes2 ,0 : (1 /(floor(bitBudget / min_b )-1 )): 1 ,qss );
143+ qss = decompress_1d(qss ,numel(t_grid ));
144+ plot(handles .axes1 ,t_grid ,s );
145+ plot(handles .axes2 ,t_grid ,qss );
146+ set(handles .mseT ,' String' ,mseProject(s ,qss ));
147+ set(handles .b_info ,' String' ,min_b );
148+ set(handles .n_info ,' String' ,floor(bitBudget / min_b ));
149+ end
142150
143- set(handles .mseT ,' String' ,mseProject(s ,qss ));
144- set(handles .b_info ,' String' ,min_b );
145- set(handles .n_info ,' String' ,floor(bitBudget / min_b ));
146151
147152
148153% --- Executes on selection change in FunctionsMenu.
@@ -229,81 +234,16 @@ function FunctionsMenu_Callback(hObject, eventdata, handles)
229234
230235% --- Executes on button press in playS.
231236function playS_Callback(hObject , eventdata , handles )
232- t_grid = 0 : 0.00001 : 1 ;
233- A = str2double(get(handles .A ,' String' ));
234- Omega = str2double(get(handles .Omega ,' String' ));
235- Phi = str2double(get(handles .Phi ,' String' ));
236- Alpha = str2double(get(handles .Alpha ,' String' ));
237- Beta = str2double(get(handles .Beta ,' String' ));
238- N = str2double(get(handles .N ,' String' ));
239- b = str2double(get(handles .b ,' String' ));
240- str = get(handles .FunctionsMenu ,' String' );
241- val = get(handles .FunctionsMenu ,' Value' );
242- switch str{val };
243- case ' Function - 1'
244- s = s1(A ,Omega ,Phi ,t_grid );
245- case ' Function - 2'
246- s = s2(A ,Omega ,Phi ,t_grid );
247- case ' Function - 3'
248- s = s3(A ,Omega ,Alpha ,Phi ,t_grid );
249- case ' Function - 4'
250- s = s4(A ,Omega ,Alpha ,Phi ,t_grid );
251- case ' Function - 5'
252- s = s5(A ,Beta ,Omega ,Alpha ,Phi ,t_grid );
253- end
254- if ~strcmp(str{val },' Please Select a Function' ),
237+ global s ;
238+ if ~isnan(s ),
255239 sound(s ,25000 );
256240end
257241
258242
259-
260243% --- Executes on button press in SSQ.
261244function SSQ_Callback(hObject , eventdata , handles )
262- t_grid = 0 : 0.00001 : 1 ;
263- A = str2double(get(handles .A ,' String' ));
264- Omega = str2double(get(handles .Omega ,' String' ));
265- Phi = str2double(get(handles .Phi ,' String' ));
266- Alpha = str2double(get(handles .Alpha ,' String' ));
267- Beta = str2double(get(handles .Beta ,' String' ));
268- N = str2double(get(handles .N ,' String' ));
269- b = str2double(get(handles .b ,' String' ));
270- str = get(handles .FunctionsMenu ,' String' );
271- val = get(handles .FunctionsMenu ,' Value' );
272- switch str{val };
273- case ' Function - 1'
274- s = s1(A ,Omega ,Phi ,t_grid );
275- case ' Function - 2'
276- s = s2(A ,Omega ,Phi ,t_grid );
277- case ' Function - 3'
278- s = s3(A ,Omega ,Alpha ,Phi ,t_grid );
279- case ' Function - 4'
280- s = s4(A ,Omega ,Alpha ,Phi ,t_grid );
281- case ' Function - 5'
282- s = s5(A ,Beta ,Omega ,Alpha ,Phi ,t_grid );
283- end
284- if ~strcmp(str{val },' Please Select a Function' ),
285- if get(handles .specific_values ,' Value' )==1 ,
286- bitBudget = N * b ;
287- qss = sampleAndQuantize(s ,N ,b );
288- end
289- if get(handles .best_values ,' Value' )==1 ,
290- bitBudget = str2double(get(handles .bit_budget ,' String' ));
291- qss = sampleAndQuantize(s ,bitBudget ,1 );
292- mse = mseProject(s ,qss );
293- for b= 2 : 1 : 8 ,
294- l = bitBudget / b ;
295- if mod(bitBudget / b ,1 )~=0 ,
296- l = floor(bitBudget / b );
297- end
298- if mseProject(s ,sampleAndQuantize(s ,bitBudget / b ,b ))<mse ,
299- qss = sampleAndQuantize(s ,bitBudget / b ,b );
300- mse = mseProject(s ,qss );
301- end
302- end
303- end
304- end
305- if ~strcmp(str{val },' Please Select a Function' ),
306- % qss = decompress_1d(qss,numel(t_grid));
245+ global qss ;
246+ if ~isnan(qss ),
307247 sound(qss ,25000 );
308248end
309249
0 commit comments