📄 run.m
字号:
clear
%% step 1: create or load ECGData
% Situation 1: From ECGSYN
sfecg=256;
N=20;
Anoise=0;
hrmean=50;
hrstd=5;
lfhfratio=0.5;
sfint=256;
ti=[-70 -15 0 15 100];
ai=[1.2 -5 30 -7.5 0.75];
bi=[0.25 0.1 0.1 0.1 0.4];
[s, ipeaks] = ecgsyn(sfecg,N,Anoise,hrmean,hrstd,lfhfratio,sfint,ti,ai,bi);
% Situation 2: From Database (PTB Database)
% [s,sfecg]=ReadECGData('s0050lre',3);
% s=s/1000;
plot(s);
% setp 2: create heart music
y=[];
frecord=5000; %Hz
NumPerTone=25;
duration=1/sfecg*NumPerTone; %sec
t=0:1/frecord:duration;
ListenTime=10; %sec
IterNum=min(floor(length(s)/NumPerTone),floor(ListenTime/duration));
tones=[48 50 52 53 55 57 59 60 62 64 65 67 69 71 72 74 76 77 79 81 83];
% . . . . . . .
% 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7
% ` ` ` ` ` ` `
for i=1:IterNum
i
semitone=mean(s((i-1)*10+1:i*10));
% all semitones
semitone=60+round(semitone/0.1);
ftone=semitone2ftone(semitone);
% only do re mi fa si da
% semitone=8+round(semitone/0.1); % 0mv == do(1)
% ftone=semitone2ftone(tones(semitone));
y=[y sin(2*pi*ftone*t)+0.4*sin(8*pi*ftone*t)+0.2*sin(16*pi*ftone*t)+0.1*sin(32*pi*ftone*t)]; % with harmonies
end
% save
wavwrite(y,frecord,8,'test.wav');
% play
wavplay(y,frecord,'async');
% dos(['start ','test.wav'])
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -