Výpočet 1D konvoluce – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpočet 1D konvoluce – C / C++ – Fórum – Programujte.comVýpočet 1D konvoluce – C / C++ – Fórum – Programujte.com

 

leknin
~ Anonymní uživatel
4 příspěvky
10. 11. 2012   #1
-
0
-

Zdravím všechny.

 Nevíte si s tím někdo rady?

Napište a odlaďte program, který:
dostane na vstup kladné celé číslo > 0 - toto číslo bude určovat délku náhodně generovaného signálu (signál uložte do jednodimenzionálního pole)
signál vygenerujte jako posloupnost náhodných čísel mezi 0 a 9 včetně
zajistětě, aby program generoval po každém spuštění jiný náhodný signál
kód generující signál vhodně implementujte jako funkci
dostane na vstup kladné a liché celé číslo > 0 - toto číslo bude určovat délku konvolučního jádra (opět jednodimenzionální pole)
zatímto signál generujete zcela náhodně, konvoluční jádro bude mít následující tvar:
pro 1 = 1,
pro 3 = 1,2,1
pro 5 = 1,2,4,2,1
pro 7 = 1,2,4,8,4,2,1
atd. (pozámka. jedná se o mocniny dvojky)
kód generující konvoluční jádro vhodně implementujte jako funkci
ošetřete vstup tak, aby se v případě zadání neplatných hodnot program neustále dotazoval uživatele, až do té doby než vstupní hodnoty splní všechny požadavky.
nápověda: můžete využít příkazu pro vyčištění vstupu while(getchar != '\n');
vypíše jak generovaný signál, tak konvoluční jádro
výpis pole vhodně implementujte jako funkci
spočítá konvolvovaný signál
Jedná se o součet hodnot z okolí zkoumaného bodu, kdy váhy okolních hodnot jsou definovány právě v konvolučním jádru
příklad pro zadané hodnoty 3 a 4:
      jádro: 1,2,1
      signál: 5,1,4,6
      výpočet =  2*5+1*1  ,   1*5 + 2*1 + 1*4   ,   1*1 + 2*4 + 1*6   ,   1*4 + 2*6
      výsledek = 11, 11, 15, 16
POZOR na okrajové podmínky
vhodně implementujte jako funkci
vypíše výsledek a skončí

Nahlásit jako SPAM
IP: 90.180.132.–
leknin
~ Anonymní uživatel
4 příspěvky
10. 11. 2012   #2
-
0
-

Jde o C.

Nahlásit jako SPAM
IP: 90.180.132.–
ingiraxo+15
Grafoman
10. 11. 2012   #3
-
0
-

asi jsem nechápavej, ale nemůžu přijít na ten výpočet O.o

příklad pro zadané hodnoty 3 a 4:
       jádro: 1,2,1
       signál: 5,1,4,6
       výpočet =  2*5+1*1  ,   1*5 + 2*1 + 1*4   ,   1*1 + 2*4 + 1*6   ,   1*4 + 2*6
       výsledek = 11, 11, 15, 16

ten vypocet nejak nechapu.. proc zrovna 2*5 a 1*1, kdyz vstup je 3 a 4 ? když se to pokousim michat s tim jadrem/signalem, tak mi to stejne nevychazi

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
vitamin+8
Grafoman
10. 11. 2012   #4
-
0
-

3 znamena ze ma vygenerovat jadro s 3 hodnotami a 4 znamena ze ma vygenerovat signal so 4 hodnotami. 

Odkial zobral ten vypocet netusim :)

Tak uz tusim:

(1, 2, -2, -1) * (1, -1, 2) =
= 1 -1  2
     2 -2  4
       -2  2 -4
          -1  1 -2
 ------------------
 (1, 1,-2, 5,-3,-2)

Prvy a posledy prvok sa vynecha.

Viac tu ale v c++: http://programujte.com/forum/vlakno/22471-vypocet-konvoluce-v-c/

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
leknin
~ Anonymní uživatel
4 příspěvky
10. 11. 2012   #5
-
0
-

Je tomu přesně tak, jak píše vitamin.

Nahlásit jako SPAM
IP: 90.180.132.–
vitamin+8
Grafoman
10. 11. 2012   #6
-
0
-

#5 leknin
Necakaj ze to dakto naprogramuje cele za teba, je mozne ze sa nedockas :)

Nahlásit jako SPAM
IP: 95.105.157.–
obfuscate: "The cruel god Malloc will strike you down. "
ZMeson: "That's the C god. C++ has a new god. "
leknin
~ Anonymní uživatel
4 příspěvky
10. 11. 2012   #7
-
0
-

Mohu to očekávat, ale třeba se někdo slituje.:)

Nahlásit jako SPAM
IP: 90.180.132.–
Mixxy
~ Anonymní uživatel
179 příspěvků
10. 11. 2012   #8
-
0
-
Nahlásit jako SPAM
IP: 85.132.138.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 73 hostů

Podobná vlákna

Výpočet konvoluce v C — založil Grommi

Vypocet pi — založil Nemo_001

Výpočet na GK — založil Midnight

Vypocet v C# — založil vyhno

Výpočet odporu — založil -.-

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý