Signaalinkäsittelyssä joudutaan usein generoimaan erilaisia signaaleja keinotekoisesti. Tyypillisimpiä generoitavia aaltomuotoja ovat eritaajuiset sinimuotoiset signaalit (modulointi) sekä normaalijakautunut kohina, mutta digitaalisesti voidaan generoida myös mielivaltaisia aaltomuotoja. Yleisimmät tekniikat perustuvat taulukkolukujen (look-up table) käyttöön. Muita mahdollisia toteutustapoja ovat mm. marginaalisesti stabiiliin rekursioon perustuvat generaattorit. Signaalin generointi taulukkoluvuilla Signaaleja voidaan generoida digitaalisesti lukemalla aaltomuodosta muistiin talletettuja näytepisteitä. Näytepisteet voidaan muodostaa näytteistämällä analoginen aaltomuoto tai laskennallisesti. Jos näytepisteet kuvaavat tarkasti signaalin yhden jakson, voidaan jatkuva signaali muodostaa lukemalla näytepisteiden muodostama jakso useita kertoja peräkkäin. Jyrki Laitinen TL5362 DSK-algoritmit (S23) 1
Signaalin generointi taulukkoluvuilla (jatkuu) Generoidun signaalin taajuutta voidaan muunnella vaihtamalla nopeutta, jolla näytepisteiden arvot luetaan taulukosta, tai yleisemmin vaihtamalla taulukosta luettavien näytepisteiden lukumäärää. Jälkimmäisessä tapauksessa on huomioitava laskostumisen mahdollisuus. Aaltomuodon laatua mitataan yleensä harmonisella kokonaissäröllä (total harmonic distortion, THD). Hyvälaatuisilla signaaleilla perustaajuuden tehon suhde harmonisten taajuuksien tehoon on tyypillisesti > 3... 6 db. Jyrki Laitinen TL5362 DSK-algoritmit (S23) 2
Esimerkki. Sinimuodon generointi taulukkoluvuilla. Talletetaan N kpl tasavälisesti poimittuja näytteitä sinin jaksosta binaarimuodossa lukumuistiin ja luetaan ne vakioaskelin etenevällä osoitelaskurilla halutulla näytetaajuudella. i 36 x, N [] i = sin, i = 1, K N Näyte 1 2 3 4 5 6 7 Arvo.77 1.77 -.77-1 -.77 Koska sinijakso on symmetrinen, riittää tässä tapauksessa periaatteessa ¼-jakson näytepisteiden tallettaminen. Tällöin saavutetaan merkittävä muistisäästö, mutta lukualgoritmit monimutkaistuvat. Jyrki Laitinen TL5362 DSK-algoritmit (S23) 3
Esimerkki. Sinimuodon generointi taulukkoluvuilla. (jatkuu) Käytännössä generoitavan signaalin taajuutta joudutaan useimmiten säätämään vaihtelemalla taulukosta luettavien näytepisteiden määrää. Jos taajuutta muutetaan kokonaislukuaskelin, on näyteajoitus täsmällinen ja generoituun signaaliin syntyvä särö määräytyy näytteiden esitystarkkuudesta. Jos sen sijaan käytössä on murtolukuaskel taulukkoa luetaan kokonaisluvuksi katkaistulla osoittimen arvolla, jolloin näyteajoituksen virheistä syntyy lisäsäröä. Jos esim. edellä halutaan generoida siniä perustaajuuden f asemesta taajuudella 8f/6 ja lukunopeus on vakio, jää ainoaksi mahdollisuudeksi generoida signaali nopeammin lukemalla vähemmän näytepisteitä yhtä jaksoa kohden. Tässä siis kahdeksan pisteen asemesta luetaan vain kuusi pistettä, jolloin yksi jakso tuotetaan lyhyemmässä ajassa eli signaalin taajuus kasvaa (f 8f/6). Jyrki Laitinen TL5362 DSK-algoritmit (S23) 4
Esimerkki. Sinimuodon generointi taulukkoluvuilla. (jatkuu) taulukoidut arvot halutut arvot Näyte 1 2 3 4 5 Haluttu arvo.866.866 -.866 -.866 Taulukoitu arvo.77.77.77.77 Virhe.159.159.159.159 Jyrki Laitinen TL5362 DSK-algoritmit (S23) 5
Esimerkki. Sinimuodon generointi taulukkoluvuilla. (jatkuu) Taajuuden säädössä syntyvää säröä voidaan pienentää interpoloimalla taulukoitujen näytepisteiden välisiä arvoja. y y = = A + B T b A + ( B A T a t A) F T b t T A on aika-akselin suunnassa lähimpänä interpoloitavaa arvoa oleva taulukon piste. Arvot (B - A) voidaan joko laskea erikseen tai tallettaa valmiiksi taulukkoon. Kun esim. edellä kasvatettiin generoitavan sinisignaalin taajuutta f 8f/6, on ositelaskurin murto-osan arvo F = 2/6 = 1/3. a = osoitelaskurin murto - osan arvo = F T a + t taulukoidut arvot lin. interp. arvot Jyrki Laitinen TL5362 DSK-algoritmit (S23) 6 T a A y B T b
Esimerkki. Sinimuodon generointi taulukkoluvuilla. (jatkuu) Näyte 1 2 3 4 5 Haluttu arvo.866.866 -.866 -.866 Lin. interp. arvo.85.85 -.85 -.85 Virhe.61.61.61.61 Jyrki Laitinen TL5362 DSK-algoritmit (S23) 7
Kohinan generointi Signaalien generointi Kohinaa generoidaan yleensä signaalien modulointia tai järjestelmien simulointia ja testausta varten. Koska testisignaalin tulee yleensä muistuttaa mahdollisimman paljon todellisia signaaleja, tulisi generoitavan kohinan jakauman olla normaalijakauman kaltainen (Gaussin kellokäyrä), mikä on luonnossa esiintyvän satunnaiskohinan tyypillinen muoto. Kohinan generointi perustuu satunnaislukujen muodostamiseen, joka voidaan toteuttaa laskennallisesti tai ns. takaisinkytketyllä siirtorekisterillä. Satunnaislukujen laskennalliseen muodostukseen käytettävät algoritmit ovat usein muotoa R = (as + b) mod c, missä R on satunnaisluku, a, b ja c ovat mielivaltaisesti valittuja vakioita ja S siemenluku. Yhdestä siemenluvusta lähtien voidaan muodostaa satunnaissatunnaislukujen jono. Jono toistuu kuitenkin samaa siemenlukua käytettäessä aina samanlaisena. Jyrki Laitinen TL5362 DSK-algoritmit (S23) 8
Kohinan generointi (jatkuu) Signaalien generointi Siemenlukua voidaan myös vaihtaa, jolloin satunnaisuutta voidaan lisätä. Yleinen tekniikka on muodostaa uusi siemenluku kellonajasta aina järjestelmän käynnistyksen yhteydessä. Laskennalliset satunnaislukugeneraattorit muodostavat tyypillisesti satunnaislukuja, joiden arvot ovat välillä..1, keskiarvo.5, hajonta 1/ 12 ja jakauma (todennäköisyystiheysfunktio, probability density function = pdf) tasainen. Jakaumaa voidaan approksimoida näytepisteiden histogrammilla. Kun generoituja satunnaislukuja summataan, tuloksena saatavan kohinan jakauma alkaa lähestyä normaalijakaumaa. Kun jokainen kohinapiste muodostetaan n. 12 satunnaisluvun summana jakauma approksimoi yleensä riittävän hyvin normaalijakaumaa. Algoritmi perustuu tilastotieteen keskeiseen raja-arvolauseeseen (central limit theorem), jonka mukaan satunnaislukujen summan jakauma lähestyy normaalijakaumaa, kun termien määrää lisätään, riippumatta satunnaislukujen jakauman muodosta. Jyrki Laitinen TL5362 DSK-algoritmit (S23) 9
Kohinan generointi (jatkuu) Signaalien generointi Muodostettaessa satunnaislukuja takaisinkytketyllä siirtorekisterillä saadaan valesatunnainen (pseudo-random) sekvenssi, joka on jaksollinen pitkällä tarkasteluvälillä. Takaisinkytkijöitten sijoittelu määrää syntyvän satunnaissekvenssin pituuden. Jos siirtorekisterin pituus on M bittiä, satunnaissekvenssin maksimipituus on 2 M -1. Maksimipituisella sekvenssillä rekisterissä käyvät kaikki mahdolliset bittikombinaatiot lukuunottamatta lukua.... MSB siirtorekisteri LSB 1 1 1 1 1 XOR XOR lähtö takaisinkytkijät Jyrki Laitinen TL5362 DSK-algoritmit (S23) 1
Kohinan generointi (jatkuu) Normaalijakautunut kohina 4 3 2 1-1 -2 Keskihajonta σ Keskiarvo µ σ 2 = varianssi = teho -3-4 5 1 15 2 25 3 Jyrki Laitinen TL5362 DSK-algoritmit (S23) 11
Kohinan generointi (jatkuu) Signaalien generointi Normaalijakauma (µ =, σ = 1) Todennäköisyys.45.4.35.3.25.2.15.1.5 σ σ -5-4 -3-2 -1 1 2 3 4 5 Arvo Jyrki Laitinen TL5362 DSK-algoritmit (S23) 12
Kohinan generointi (jatkuu) Signaalien generointi Jyrki Laitinen TL5362 DSK-algoritmit (S23) 13