matlab语言转化问题
1.编写一个程序,读取一句英语短语,并将其编制成莫尔斯码,再用一个程序将莫尔斯码变成英语。 程序我倒不回编,给后面的高手点资料,帮忙解决问题莫尔斯电码(Morse code)是美国人莫尔斯于1844年发明的,由点(.)、划(-)两种符号组成。
1、一点为一基本信号单位,一划的长度=3点的长度。
2、在一个字母或数字内,各点、划之间的间隔应为两点的长度。
3、字母(数字)与字母(数字)之间的间隔为7点的长度。
字符 电码符号 字符 电码符号
A ●— N —●
B —●●● O ———
C —●—● P ●——●
D —●● Q ——●—
E ● R ●—●
F ●●—● S ●●●
G ——● T —
H ●●●● U ●●—
I ●● V ●●●—
J ●——— W ●——
K —●— X —●●—
L ●—●● Y —●——
M —— Z ——●●
数字 电码符号 标点符号 电码符号
1 ●———— ? ●●——●●
2 ●●——— / —●●—●
3 ●●●—— ( ) —●——●—
4 ●●●●— — —●●●●—
5 ●●●●● 。 ●—●—●—
6 —●●●●
7 ——●●●
8 ———●●
9 ————●
0 —————
摩尔斯电码
以下列出摩尔斯电码
摩尔斯电码
A .-
I ..
Q --.-
Y -.--
7 --…
B -…
J .---
R .-.
Z --..
8 ---..
C -.-.
K -.-
S …
1 .----
9 ----.
D -..
L .-..
T -
2 ..---
0 -----
E .
M --
U ..-
3 …--
. .-.-.-
F ..-.
N -.
V …-
4 ….-
? ..--..
G --.
O ---
W .--
5 …..
, --..--
H ….
P .--.
X -..-
6 -….
1 ●—滴哒
2 ●●— 滴滴哒
3 ●●●—— 滴滴哒哒
4 ●●●●— 滴滴滴滴哒
5 ●●●●● 滴滴滴滴滴
6 —●●●● 哒滴滴滴滴
7 ——●●● 哒哒滴滴滴
8 —●● 哒滴滴
9 —● 哒滴
0 —哒
回复 楼主 小乖小傻 的帖子
function morse(varargin)
% MORSE converts text to playable morse code in wav format
%
% SYNTAX
% morse(text)
% morse(text,file);
%
% Description:
%
% If the wave file name is specified, then the funtion will output a wav
% file with that file name.If only text is specified, then the function
% will only play the morse code wav file without saving it to a wav file.
%
% Examples:
%
% morse('Hello');
% morse('How are you doing my friend?','morsecode.wav');
%
% Copyright 2005 Fahad Al Mahmood
% Version: 1.0 $$Date: 05-Jun-2005
text = varargin{1};
if nargin==2
file = varargin{2};
end
Fs=11025;
load wav;
Dit = wav(1106:2121);
ssp = wav(2121:3133);
Dah = wav(3133:6176);
lsp = wav(6176:23022);
% Defining Characters & Numbers
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 = ;
period = ;
comma = ;
question = ;
slash_ = ;
n1 = ;
n2 = ;
n3 = ;
n4 = ;
n5 = ;
n6 = ;
n7 = ;
n8 = ;
n9 = ;
n0 = ;
text = upper(text);
text1 = text + 0
panjang=length(text1);
i=1;
for j=1;panjang
if text1(j)~= 32
text(i)=text1(j);
i=i+1;
end
end
vars ={'period','comma','question','slash_'};
morsecode=[];
for i=1:length(text)
if isvarname(text(i))
morsecode = ;
elseif ismember(text(i),'.,?/')
x = findstr(text(i),'.,?/');
morsecode = ;
elseif ~isempty(str2num(text(i)))
morsecode = )];
elseif text(i)==' '
morsecode = ;
end
morsecode = ;
end
if exist('file','var')
wavwrite(morsecode,11025,16,file);
else
wavplay(morsecode);
end
回复 板凳 sogooda 的帖子
嘻嘻:lol :@)
页:
[1]