Arhiv: 'FERI R-iT'

n/a

SIS: 9.vaja: Digitalni filtri – Razpoznaj_DTMF

Avtor: Ali Gator | 05 May 2010 | Ni ni komentarjev
Kategorija: SIS

Navodilo:

Gotovo vsi poznate tonski način izbiranja številke na telefonu (DTMF – Dual Tone Multiple Frequency). V bistvu za vsako pritisnjeno tipko telefon pošlje kratek zvočni signal sestavljen iz dveh čistih sinusov po naslednjem sistemu.

Ko pritisnete tipko, se pošljeta sinusa s frekvenco, ki je napisana poleg vrstice v kateri je tipka in frekvenco, ki je napisana pod stolpcem, v kateri je tipka. To pomeni, da vse tipke v istem stolpcu oddajo signal z eno enako frekvenco. Enako velja za tipke, ki se nahajajo v isti vrstici.

Primer: Če pritisnemo tipko 1 je signal sestavljen iz sinusov s frekvenco 697 Hz in 1209 Hz. Če pritisnemo tipko 8 je signal sestavljen iz sinusov s frekvenco 852 Hz in 1336 Hz.

Najprej preizkusite generator signalov DTMF:

SIS:Vaja09:Digitalni filtri:generateDTMF - Naložil: Narmotur

, ki je napisan v Matlabu. Funkcija vrne vektor zvočnega signala, ki ga lahko poslušate s funkcijo sound (vzorčevalna frekvenca je 8000 Hz).

Napišite program zaporedje=razpoznaj_DTMF(x), ki bo z uporabo pasovno prepustnih filtrov poskušal prepoznati, kakšno zaporedje telefonskih tipk je bilo pritisnjeno v vhodnem signalu x. Uporabite 7 pasovno prepustnih filtrov (tipe in rede filtrov izberite sami), ki bodo prepuščali le bolj ali manj ozko frekvenčno okolico zgoraj navedenih frekvenc (697 Hz, 770 Hz , 852 Hz, itd.). V kolikor amplituda pri dveh filtriranih signalih presega določeni prag, vemo katera tipka je bila pritisnjena. Namesto funkcije filt uporabite funkcijo filtfilt, ki izniči vpliv zakasnitve filtrov.

Signal, ki ga dobite z generatorjem signalov DTMF, ne vsebuje nikakršnega šuma. V realnosti pa lahko vaš program vsebuje tudi govor ali šum. Testni program na sistemu bo preizkusil vaš program z različnimi stopnjami šuma. Šum se ponavadi naredi tako, da signalu prištejemo naključne vrednosti. Nivo dodanega šuma merimo s faktorjem SNR (razmerje signal/šum), ki ga merimo v decibelih (dB). Nižja, ko je vrednost SNR, močneje je šum prisoten. Pri SNR = 20 dB je šum po moči stokrat šibkejši od signala. Pri SNR = 10 dB je šum po moči desekrtat šibkejši od signala. Ko je SNR=0 dB, je moč šuma enaka moči signala.

Na sistemu za vaje se bo signalu iz generatorja DTMF šum dodal s funkcijo awgn:

signalPlusSum = awgn(signal,10,'measured')

.

Število doseženih točk bo bo pri tej nalogi odvisno od robustnosti vašega programa s testnimi primeri. Za pravilo delujoč program, ki dela pri šumu 20 dB dobite 15 točk. 20 dodatnih točk pa bo mogoče doseči z odpornostjo na šum – najboljša rešitev bo nagrajena z 10 dodatnimi točkami (skupaj torej 25 točk), druga najboljša z 9, tretja z 8 in tako naprej, dokler ne zmanjka točk.

Pozor! Naloga morate rešiti v časovnem prostoru.

>> Poglej rešitev <<


n/a

PROG2: Vaja11: N03: Prekrivanje metod in modulatorji izpisa v c++

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Po vzoru primera 36 iz predavanj, zapišite lastni primer redefiniranja in prekrivanja
metod. Zapišite vsaj dva primera metod tako za prekrivanje kot redefiniranje.
V nalogi uporabite tudi manipulatorje nad izpisom v datoteko!

>> Poglej rešitev <<


n/a

PROG2: Vaja11: N02: Izjeme v c++

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Nalogo 11.1 dopolnite z naslednji tremi izjemami:

Prikažite uporabo izjem.

>> Poglej rešitev <<


n/a

PROG2: Vaja11: N01: Branje, pisanje tekstovnih datotek v c++

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Razširite nalogo 9.1 tako, da:

  1. omogočala zapis objektov (razreda DružinskiClan in Druzina) v tekstovno datoteko (npr. “prelogar.txt”). Pisanje v datoteko (lahko) zapišete v glavnem programu. V ta namen razširite razreda DruzinskiClan in Družina z metodama toString(), ki vrne niz znakov za objekt ter dopišite potrebne konstruktorje, set in get metode.
  2. omogoča branje datoteke (npr. “druzina.txt”). Iz prebranih podatkov tvorite objekte razreda DruzinskaOseba in Druzina in napolnite vektor (knjižnice STL) družin.

>> Poglej rešitev <<


n/a

PROG2: Vaja10: N03: Generično programiranje

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Po vzoru primera 29 iz predavanj napišite lasten program iz področja generiËnega programiranja. Naloga naj obsega naslednje:

>> Poglej rešitev <<


n/a

PROG2: Vaja10: N02: Funkcija s parametri poljubne dolžine

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Primer 30 iz predavanj popravite tako, da boste lahko prejeli parametre poljubne dolžine v funkciji mediana(…). Funkcija mediana vrne srednjo vrednost (natanko enako elementov je manjših in večjih od vrednosti mediane).
Nalogo si lahko poenostavite tako, da so parametri ob klicu funkcije mediana urejeni po velikosti!

>> Poglej rešitev <<


n/a

PROG2: Vaja10: N01: Karo dedovanje

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Izpeljite razred Multipraktik, ki je hkrati Sekljalnik in Mesalnik. Multipraktik ima dodatno lastnost naziv (string).

Sekljalnik ima lastnost noz (string), razred Mesalnik pa lastnost velikost_posode (double). Sekljalnik in Mesalnik hkrati dedujeta iz razreda ElektricnaNaprava, ki ima dodatno lastnost moc (int). Vsi razredi imajo metodo vrni_niz (string).

V komentar programa zapiši še en primer karo dedovanja.

Primer karo dedovanja:
  Osnovni tip: Računalnik
  1. vrsta: Osebni
  2. vrsta: Strežnik
  3. vrsta: Prenosni
  4. vsrta: Sluzbeni
  Možnost:
    Prenosni računalnik je lahko tudi Sluzbeni
    torej lahko podedujemo lastnosti is Prenosni in Sluzbeni.

>> Poglej rešitev <<


n/a

PROG2: Vaja09: N03: “Map” preslikovanje in iskanje v c++

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Pri nalogi 9.1 oz. 9.2 lahko opazite, da člani družine niso urejeni po imenih, ampak tako kot so dodani.
S pomočjo SLT knjižnice in sort funkcije uredite člane v razredu Druzina po abecednem vrstnem redu.
Pri sort uporabite za primerjavo funkcijo, kot argument funkcije sort.

Naknadno preučite in demonstrirajte uporabo map, tako da dajete kot iskani ključ ime člana, kot vrednost pa objekt tega člana.

>> Poglej rešitev <<


n/a

PROG2: Vaja09: N02: Prijateljske funkcije v c++

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Nalogo 9.1 dopolnite tako da prekrijete operator << za izpis družine in dodajte prijateljski funkciji:

>> Poglej rešitev <<


PROG2: Vaja09: N01: Prekrivanje operatorjev v c++ razredih

Avtor: Sonicelo | 01 May 2010 | Ni ni komentarjev
Kategorija: PROG II

Navodilo:

Napišite razred DruzinskiClan z lastnostmi: ime (string), leto_rojstva (int) in funkcija (mati, oce, sin, hci).
Zapišite konstruktorje, metodo izpis ter metode get in set za vse lastnosti.

Nato napišite razred Druzina z naslednjimi lastnostmi: priimek (string) in polje članov (uporabite vector).
Slednja lastnost naj bo tipa DruzinskiClan. Razred Druzina ima naslednje metode:

Nato prekrij operatorje nad razredom Družinam < (manjše), > (večje) in == (enako).
Družine primerjajte po številu družinskih članov.
Prekrijte še operator + (plus), ki vrača vsoto družinskih članov.
Za lažje razumevanje si oglejmo glavni program in njegov izpis.

Druzina:Prelogar
Oce : Ime:Matej rojen-a:1970
Mati: Ime:Sara rojen-a:1971
otroki so:
Ime:Marija rojen-a:2008
Ime:Martin rojen-a:2005
Ime:Janez rojen-a:2006
Druzina steje 5 clanov.
Druzina:Music
Oce : Ime:Tomaz rojen-a:1970
Mati: Ime:Lidija rojen-a:1971
otroki so:
Ime:Maj rojen-a:2007
Ime:Zarja rojen-a:2001
Druzina Prelogar je vecja od druzine Music.
Za druzini potrebujemo mizo za 9 oseb.
Press any key to continue . . .

>> Poglej rešitev <<


Arhiv

Oblak

 

rss

Vsevedno okno

Kategorije

Nekaj za preživetje:

Blogroll