Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
71
Task/Morse-code/MATLAB/morse-code-1.m
Normal file
71
Task/Morse-code/MATLAB/morse-code-1.m
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
function [morseText,morseSound] = text2morse(string,playSound)
|
||||
|
||||
%% Translate AlphaNumeric Text to Morse Text
|
||||
|
||||
string = lower(string);
|
||||
|
||||
%Defined such that the ascii code of the characters in the string map
|
||||
%to the indecies of the dictionary.
|
||||
morseDictionary = {{' ',' '},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'0','-----'},{'1','.----'},{'2','..---'},{'3','...--'},...
|
||||
{'4','....-'},{'5','.....'},{'6','-....'},{'7','--...'},...
|
||||
{'8','---..'},{'9','----.'},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},{'',''},{'',''},{'',''},...
|
||||
{'',''},{'',''},{'',''},...
|
||||
{'a','.-'},{'b','-...'},{'c','-.-.'},{'d','-..'},...
|
||||
{'e','.'},{'f','..-.'},{'g','--.'},{'h','....'},...
|
||||
{'i','..'},{'j','.---'},{'k','-.-'},{'l','.-..'},...
|
||||
{'m','--'},{'n','-.'},{'o','---'},{'p','.--.'},...
|
||||
{'q','--.-'},{'r','.-.'},{'s','...'},{'t','-'},...
|
||||
{'u','..-'},{'v','...-'},{'w','.--'},{'x','-..-'},...
|
||||
{'y','-.--'},{'z','--..'}};
|
||||
|
||||
%Iterates through each letter in the string and converts it to morse
|
||||
%code
|
||||
morseText = arrayfun(@(x)[morseDictionary{x}{2} '|'],(string - 31),'UniformOutput',false);
|
||||
|
||||
%The output of the previous operation is a cell array, we want it to be
|
||||
%a string. This line accomplishes that.
|
||||
morseText = cell2mat(morseText);
|
||||
|
||||
morseText(end) = []; %delete extra pipe
|
||||
|
||||
%% Translate Morse Text to Morse Audio
|
||||
|
||||
%Generate the tones for each element of the code
|
||||
SamplingFrequency = 8192; %Hz
|
||||
ditLength = .1; %s
|
||||
dit = (0:1/SamplingFrequency:ditLength);
|
||||
dah = (0:1/SamplingFrequency:3*ditLength);
|
||||
dit = sin(3520*dit);
|
||||
dah = sin(3520*dah);
|
||||
silent = zeros(1,length(dit));
|
||||
|
||||
%A dictionary of the audio components of each symbol
|
||||
morseTiming = {{'.',[dit silent]},{'-',[dah silent]},{'|',[silent silent]},{' ',[silent silent]}};
|
||||
morseSound = [];
|
||||
|
||||
for i = (1:length(morseText))
|
||||
|
||||
%Iterate through each cell in the morseTiming cell array and
|
||||
%find which timing sequence corresponds to the current morse
|
||||
%text symbol.
|
||||
cellNum = find(cellfun(@(x)(x{1}==morseText(i)),morseTiming));
|
||||
|
||||
morseSound = [morseSound morseTiming{cellNum}{2}];
|
||||
end
|
||||
|
||||
morseSound(end-length(silent):end) = []; %Delete the extra silent tone at the end
|
||||
|
||||
if(playSound)
|
||||
sound(morseSound,SamplingFrequency); %Play sound
|
||||
end
|
||||
|
||||
end %text2morse
|
||||
5
Task/Morse-code/MATLAB/morse-code-2.m
Normal file
5
Task/Morse-code/MATLAB/morse-code-2.m
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
>> text2morse('Call me Ishmael.',true)
|
||||
|
||||
ans =
|
||||
|
||||
-.-.|.-|.-..|.-..| |--|.| |..|...|....|--|.-|.|.-..|
|
||||
Loading…
Add table
Add a link
Reference in a new issue