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čí