Difference between revisions of "Signály"
m |
(→Harmonické signály) |
||
(16 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{mfile|signaly.m|signaly.m}} | + | Budeme sa zaoberať nasledovnými typmi signálov: |
+ | * umelé, | ||
+ | * prírodné, | ||
+ | * audio, | ||
+ | * video. | ||
+ | |||
+ | === Umelé testovacie signály === | ||
+ | |||
+ | Na testovanie sa používajú umelé signály | ||
+ | * impulz | ||
+ | * skok | ||
+ | * harmonický signál | ||
+ | * šum | ||
+ | |||
+ | <gallery> | ||
+ | Image:SignalPulse.png|Impulz | ||
+ | Image:SignalStep.png|Skok | ||
+ | Image:ToneA4.png|Sínus | ||
+ | Image:SignalNoise.png|Šum | ||
+ | </gallery> | ||
+ | |||
+ | <source lang="octave"> | ||
+ | % Uvedene signaly v Octave vyrobime takto | ||
+ | |||
+ | PulseSignal = zeros(1000,1); PulseSignal(5)=1; | ||
+ | StepSignal = zeros(1000,1); StepSignal(6:50)=1; | ||
+ | SinusSignal = sin(linspace(0,4*pi,100)); | ||
+ | NoiseSignal = 0 + 0.6 * randn([100 1]); % \mu = 0, \sigma = 0.6 | ||
+ | HeartSignal; | ||
+ | |||
+ | % A vsetky naraz nakreslime. Po skonceni skriptu mame signaly | ||
+ | % nachystane v pamati. Mozeme ich dalej pouzivat. | ||
+ | % | ||
+ | clg; figure(1); | ||
+ | |||
+ | subplot(5,1,1); | ||
+ | stem(PulseSignal); axis ([0 100 -0.5 1.5]); | ||
+ | |||
+ | subplot(5,1,2); | ||
+ | stem(StepSignal,"b"); axis ([0 100 -0.5 1.5]); | ||
+ | |||
+ | subplot(5,1,3); | ||
+ | plot(SinusSignal,"g"); axis([0 100 -1.5 1.5]); | ||
+ | |||
+ | subplot(5,1,4); | ||
+ | plot(NoiseSignal,"r"); axis([0 100 -1.5 1.5]); | ||
+ | |||
+ | subplot(5,1,5); | ||
+ | plot(heart(:,1),heart(:,2)); axis([0 5 -1 2]); | ||
+ | |||
+ | </source> | ||
+ | |||
+ | '''Download''' | ||
+ | * [[Media:signaly.m|signaly.m]] [[Image:Mfile_icon.png]] | ||
+ | |||
+ | Toto nefunguje (a asi ani nebude): {{mfile|signaly.m|signaly.m}} | ||
+ | |||
+ | |||
+ | Po stiahnutí si súbor uložte ako '''signaly.m''' a v Octave napíšte <TT>demo signaly</TT>. | ||
+ | |||
+ | === Harmonické signály === | ||
+ | |||
+ | * [http://www.jhu.edu/signals/listen-new/listen-newindex.htm Počúvanie fázového posunu] | ||
+ | |||
+ | |||
+ | V nasledujúcom príklade vytvoríme v Matlabe/Octave harmonický signál a jeho rôzne kombinácie. | ||
+ | |||
+ | <gallery> | ||
+ | Image:ToneA4.png|[[Media:sinusA4_44k.wav|Komorné A (A4)]][[Image:Wav_icon.png]] | ||
+ | Image:ChordA4.png|[[Media:chordA4_44k.wav|Akord (A+Cis+E)]][[Image:Wav_icon.png]] | ||
+ | Image:NoiseA4.png|[[Media:noiseA4_44k.wav|Zašumené A4]][[Image:Wav_icon.png]] | ||
+ | </gallery> | ||
+ | |||
− | |||
<source lang="octave"> | <source lang="octave"> | ||
Line 8: | Line 79: | ||
% Okrem vykreslovania mozeme spravit export do .wav suboru a potom | % Okrem vykreslovania mozeme spravit export do .wav suboru a potom | ||
% si vysledne zvuky prehravat a prezerat napriklad v Audacity | % si vysledne zvuky prehravat a prezerat napriklad v Audacity | ||
− | |||
% | % | ||
% (c) Richard Balogh, 30. 5. 2008 | % (c) Richard Balogh, 30. 5. 2008 | ||
Line 24: | Line 94: | ||
freq = 440; % Komorne A4 = 440 Hz | freq = 440; % Komorne A4 = 440 Hz | ||
A = 0.9; % Amplituda je z intervalu <-1,1> | A = 0.9; % Amplituda je z intervalu <-1,1> | ||
+ | fi = 0; % Fazovy posun | ||
− | A4 = A * sin(2*pi*freq*time); | + | A4 = A * sin(2*pi*freq*time + fi); |
% plot(A4); % Mozeme si aj nakreslit | % plot(A4); % Mozeme si aj nakreslit | ||
Line 61: | Line 132: | ||
Tone = (A4 + Cis5 + E5)/3; % Aby amplituda bola <-1,1> | Tone = (A4 + Cis5 + E5)/3; % Aby amplituda bola <-1,1> | ||
wavwrite(Tone',f_sample,16,"chordA4_44k.wav"); | wavwrite(Tone',f_sample,16,"chordA4_44k.wav"); | ||
+ | |||
% %%%%%%%%%%%%% Signal 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | % %%%%%%%%%%%%% Signal 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | ||
Line 70: | Line 142: | ||
</source> | </source> | ||
+ | |||
+ | '''Download'''<BR> | ||
+ | * [[Media:signalyA4.m|signalyA4.m]][[Image:Mfile_icon.png]] | ||
+ | |||
+ | |||
+ | '''Pozn.:'''<br> | ||
+ | Ľudské ucho skutočne vníma zvuky rozložené na frekvencie. Akustický signál pôsobí na bubienok, jeho kmity prenesú | ||
+ | sluchové kostičky až do slimáka. Ten má pozdĺžne umiestnenú membránu s rôznou tuhosťou a rozširujúcu sa smerom dovnútra. | ||
+ | Kmity prenesené kostičkami na kvapalinu vovnútri slimáka (''cochlea'') rozkmitajú aj túto pozdĺžnu membránu | ||
+ | a to v mieste zodpovedajúcom rezonančnej frekvencii daného úseku, vždy na rôznom mieste. Pre hlboké tóny hlboko vovnútri slimáka, | ||
+ | pre vysoké blízko ústia. A pre stredné v strede. Pod kmitajúcou membránou je umiestnených 15 až 18 000 citlivých buniek, | ||
+ | ktoré reagujú na tieto kmity. Takto už v slimáku nastáva základná frekvenčná analýza. | ||
+ | (Karel Zehnula: ''Čidla robotů.'' SNTL, Praha, 1990.) | ||
+ | |||
+ | Z toho teda vyplýva, že pri akordoch skutočne nie je dôležitá fáza pri skladaní tónov. | ||
+ | |||
+ | == Prírodné signály == | ||
+ | |||
+ | Týmto neohrabaným názvom označujem signály, ktoré pochádzajú z reálneho sveta, nie z počítačovej simulácie. | ||
+ | Môžete si ich stiahnuť a robiť s nimi neskôr pokusy. Časom snáď pribudnú ďalšie a lepšie. | ||
+ | |||
+ | <gallery> | ||
+ | Image:SignalHeart.png|[[Media:heart.m|Srdce - EKG]][[Image:Mfile_icon.png]] | ||
+ | Image:SignalTemp.png|[[Media:teplota.m|Teplota vzduchu]][[Image:Mfile_icon.png]] | ||
+ | Image:FlautaA4.png|[[Media:flautaA4.wav|Flauta - A4]][[Image:Wav_icon.png]] | ||
+ | </gallery> | ||
+ | |||
+ | [[Category:DSP]] |
Latest revision as of 22:20, 20 June 2008
Budeme sa zaoberať nasledovnými typmi signálov:
- umelé,
- prírodné,
- audio,
- video.
Umelé testovacie signály
Na testovanie sa používajú umelé signály
- impulz
- skok
- harmonický signál
- šum
% Uvedene signaly v Octave vyrobime takto
PulseSignal = zeros(1000,1); PulseSignal(5)=1;
StepSignal = zeros(1000,1); StepSignal(6:50)=1;
SinusSignal = sin(linspace(0,4*pi,100));
NoiseSignal = 0 + 0.6 * randn([100 1]); % \mu = 0, \sigma = 0.6
HeartSignal;
% A vsetky naraz nakreslime. Po skonceni skriptu mame signaly
% nachystane v pamati. Mozeme ich dalej pouzivat.
%
clg; figure(1);
subplot(5,1,1);
stem(PulseSignal); axis ([0 100 -0.5 1.5]);
subplot(5,1,2);
stem(StepSignal,"b"); axis ([0 100 -0.5 1.5]);
subplot(5,1,3);
plot(SinusSignal,"g"); axis([0 100 -1.5 1.5]);
subplot(5,1,4);
plot(NoiseSignal,"r"); axis([0 100 -1.5 1.5]);
subplot(5,1,5);
plot(heart(:,1),heart(:,2)); axis([0 5 -1 2]);
Download
Toto nefunguje (a asi ani nebude): http://virtuallab.kar.elf.stuba.sk/robowiki/images/5/52/Mfile_icon.png signaly.m
Po stiahnutí si súbor uložte ako signaly.m a v Octave napíšte demo signaly.
Harmonické signály
V nasledujúcom príklade vytvoríme v Matlabe/Octave harmonický signál a jeho rôzne kombinácie.
% Priklad na vytvaranie harmonickych signalov
%
% Okrem vykreslovania mozeme spravit export do .wav suboru a potom
% si vysledne zvuky prehravat a prezerat napriklad v Audacity
%
% (c) Richard Balogh, 30. 5. 2008
%
%
%
% %%%%%%%%%%%%% Signal 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f_sample = 8000; % [Hz] - pre telefony OK
duration = 1; % [s] - jedna sekunda
time = 0 : (1/f_sample) : duration;
% time = linspace(0,duration,f_sample); % Alternativa zapisu
freq = 440; % Komorne A4 = 440 Hz
A = 0.9; % Amplituda je z intervalu <-1,1>
fi = 0; % Fazovy posun
A4 = A * sin(2*pi*freq*time + fi);
% plot(A4); % Mozeme si aj nakreslit
wavwrite(A4',"sinusA4_8k.wav"); % A4' - wavwrite potrebuje stlpec
% %%%%%%%%%%%%% Signal 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A = 1.9; % To iste, ale zvacsime apmplitudu
A4 = A * sin(2*pi*freq*time);
wavwrite(A4',"sinusA4_8k_orez.wav"); % Orezany signal, ma vyssie harmonicke
% %%%%%%%%%%%%% Signal 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f_sample = 44100; % [Hz] - CD audio
duration = 1; % [s] - jedna sekunda
time = 0 : (1/f_sample) : duration;
freq = 440; % Komorne A4 = 440 Hz
A = 0.9; % Vratime zasa naspat
A4 = A * sin(2*pi*freq*time);
wavwrite(A4',f_sample,16,"sinusA4_44k.wav"); % Musime zadat, ak f_sample != 8k
% %%%%%%%%%%%%% Signal 4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Akord A4 + C5# + E5
% A4 = 440 Hz
% C5# = 554,37
% E5 = 659,26
% http://www.phy.mtu.edu/~suits/notefreqs.html
%
A4 = A * sin(2*pi*440.00*time);
Cis5 = A * sin(2*pi*554.37*time);
E5 = A * sin(2*pi*659.26*time);
Tone = (A4 + Cis5 + E5)/3; % Aby amplituda bola <-1,1>
wavwrite(Tone',f_sample,16,"chordA4_44k.wav");
% %%%%%%%%%%%%% Signal 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Pridame k tonu sumovu zlozku
%
noise = 0 + 0.2 * randn(size(time)); % \mu = 0, \sigma = 0.2
Tone = (A4 + noise)/2; % Aby amplituda bola <-1,1>
wavwrite(Tone',f_sample,16,"noiseA4_44k.wav");
Download
Pozn.:
Ľudské ucho skutočne vníma zvuky rozložené na frekvencie. Akustický signál pôsobí na bubienok, jeho kmity prenesú
sluchové kostičky až do slimáka. Ten má pozdĺžne umiestnenú membránu s rôznou tuhosťou a rozširujúcu sa smerom dovnútra.
Kmity prenesené kostičkami na kvapalinu vovnútri slimáka (cochlea) rozkmitajú aj túto pozdĺžnu membránu
a to v mieste zodpovedajúcom rezonančnej frekvencii daného úseku, vždy na rôznom mieste. Pre hlboké tóny hlboko vovnútri slimáka,
pre vysoké blízko ústia. A pre stredné v strede. Pod kmitajúcou membránou je umiestnených 15 až 18 000 citlivých buniek,
ktoré reagujú na tieto kmity. Takto už v slimáku nastáva základná frekvenčná analýza.
(Karel Zehnula: Čidla robotů. SNTL, Praha, 1990.)
Z toho teda vyplýva, že pri akordoch skutočne nie je dôležitá fáza pri skladaní tónov.
Prírodné signály
Týmto neohrabaným názvom označujem signály, ktoré pochádzajú z reálneho sveta, nie z počítačovej simulácie. Môžete si ich stiahnuť a robiť s nimi neskôr pokusy. Časom snáď pribudnú ďalšie a lepšie.