Skip to content

Commit ae5ad2e

Browse files
committed
More functions
1 parent 1e91cf1 commit ae5ad2e

5 files changed

Lines changed: 79 additions & 42 deletions

File tree

func2Numerically.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function [b,N,mse] = func2Numerically( omega,phi,A,B)
2+
syms symb;
3+
Energy = 0.5*pi*omega*A^2*(4*pi*omega-sin(4*pi*omega+2*phi)+sin(2*phi));
4+
range = 2*A;
5+
b = double(solve(Energy/(6*B^2)*symb-log(2)*range^2/(6*2^(2*symb)),symb));
6+
N = B/b;
7+
mse = Energy/(12*N^2)+range^2/(12*2^(2*b));
8+
end
9+

func3Numerically.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function [b,N,mse] = func3Numerically( omega,phi,A,alpha,B)
2+
syms symb;
3+
fun = @(t) (2.*pi.*A.*(omega+2.*alpha.*t).*cos(2.*pi.*t.*(omega+alpha.*t)+phi)).^2;
4+
Energy = integral(fun,0,1);
5+
range = 2*A;
6+
b = double(solve(Energy/(6*B^2)*symb-log(2)*range^2/(6*2^(2*symb)),symb));
7+
N = B/b;
8+
mse = Energy/(12*N^2)+range^2/(12*2^(2*b));
9+
end
10+

func4Numerically.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function [b,N,mse] = func4Numerically( omega,phi,A,alpha,B)
2+
syms symb;
3+
fun = @(t) (2.*pi.*A.*(omega+alpha.^t+t.*alpha.^t-1).*cos(2.*pi.*t.*(omega+alpha.^t-1)+phi)).^2;
4+
Energy = integral(fun,0,1);
5+
range = 2*A;
6+
b = double(solve(Energy/(6*B^2)*symb-log(2)*range^2/(6*2^(2*symb)),symb));
7+
N = B/b;
8+
mse = Energy/(12*N^2)+range^2/(12*2^(2*b));
9+
end
10+

func5Numerically.m

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function [b,N,mse] = func5Numerically( omega,phi,A,alpha,beta,B)
2+
syms symb;
3+
fun = @(t) (2.*pi.*(beta.*t+A).*(omega+2.*alpha.*t).*cos(2.*pi.*t.*(omega+alpha.*t)+phi)+beta.*sin(2.*pi.*t.*(omega+alpha.*t)+phi)).^2;
4+
Energy = integral(fun,0,1);
5+
range = 2*beta*(beta+A);
6+
b = double(solve(Energy/(6*B^2)*symb-log(2)*range^2/(6*2^(2*symb)),symb));
7+
N = B/b;
8+
mse = Energy/(12*N^2)+range^2/(12*2^(2*b));
9+
end
10+

gui.m

Lines changed: 40 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -109,32 +109,30 @@ function Apply_Callback(hObject, eventdata, handles)
109109
mse = mseProject(s,qss);
110110
min_b = 1;
111111
for b=2:1:16,
112-
l = bitBudget/b;
113-
if mod(bitBudget/b,1)~=0,
114-
l = floor(bitBudget/b);
115-
end
116-
if mseProject(s,sampleAndQuantize(s,bitBudget/b,b))<mse,
117-
qss = sampleAndQuantize(s,bitBudget/b,b);
118-
mse = mseProject(s,qss);
119-
min_b = b;
120-
end
112+
tempQss = sampleAndQuantize(s,floor(bitBudget/b),b);
113+
tempMse = mseProject(s,tempQss);
114+
if tempMse<mse,
115+
qss = tempQss;
116+
mse = tempMse;
117+
min_b = b;
118+
end
121119
end
122120
if str{val} == 'Function - 1'
123-
bitBudget = str2double(get(handles.bit_budget,'String'));
124-
bOptimal = 2*log2((4*bitBudget*(log(2)))/(3*pi*Omega*(4*pi*Omega+sin(4*pi*Omega+2*Phi)-sin(2*Phi))));
125-
nOptimal = bitBudget/bOptimal;
126-
set(handles.bM,'String',bOptimal);
127-
set(handles.nM,'String',nOptimal);
121+
bitBudget = str2double(get(handles.bit_budget,'String'));
122+
bOptimal = 2*log2((4*bitBudget*(log(2)))/(3*pi*Omega*(4*pi*Omega+sin(4*pi*Omega+2*Phi)-sin(2*Phi))));
123+
nOptimal = bitBudget/bOptimal;
124+
set(handles.bM,'String',bOptimal);
125+
set(handles.nM,'String',nOptimal);
128126
end
129-
end
127+
end
130128
end
131-
plot(handles.axes1,t_grid,s);
132-
plot(handles.axes2,0:(1/(floor(bitBudget/min_b)-1)):1,qss);
133-
set(handles.mseT,'String',mseProject(s,qss));
134-
set(handles.b_info,'String',min_b);
135-
set(handles.n_info,'String',floor(bitBudget/min_b));
129+
plot(handles.axes1,t_grid,s);
130+
plot(handles.axes2,0:(1/(floor(bitBudget/min_b)-1)):1,qss);
131+
set(handles.mseT,'String',mseProject(s,qss));
132+
set(handles.b_info,'String',min_b);
133+
set(handles.n_info,'String',floor(bitBudget/min_b));
134+
136135

137-
138136
% --- Executes on selection change in FunctionsMenu.
139137
function FunctionsMenu_Callback(hObject, eventdata, handles)
140138
set(handles.A,'visible','on');
@@ -274,40 +272,40 @@ function SSQ_Callback(hObject, eventdata, handles)
274272
qss = sampleAndQuantize(s,bitBudget,1);
275273
mse = mseProject(s,qss);
276274
for b=2:1:8,
277-
l = bitBudget/b;
275+
l = bitBudget/b;
278276
if mod(bitBudget/b,1)~=0,
279277
l = floor(bitBudget/b);
280-
end
281-
if mseProject(s,sampleAndQuantize(s,bitBudget/b,b))<mse,
282-
qss = sampleAndQuantize(s,bitBudget/b,b);
283-
mse = mseProject(s,qss);
284-
end
285-
end
286-
end
278+
end
279+
if mseProject(s,sampleAndQuantize(s,bitBudget/b,b))<mse,
280+
qss = sampleAndQuantize(s,bitBudget/b,b);
281+
mse = mseProject(s,qss);
282+
end
283+
end
284+
end
287285
end
288286
if ~strcmp(str{val},'Please Select a Function'),
289-
% qss = decompress_1d(qss,numel(t_grid));
287+
% qss = decompress_1d(qss,numel(t_grid));
290288
sound(qss,25000);
291289
end
292290

293291
% --- Executes on button press in specific_values.
294292
function specific_values_Callback(hObject, eventdata, handles)
295-
set(handles.N,'visible','on');
296-
set(handles.N_t,'visible','on');
297-
set(handles.b,'visible','on');
298-
set(handles.b_t,'visible','on');
299-
set(handles.bit_budget,'visible','off');
300-
set(handles.bit_budget_t,'visible','off');
293+
set(handles.N,'visible','on');
294+
set(handles.N_t,'visible','on');
295+
set(handles.b,'visible','on');
296+
set(handles.b_t,'visible','on');
297+
set(handles.bit_budget,'visible','off');
298+
set(handles.bit_budget_t,'visible','off');
301299

302300

303301
% --- Executes on button press in best_values.
304302
function best_values_Callback(hObject, eventdata, handles)
305-
set(handles.N,'visible','off');
306-
set(handles.N_t,'visible','off');
307-
set(handles.b,'visible','off');
308-
set(handles.b_t,'visible','off');
309-
set(handles.bit_budget,'visible','on');
310-
set(handles.bit_budget_t,'visible','on');
303+
set(handles.N,'visible','off');
304+
set(handles.N_t,'visible','off');
305+
set(handles.b,'visible','off');
306+
set(handles.b_t,'visible','off');
307+
set(handles.bit_budget,'visible','on');
308+
set(handles.bit_budget_t,'visible','on');
311309
%My Own Functions
312310

313311
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)