Generování signálu v Matlabu

Podobné dokumenty
Osnova. Idea ASK/FSK/PSK ASK Amplitudové... Strana 1 z 16. Celá obrazovka. Konec Základy radiotechniky

Fourierova transformace

Vlastnosti Fourierovy transformace

Modulační syntéza 8. prosince 2014

Pulzní (diskrétní) modulace

Základy a aplikace digitálních. Katedra radioelektroniky (13137), blok B2, místnost 722

VY_32_INOVACE_ENI_2.MA_05_Modulace a Modulátory

Analogové modulace. Podpora kvality výuky informačních a telekomunikačních technologií ITTEL CZ.2.17/3.1.00/36206

Modulované signály. Protokol 1

Kreslení grafů v Matlabu

Cvi ení 2. Cvi ení 2. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 5, 2018

A/D převodníky - parametry

íta ové sít baseband narrowband broadband

VY_32_INOVACE_E 15 03

Hlavní parametry rádiových přijímačů

DSY-4. Analogové a číslicové modulace. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Stochastické signály (opáčko)

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

A7B31ZZS 4. PŘEDNÁŠKA 13. října 2014

Výpis m-souboru: Výsledný průběh:

Měření vlastností datového kanálu

PSK1-5. Frekvenční modulace. Úvod. Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka. Název školy: Vzdělávací oblast:

Snímání biologických signálů. A6M31LET Lékařská technika Zdeněk Horčík Katedra teorie obvodů

B2M31SYN SYNTÉZA AUDIO SIGNÁLŮ

9. PRINCIPY VÍCENÁSOBNÉHO VYUŽITÍ PŘENOSOVÝCH CEST

Úvod do zpracování signálů

Předmět A3B31TES/Př. 13

4.2. Modulátory a směšovače

1. Základy teorie přenosu informací

Počítačové sítě. Lekce 5: Základy datových komunikací

ADA Semestrální práce. Harmonické modelování signálů

X31ZZS 3. PŘEDNÁŠKA 6. října Periodické průběhy Fourierovy řady Spektrum Barva zvuku Aplikace

Zvyšování kvality výuky technických oborů

31ZZS 9. PŘEDNÁŠKA 24. listopadu 2014

Spektrální analýza a diskrétní Fourierova transformace. Honza Černocký, ÚPGM

evodníky Univerzita Tomáše Bati ve Zlíně Ústav elektrotechniky a měření Přednáška č. 14 Milan Adámek adamek@fai.utb.cz U5 A

Binární data. Číslicový systém. Binární data. Klávesnice Snímače polohy, dotykové displeje, myš Digitalizovaná data odvozená z analogového signálu

Primární zpracování radarového signálu dopplerovská filtrace

MĚŘENÍ ÚHLOVÝCH KMITŮ ZA ROTACE

Lineární algebra s Matlabem cvičení 3

Amplitudová a frekvenční modulace

A2B31SMS 2. PŘEDNÁŠKA 9. října 2017 Číslicové signály

ochranným obvodem, který chrání útlumové články před vnějším náhodným přetížením.

Číslicové zpracování signálů a Fourierova analýza.

1. Přednáška: Obecné Inf. + Signály a jejich reprezentace

Vlastnosti a modelování aditivního

Digitální telefonní signály

3.cvičen. ení. Ing. Bc. Ivan Pravda

7. ODE a SIMULINK. Nejprve velmi jednoduchý příklad s numerických řešením. Řešme rovnici

Digitální modulace. Podpora kvality výuky informačních a telekomunikačních technologií ITTEL CZ.2.17/3.1.00/36206

Modulace analogových a číslicových signálů

SIGNÁLY A LINEÁRNÍ SYSTÉMY

A2B31SMS 3. PŘEDNÁŠKA 15. října 2015

A7B31ZZS 10. PŘEDNÁŠKA Návrh filtrů 1. prosince 2014

Druhy sdělovacích kabelů: kroucené metalické páry, koaxiální, světlovodné

Výkon komunik. systémů

SEMESTRÁLNÍ PRÁCE Z X37SAS Zadání č. 7

12 - Frekvenční metody

9 khz až 3 GHz s rozlišovacím filtrem 10 Hz až 10 MHz v širokém dynamickém rozsahu.

2. GENERÁTORY MĚŘICÍCH SIGNÁLŮ II

[ n. Konvoluce. = 0 jinak. 0 jinak. Užitečné signály (diskrétní verze) Jednotkový skok 1 pro n = 0

Úloha D - Signál a šum v RFID

Digitalizace převod AS DS (analogový diskrétní signál )

ANALÝZA LIDSKÉHO HLASU

Grafické výstupy v Octave/Matlabu a GnuPlotu

Otázka 22(42) Přístroje pro měření signálů, metody pro měření v časové a frekvenční doméně. Přístroje

Úloha č. 7 Disperzní vlastnosti optických vlnovodů

Modulace a šum signálu

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Direct Digital Synthesis (DDS)

Zvukové rozhraní. Základní pojmy

P7: Základy zpracování signálu

A/D převodníky, D/A převodníky, modulace

teorie elektronických obvodů Jiří Petržela obvodové funkce

ETC Embedded Technology Club 6. setkání

Signál v čase a jeho spektrum

VYUŽITÍ MATLABU PRO PODPORU VÝUKY A PŘI ŘEŠENÍ VÝZKUMNÝCH ÚKOLŮ NA KATEDŘE KOMUNIKAČNÍCH A INFORMAČNÍCH SYSTÉMŮ

Zpráva k semestrální práci

ZÁKLADY DATOVÝCH KOMUNIKACÍ

ROZ II cv. 01 Dekonvoluce KM - FJFI - ČVUT

Lineární a adaptivní zpracování dat. 3. SYSTÉMY a jejich popis ve frekvenční oblasti

Stavový model a Kalmanův filtr

Rekurentní filtry. Matlab

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

ÚPGM FIT VUT Brno,

ROZ II cv. 01 Dekonvoluce KM - FJFI - ČVUT

Světlo jako elektromagnetické záření

Modulace 2. Obrázek 1: Model klíčování amplitudovým posuvem v programu MATLAB

Analogově číslicové převodníky

3. AMPLITUDOVĚ MODULOVANÉ SIGNÁLY

Kmitočtová analýza (AC Analysis) = analýza kmitočtových závislostí obvodových veličin v harmonickém ustáleném stavu (HUS) při první iteraci ano

MATLAB PRO PODPORU VÝUKY KOMUNIKAČNÍCH SYSTÉMŮ

VOLBA ČASOVÝCH OKEN A PŘEKRYTÍ PRO VÝPOČET SPEKTER ŠIROKOPÁSMOVÝCH SIGNÁLŮ

polyfázové filtry (multirate filters) cascaded integrator comb filter (CIC) A0M38SPP - Signálové procesory v praxi - přednáška 8 2

Inovace a zkvalitnění výuky směřující k rozvoji odborných kompetencí žáků středních škol

Teoretický úvod: [%] (1)

ZÁKLADY DATOVÝCH KOMUNIKACÍ

Přenosová technika 1

oblasti je znázorněn na obr Komplexní obálku můžeme rozepsat na její reálnou a

filtry FIR zpracování signálů FIR & IIR Tomáš Novák

Transkript:

Základy zpracování signálu Jiří Krejsa, Generování signálu v Matlabu Jak získám signál? - měření Jak vyrobit signál v Matlabu? Řada funkcí, základní jsou v klasickém Matlabu, další v SPT (Signal Processing Toolbox). Deterministické signály Klasické harmonické - funkce sin a cos t = :.:; = ; skutecna_frekvence = ; uhlova_frekvence = *pi*skutecna_frekvence; uhlova_faze = ; x = *sin(uhlova_frekvence*t + uhlova_faze); plot(t,x) xlabel(''); ylabel('');.5.5 -.5 - -.5 -...3.4.5.6.7.8.9 sin / cos jsou v základním matlabu, na všechno další je již nutný SPT - Signal Processing Toolbox

Základy zpracování signálu Jiří Krejsa, Harmonický signál s proměnným kmitočtem - příkaz chirp koncovy_cas = ; t = :.:koncovy_cas; = ; pocatecni_frekvence = ; koncova_frekvence = ; x = *chirp(t,pocatecni_frekvence,koncovy_cas,koncova_frekvence); plot(t,x) xlabel(''); ylabel(''); v čem je to jiné?.5.5 -.5 - -.5 -...3.4.5.6.7.8.9 koncovy_cas = ; t = :.:koncovy_cas; = ; pocatecni_frekvence = ; koncova_frekvence = ; x = *chirp(t,pocatecni_frekvence,koncovy_cas,koncova_frekvence); plot(t,x) xlabel(''); ylabel('');.5.5 -.5 - -.5 -...3.4.5.6.7.8.9

Základy zpracování signálu Jiří Krejsa, rozšířená verze (metoda, fáze) - fáze nefachá! koncovy_cas = ; t = :.:koncovy_cas; = ; pocatecni_frekvence = ; koncova_frekvence = ; pocatecni_faze = pi/8; x = *chirp(t,pocatecni_frekvence,koncovy_cas,koncova_frekvence,'quadratic',pocatecni_faze); plot(t,x) xlabel(''); ylabel(''); další změny kmitočtu: linear, quadratic, logarithmic.5.5 -.5 - -.5 -...3.4.5.6.7.8.9

Základy zpracování signálu Jiří Krejsa, Harmonický oscilátor s frekvencí závislou na vektorové veličině - příkaz vco (voltage controlled oscillator) = ; Fs = ; % vzorkovaci frekvence t = :/Fs:; % cas v rozsahu - sec Fc = Fs/; % referencni frekvence ridici_signal = zeros(,length(t)); % rozsah hodnot je - az, - odpovida nulove frekvenci odpovida Fc, % odpovida *Fc prvniinterval = floor(length(t)/3); ridici_signal(:prvniinterval) = -.5; ridici_signal(*prvniinterval:length(t)) =.5; x = *vco(ridici_signal,fc,fs); subplot(,,) plot(t,ridici_signal); xlabel(''); ylabel('ridici signal'); subplot(,,) plot(t,x) xlabel(''); ylabel(''); ridici signal.5 -.5..4.6.8..4.6.8 - -..4.6.8..4.6.8 Co když bude řídící signál harmonický? Nebo lineární?

Základy zpracování signálu Jiří Krejsa, = ; Fs = ; % vzorkovaci frekvence t = :/Fs:; % cas v rozsahu - sec Fc = Fs/; % referencni frekvence ridici_signal = sin(5*t); x = *vco(ridici_signal,fc,fs); subplot(,,) plot(t,ridici_signal); xlabel(''); ylabel('ridici signal'); subplot(,,) plot(t,x) xlabel(''); ylabel(''); = ; Fs = ; % vzorkovaci frekvence t = :/Fs:; % cas v rozsahu - sec Fc = Fs/; % referencni frekvence ridici_signal = linspace(-,, length(t)); x = *vco(ridici_signal,fc,fs); subplot(,,) plot(t,ridici_signal); xlabel(''); ylabel('ridici signal'); subplot(,,) plot(t,x) xlabel(''); ylabel(''); ridici signal ridici signal.5 -.5 -..4.6.8..4.6.8 - -..4.6.8..4.6.8.5 -.5 -..4.6.8..4.6.8 - -..4.6.8..4.6.8

Základy zpracování signálu Jiří Krejsa, Obdélník a pila - příkazy square a sawtooth square - Příkaz umožňuje vytvářet sled impulzů o obdélníkovém průběhu, defaultně je stejně dlouhý v kladné i záporné oblasti, změnit to jde parametrem (v procentech) =.; frekvence_signalu = ; %Hz t = :.:.5; % cas v rozsahu -.5 sec x = * square(*pi*frekvence_signalu*t); plot(t,x) xlabel(''); ylabel('');.5.5 -.5 - -.5.5..5..5.3.35.4.45.5 =.; frekvence_signalu = ; %Hz t = :.:.5; % cas v rozsahu -.5 sec x = * square(*pi*frekvence_signalu*t,5); % 5 procent je delka kladne plot(t,x) xlabel(''); ylabel('');.5.5 -.5 - -.5.5..5..5.3.35.4.45.5

Základy zpracování signálu Jiří Krejsa, sawtooth - Příkaz umožňuje vytvářet sled impulzů o pilovitém průběhu, tvar pily se dá měnit parametrem =.; frekvence_signalu = ; %Hz t = :.:.75; % cas v rozsahu -.75 sec parametr = ; x = * sawtooth(*pi*frekvence_signalu*t,parametr); parametr =.; x = * sawtooth(*pi*frekvence_signalu*t,parametr); parametr =.5; x3 = * sawtooth(*pi*frekvence_signalu*t,parametr); parametr = ; x4 = * sawtooth(*pi*frekvence_signalu*t,parametr); subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('parametr ') subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('parametr.') subplot(,,3) plot(t,x3) xlabel(''); ylabel(''); title('parametr.5') subplot(,,4) plot(t,x4) xlabel(''); ylabel(''); title('parametr ') - parametr -..4.6.8 parametr.5 - -..4.6.8 - parametr. -..4.6.8 parametr - -..4.6.8

Základy zpracování signálu Jiří Krejsa, Jediný impuls o různých průbězích vyrábí příkazy rectpuls, tripuls a gauspuls. Impulsy jsou centrované kolem nuly a délka je na intervalu otevřeném zprava (na to pozor!) =.; t = -4:.:4; % cas v rozsahu -5 5 sec x = * rectpuls(t); x = * rectpuls(t,3); x3 = * tripuls(t,3,-); x4 = * tripuls(t,,); subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('rectpuls') subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('rectpuls(t,3)') subplot(,,3) plot(t,x3) xlabel(''); ylabel(''); title('tripuls(t,3,-)') subplot(,,4) plot(t,x4) xlabel(''); ylabel(''); title('tripuls(t,,)').4..8.6.4. rectpuls -4-4.5.5 tripuls(t,3,-) -4-4.4..8.6.4. rectpuls(t,3) -4-4.5.5 tripuls(t,,) -4-4

Základy zpracování signálu Jiří Krejsa, gauspuls vyrábí harmonický signál, jehož tvar () se mění podle Gaussovky. Má více parametrů: gauspuls(t,fc,bw), kde t je čas, fc je frekvence harmonického signálu a bw je šířka pásma (bw = band width). Šířka pásma je ve zlomku (má rozsah - ). =.; frekvence = ; sirka_pasma =..5 sirka pasma..5 sirka pasma.5 t = -:.:; % cas v rozsahu - sec x = * gauspuls(t, frekvence, sirka_pasma); sirka_pasma =.5; x = * gauspuls(t, frekvence, sirka_pasma);.5.5 subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('sirka pasma.') -.5 -.5 subplot(,,) plot(t,x) xlabel(''); ylabel(''); title('sirka pasma.5') - - -.5 - -.5.5 -.5 - -.5.5 Poznámka: tenhle způsob modulace signálu máte každý u sebe (GSM)

Základy zpracování signálu Jiří Krejsa, Někdy je fajn zjistit, kdy už bude mrnění signálu příliš malé. tc = gauspuls('cutoff',fc,bw,bwr,tpe) kde: o tc je doba (cutoff time), po které obálka opisující generovaný impuls klesne o tpe (ten poslední parametr ve funkci) decibelů vůči maximu obálky. o bwr je referenční úroveň šířky pásma tpe i bwr musí být menší než nula! =.; frekvence = 5; % 5kHz vzorkovani = ; % MHz vz_per = /vzorkovani; % vzorkovaci perioda sirka_pasma =.6; % 6 % limit = -4; % az bude signal o -4dB mensi nez spicka % zjistim dobu (v sekundach) tc = gauspuls('cutoff',frekvence,sirka_pasma,[],limit) % cas si nastavim jen odtud potud t = -tc : vz_per : tc; x = * gauspuls(t,frekvence,sirka_pasma); % jeste jednou totez pro krutejsi limit sirka_pasma =.6; % 6 % limit = -9; % az bude signal o -9dB mensi nez spicka tc = gauspuls('cutoff',frekvence,sirka_pasma,[],limit) t = -tc : vz_per : tc; x = * gauspuls(t,frekvence,sirka_pasma); subplot(,,); plot(t,x) xlabel(''); ylabel(''); title('limit -4dB') subplot(,,); plot(t,x) xlabel(''); ylabel(''); title('limit -6dB') limit -4dB.5.5 -.5 - -4-3 - - 3 4 limit -6dB x -5.5.5 -.5 - -6-4 - 4 6 x -5

Základy zpracování signálu Jiří Krejsa, K čemu jsou dobré jednotlivé pulsy? Dá se z nich sestavit celý signál (pulse train) pomocí funkce pulstran: y = pulstran(t,d,'func'), kde t je vektor časové osy d určuje kolikrát se budou impulsy opakovat func označuje typ signálu, konkrétně 'gauspuls' pro generování gaussovsky modulovaného harmonického signálu 'rectpuls' pro obdélníkový signál 'tripuls' pro pilovitý signál =.; frekvence = 5; % 5Hz vzorkovani = ; % khz t = :/vzorkovani:; d = :/frekvence:; sirka_obdelniku = *(/vzorkovani); % desetinasobek periody vzorkovani y = *pulstran(t,d, 'rectpuls',sirka_obdelniku);.5.5 rectpuls sirka_pily = (/frekvence)/3; % tretina frekvence pulsu tvar_pily = -; y = *pulstran(t,d, 'tripuls',sirka_pily,tvar_pily); subplot(,,); plot(t,y) xlabel(''); ylabel(''); title('rectpuls') subplot(,,); plot(t,y) xlabel(''); ylabel(''); title('tripuls')...3.4.5.6.7.8.9 tripuls.5.5...3.4.5.6.7.8.9

Základy zpracování signálu Jiří Krejsa, Parametr d může být dvousloupcová matice. V tom případě je první sloupec frekvence impulsů a druhý sloupec je váha (gain). Příklad s váhou o průběhu půlky sinusovky: =.; frekvence = ; % 5Hz vzorkovani = ; % khz t = :/vzorkovani:; d = :/frekvence:; % odstupy d = sin(*pi*d); % gain d= [d' d'] sirka_obdelniku = *(/vzorkovani); % desetinasobek periody vzorkovani y = *pulstran(t,d, 'rectpuls',sirka_obdelniku); sirka_pily = (/frekvence)/3; % tretina frekvence pulsu tvar_pily = -; y = *pulstran(t,d, 'tripuls',sirka_pily,tvar_pily); - rectpuls -...3.4.5.6.7.8.9 tripuls - -...3.4.5.6.7.8.9

Základy zpracování signálu Jiří Krejsa, Jako pulsu se dá použít i nějaký vlastní tvar, přičemž se použije interpolace z tohoto tvaru: pulstran(t, d, muj_puls, vzorkovani_meho_pulsu) přičemž muj_puls pokrývá [,(length(muj_puls)-)/ vzorkovani_meho_pulsu] a mimo rozsah se bere roven nule. =.; frekvence = ; % Hz vzorkovani = ; % Hz muj_puls = hamming(5); % moj vlastni prubeh pulsu t = :/vzorkovani:; d = :/frekvence:; % odstupy y = *pulstran(t,d,muj_puls,4); subplot(,,); plot(muj_puls) xlabel('vzorek'); ylabel('hodnota'); title('muj puls') subplot(,,); plot(t,y) xlabel(''); ylabel(''); title('sled mych vlastnich pulsu') hodnota.8.6.4. muj puls 5 5 5 vzorek sled mych vlastnich pulsu.5.5 -.5...3.4.5.6.7.8.9

Základy zpracování signálu Jiří Krejsa,. Modulované signály Modulace - změna charakteru vhodného nosného signálu pomocí modulujícího (řídícího)signálu Způsoby modulace: moc moc moc, ukážeme ty základní, je nutný SPT Příkaz modulate Syntaxe: modulate(x, fc, fs, metoda, argumenty) x - řídící signál fc - frekvence nosné fs - vzorkovací frekvence metoda - string, je jich spousta argumenty - většina metod umožňuje rozsáhlou parametrizaci základní modulace: PPM - pulzně polohová modulace (pulse position modulation) PWM - pulzně šířková modulace (pulse width modulation) AM - amplitudová modulace FM - frekvenční modulace

Základy zpracování signálu Jiří Krejsa, PPM - pulzně polohová modulace frekvence = 4; % Hz vzorkovani = ; % Hz % ridici signal musi byt v rozmezi -, ale pozor na prekryti pulsu!.5 ridici signal ridici_signal = [ ]; ridici_signal = [.5.5.5.9.9.9]; sirka_pulsu =.; % modulate umi i vratit casovou osu, staci pridat parametr na vystup [y,t] = modulate(ridici_signal,frekvence,vzorkovani,'ppm',sirka_pulsu); [y,t] = modulate(ridici_signal,frekvence,vzorkovani,'ppm',sirka_pulsu); subplot(4,,); stem(ridici_signal) title('ridici signal ') subplot(4,,); stem(t,y) xlabel('cas [sec]'); title('modulovany signal ') -.5-3 4 5 6 7 8 9.5 modulovany signal.5..5..5 cas [sec] ridici signal.5 3 4 5 6 7 8 9 subplot(4,,3); stem(ridici_signal) title('ridici signal ') modulovany signal subplot(4,,4); stem(t,y) xlabel('cas [sec]'); title('modulovany signal ').5.5..5..5 cas [sec]

Základy zpracování signálu Jiří Krejsa, PWM - pulsně šířková modulace frekvence = 4; % Hz frekvence = 8; vzorkovani = ; % Hz ridici_signal = [..5..5.9.7.9];.5 ridici signal % modulate umi i vratit casovou osu, staci pridat parametr na vystup [y,t] = modulate(ridici_signal,frekvence,vzorkovani,'pwm'); [y,t] = modulate(ridici_signal,frekvence,vzorkovani,'pwm'); subplot(3,,); stem(ridici_signal) title('ridici signal ') subplot(3,,); stem(t,y) xlabel('cas [sec]'); title('modulovany signal - frekvence 4 Hz') subplot(3,,3); stem(t,y) xlabel('cas [sec]'); title('modulovany signal - frekvence 8 Hz') 3 4 5 6 7 8 9.5 modulovany signal - frekvence 4 Hz.5..5..5 cas [sec] modulovany signal - frekvence 8 Hz.5..4.6.8.. cas [sec]

Základy zpracování signálu Jiří Krejsa, Amplitudová modulace frekvence = ; % Hz frekvence = ; % Hz vzorkovani = ; % Hz.5 ridici signal t = :/vzorkovani:; ridici_signal = cos(*pi*t); hodnota -.5 y = modulate(ridici_signal,frekvence,vzorkovani,'am'); y = modulate(ridici_signal,frekvence,vzorkovani,'am'); subplot(3,,); plot(t,ridici_signal) xlabel('cas [sec]'); ylabel('hodnota'); title('ridici signal') subplot(3,,); plot(t,y) xlabel(''); ylabel(''); title('modulovany signal ( Hz)') subplot(3,,3); plot(t,y) xlabel(''); ylabel(''); title('modulovany signal ( Hz)') -..4.6.8..4.6.8 cas [sec] modulovany signal ( Hz).5 -.5 -..4.6.8..4.6.8 modulovany signal ( Hz).5 -.5 -..4.6.8..4.6.8

Základy zpracování signálu Jiří Krejsa, Frekvenční modulace frekvence = ; % Hz frekvence = ; % Hz vzorkovani = ; % Hz t = :/vzorkovani:; hodnota.5 -.5 ridici signal ridici_signal = cos(*pi*t); y = modulate(ridici_signal,frekvence,vzorkovani,'fm'); y = modulate(ridici_signal,frekvence,vzorkovani,'fm'); poznámka - není problém využít již probraného příkazu vco a dosáhnout téhož výsledku, vyzkoušejte -..4.6.8..4.6.8 cas [sec] modulovany signal ( Hz).5 -.5 -..4.6.8..4.6.8 modulovany signal ( Hz).5 -.5 -..4.6.8..4.6.8

Základy zpracování signálu Jiří Krejsa, Jak z toho zase dostanu zpátky původní signál, když mám k dispozici ten modulovaný? Příkaz demod frekvence = ; % Hz vzorkovani = ; % Hz t = :/vzorkovani:; ridici_signal = sin(*pi*t); y = modulate(ridici_signal,frekvence,vzorkovani,'am'); y = demod(y,frekvence,vzorkovani,'am'); subplot(,,); plot(t,ridici_signal,'r',t,y,'b') xlabel('cas [sec]'); ylabel('hodnota'); title('ridici signal pred a po demodulaci') legend('pred','po'); subplot(,,); plot(t,y) xlabel(''); ylabel(''); title('modulovany signal') hodnota.5 -.5 ridici signal pred a po demodulaci pred -...3.4.5.6.7.8.9 cas [sec] modulovany signal.5 -.5 -...3.4.5.6.7.8.9 po Není to nějaké podivné? Vždyť po demodulaci je to přesně půlka původního signálu! Jak to? Demod to dělá blbě!

Základy zpracování signálu Jiří Krejsa, Generování zašumělých signálů Aditivní šum - šum je se signálem sečtený xn [ ] = sn [ ] + sumn [ ] Jak vyrobit signál, který je zašumělý aditivním šumem o stanoveném poměru SNR (signal to noise ratio)? SNR db Psignál Asignál Asignál = log = log = log Pšum Ašum Ašum Potřebuji tedy vypočítat efektivní hodnoty signálu a šumu. Když má šum nulovou střední hodnotu, je jeho efektivní hodnota rovna směrodatné odchylce. Tuto směrodatnou odchylku potřebuji určit: A σ = signál SNR N Připomínám, že výkon signálu je suma čtverců podělená počtem vzorků: P s [ n] = N A efektivní hodnota je druhá odmocnina z výkonu (pro harmonický signál je to / ). n=

Základy zpracování signálu Jiří Krejsa, Příklad - chceme vyrobit sinusovku o amplitudě, která bude zatížena aditivním šumem tak, že SNR je a db. = ; vzorkovani = ; %Hz frekvence = ; %Hz % casova osa t = :/vzorkovani:; % - sec % cisty signal signal = * sin(*pi*frekvence*t); 3 - - signal s aditivnim sumem o SNR = db % vypocet sumu SNR = ; %db A = / sqrt(); sigma = A / (^(SNR/)); sum = sigma * randn(,length(t)); %pozor na rand/randn! -3-4..4.6.8..4.6.8 SNR = ; %db sigma = A / (^(SNR/)); sum = sigma * randn(,length(t)); %celkovy signal signal_sesumem = signal + sum - sigma/; signal_sesumem = signal + sum - sigma/; subplot(,,) plot(t,signal_sesumem,'b',t,signal,'r') title('signal s aditivnim sumem o SNR = db'); subplot(,,) plot(t,signal_sesumem,'b',t,signal,'r') title('signal s aditivnim sumem o SNR = db'); 3 - - signal s aditivnim sumem o SNR = db -3..4.6.8..4.6.8

Základy zpracování signálu Jiří Krejsa, Příklad toho, co se stane s nebohým zvukem, když ho zašumíme. Na webu sosněte zvuk rec.wav, nebo namluvte vlastní. % nasosnuti zvuku, jeho zasumeni clear all [vzorky,fs,nbits]=wavread('rec.wav');..5 original se sumem % zasumime SNR = ; %db = (max(vzorky) - min(vzorky))/; A = / sqrt(); sigma = A / (^(SNR/)); sum = sigma * randn(,length(vzorky)); sum = sum'; vzorky = vzorky + sum - sigma/; % ulozime wavwrite(vzorky,fs,nbits,'recsum.wav'); % zobrazime od = 4; do = od+5; plot(:do-od+, vzorky(od:do),'b',:do-od+,vzorky(od:do),'r'); legend('original','se sumem')..5 -.5 -. -.5 -. 3 4 5 6

Základy zpracování signálu Jiří Krejsa, Šum se přidá spíše při přenosu signálu. Takže nejprve modulujeme, pak zašumíme, demodulujeme a koukáme % nasosnuti zvuku, jeho modulace, zasumeni a nasledna demodulace clear all [vzorky,fs,nbits]=wavread('rec.wav');.8 % zmodulujeme AM, nosna bude dvojnasobek vzorkovacky originalnich dat frekvence = fs * ; vzorkovani = frekvence * ; radio = modulate(vzorky,frekvence,vzorkovani,'am');.6.4 % zasumime modulovany signal SNR = ; %db = (max(radio) - min(radio))/; A = / sqrt(); sigma = A / (^(SNR/)); sum = sigma * randn(,length(radio)); sum = sum'; radio = radio + sum - sigma/; % domodulujeme vzorky = demod(radio,frekvence,vzorkovani,'am'); vzorky = vzorky * ; % % ulozime wavwrite(vzorky,fs,nbits,'recsummod.wav');. -. -.4 -.6 original po modulaci modulece se sumem demodulovany -.8 4 6 8 % zobrazime od = 4; do = od+; plot(:do-od+, vzorky(od:do),'b',:do-od+,radio(od:do),'r',:dood+,radio(od:do),'k',... :do-od+,vzorky(od:do),'m'); legend('original','po modulaci','modulece se sumem','demodulovany')