1
0

Initial commit

This commit is contained in:
github-classroom[bot]
2023-09-27 06:23:10 +00:00
committed by GitHub
commit bb7f798573
38 changed files with 640 additions and 0 deletions

View File

@ -0,0 +1,24 @@
Copyright (c) 2015, Juan Pinzon
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in
the documentation and/or other materials provided with the distribution
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.

Binary file not shown.

View File

@ -0,0 +1,148 @@
function varargout = pruebasonido(varargin)
% PRUEBASONIDO MATLAB code for pruebasonido.fig
% PRUEBASONIDO, by itself, creates a new PRUEBASONIDO or raises the existing
% singleton*.
%
% H = PRUEBASONIDO returns the handle to a new PRUEBASONIDO or the handle to
% the existing singleton*.
%
% PRUEBASONIDO('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in PRUEBASONIDO.M with the given input arguments.
%
% PRUEBASONIDO('Property','Value',...) creates a new PRUEBASONIDO or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before pruebasonido_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to pruebasonido_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help pruebasonido
% Last Modified by GUIDE v2.5 11-Sep-2020 17:26:52
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @pruebasonido_OpeningFcn, ...
'gui_OutputFcn', @pruebasonido_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before pruebasonido is made visible.
function pruebasonido_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to pruebasonido (see VARARGIN)
% Choose default command line output for pruebasonido
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes pruebasonido wait for user response (see UIRESUME)
% uiwait(handles.figure1);
set(handles.popupmenu1,'Value',1);
init_player(handles,'sigin','Input_Fs');
% --- Outputs from this function are returned to the command line.
function varargout = pruebasonido_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
function init_player(handles,sig_base_varname, fs_base_varname)
%sig_base_varname name of the variable in the base workspace containing the
% sound to play
%fs_base_varname name of the variable in the base workspace containing the
% sampling frequency
myGui=guidata(handles.figure1);
myGui.freqSam = evalin('base',fs_base_varname);
myGui.datasound = evalin('base',sig_base_varname);
myGui.player=audioplayer(myGui.datasound,myGui.freqSam);
myGui.flag=2;
guidata(handles.figure1,myGui)
% --- Executes on button press in play.
function play_Callback(hObject, eventdata, handles)
% hObject handle to play (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
myGui=guidata(handles.figure1);
if(myGui.flag==2)
myGui.flag=1;
disp('2');
play(myGui.player);
else
if(myGui.flag == 1)
disp('1');
myGui.flag=0;
pause(myGui.player);
else
disp('0');
myGui.flag=1;
resume(myGui.player)
end
end
guidata(handles.figure1,myGui);
% --- Executes on button press in stop.
function stop_Callback(hObject, eventdata, handles)
% hObject handle to stop (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
myGui=guidata(handles.figure1);
myGui.flag=2;
stop(myGui.player);
guidata(handles.figure1,myGui);
% --- Executes on selection change in popupmenu1.
function popupmenu1_Callback(hObject, eventdata, handles)
% hObject handle to popupmenu1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
contents = cellstr(get(hObject,'String')); % returns popupmenu1 contents as cell array
selected_signame = contents{get(hObject,'Value')}; % returns selected item from popupmenu1
init_player(handles,selected_signame,'Input_Fs')
% --- Executes during object creation, after setting all properties.
function popupmenu1_CreateFcn(hObject, eventdata, handles)
% hObject handle to popupmenu1 (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 && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

View File

@ -0,0 +1,5 @@
The simple Audio Player GUI from Matlab Central File Exchange
https://ch.mathworks.com/matlabcentral/fileexchange/53443-simple-audio-player-gui
allowing to play a selected file has been modified to allowing
playing the input and output audio signals of the commbluetoothvoice demo.
Copyright (c) 2020, HES-SO Valais

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,73 @@
function commbluetoothvoice_cb
%COMMBLUETOOTHVOICE_CB Sets up the Model Mask Parameters in the
% Bluetooth Voice Transmission example (commbluetoothvoice.slx) and saves
% it to the workspace
% Copyright 1996-2011 The MathWorks, Inc.
% Retrieves user information and assigns packet type
systemParams = [bdroot(gcb) '/Model Parameters'];
h=get_param(systemParams,'MaskValues');
if(h{1,1}=='HV1')
set_param(systemParams,'MaskVisibilities',{'on','off','off'});
HV_Type=1;
assignin('base','HV_Type',1);
assignin('base','Slot_Pair',1);
elseif(h{1,1}=='HV2')
HV_Type=2;
assignin('base','HV_Type',2);
set_param(systemParams,'MaskVisibilities',{'on','on','off'});
if(h{2,1}== '1&2')
Slot_Pair=1;
assignin('base','Slot_Pair',1);
else
Slot_Pair=2;
assignin('base','Slot_Pair',2);
end
else
set_param(systemParams,'MaskVisibilities',{'on','off','on'});
HV_Type=3;
assignin('base','HV_Type',3)
if(h{3,1}=='1&2')
Slot_Pair=1;
assignin('base','Slot_Pair',1);
elseif(h{3,1}=='3&4')
Slot_Pair=2;
assignin('base','Slot_Pair',2);
else
Slot_Pair=3;
assignin('base','Slot_Pair',3);
end
end
% Define Slot_Ts and other variables depending on packet type
Slot_Ts=(1/1600);
assignin('base','Slot_Ts', (1/1600));
switch HV_Type
case 1
assignin('base','Tx_Ts',Slot_Ts*2);
assignin('base','Num_Slots_Rate',2);
assignin('base','Num_Payload_Bits',80);
assignin('base','Slot_Enable_Phase',0); % Slot Pair
case 2
assignin('base','Tx_Ts',Slot_Ts*4);
assignin('base','Num_Slots_Rate',4);
assignin('base','Num_Payload_Bits',160);
if Slot_Pair == 3
error(message('comm:commbluetoothvoice_cb:InvalidSlot'));
end;
assignin('base','Slot_Enable_Phase',Slot_Pair*2-2); % Slot Pair
case 3
assignin('base','Tx_Ts',Slot_Ts*6);
assignin('base','Num_Slots_Rate',6);
assignin('base','Num_Payload_Bits',240);
assignin('base','Slot_Enable_Phase',Slot_Pair*2-2); % Slot Pair
end

View File

@ -0,0 +1,43 @@
%COMMBLUETOOTHVOICE_INIT Initializes variables for Bluetooth Voice Transmission
% example (commbluetoothvoice.slx)
% Copyright 1996-2012 The MathWorks, Inc.
% modified for Matlab 2022a by mag, HES-SO Valais, course SDi
% Set input wave sample rate to be 8kHz
Input_Fs=8000;
sigin = audioread('commbluetoothvoice_input.wav');
% Coefficients for speech interpolation
[y,interp_coeffs]=interp(ones(1,10),8);
% Header Information
% Header_Info=[Slave_Address;Packet_Type;Flow_Control;ARQ;Sequence];
Slave_Address= [1 0 1]';
Packet_Type= [1 0 1 0]';
Flow_Control= [1];
ARQ=[1];
Sequence=[1];
Access_Code=zeros(72,1); Access_Code(1:2:72)=1;
% Initialize 1,0,1,0, sequence
One_Zero_Payload=zeros(240,1);
One_Zero_Payload(1:2:240)=1;
% Set Seeds
% modified by mag: replaced randseed() by ''
hop_seed=1;
awgn_channel_seed=2;
awgn_802_seed=3;
rate_802_seed=4;
data_seed=5;
% Hop frequency if fixed
fixed_hop_freq=20;
% Assign payload bits
Num_Payload_Bits=80;

Binary file not shown.

Binary file not shown.