Zadanie N1

Napisać funkcję generującą tabliczkę mnożenia w macieży numpy o wielkości NxN (funkcja powinna przyjmować wielkość tabliczki mnożenia)

Następnie wypisać ją, ładnie sformatowaną:


 | 1| 2| 3| 4
-------------
1| 1| 2| 3| 4
-------------
2| 2| 4| 6| 8
-------------
3| 3| 6| 9|12

Problem N1

Write a function which will generate numpy array of multiplication table sized NxN (funtion should accept size of the table)

Next write a function which will print it pretty formatted:

 | 1| 2| 3| 4
-------------
1| 1| 2| 3| 4
-------------
2| 2| 4| 6| 8
-------------
3| 3| 6| 9|12

Zadanie N2

Napisać funkcję która przyjmie kwadratową macierz i obliczy sumę elementów na bokach i na przekątnych

Np - suma elementów zaznaczonych znakiem x w macierzy 7x7

x x x x x x x
x x 3 4 5 x x
x 2 x 4 x 6 x
x 2 3 x 5 6 x
x 2 x 4 x 5 x
x x 3 4 5 x x
x x x x x x x

Problem N2

Write a function that will take a square array and will calculate sum of elements on borders and diagonals.

Example:
Array sized 7x7, calculate sum of elements marked by x

x x x x x x x
x x 3 4 5 x x
x 2 x 4 x 6 x
x 2 3 x 5 6 x
x 2 x 4 x 5 x
x x 3 4 5 x x
x x x x x x x

Zadanie N3

Napisać funkcję mnożącą dwie macierzy przez siebie.
Porównać szybkość wykonania z funkcją numpy.dot

Problem N3

Write function which will do a matrix multiplication of 2 numpy arrays
Compare speed of your function to numpy.dot

Zadanie N4

Wygenerować wektor o długości 1000 elementów z sygnałem piły z okresem 20 ( piła: /|/|/|/|/|) i amplitudzie 1.
(można obejżeć sygnał używająć pylab.plot(wektor_z_syngałem) a następnie pylab.show() )

Napisać funkcję filtr_medianowy(sygnal, dlugość_filtru), która bierze pewien sygnał i zasosowuje na nim filtr medianowy zadanej długości.
Filtr medianowy - bierzemy pierwsze n punktów sygnału - liczymy z nich średnią - to jest nowy punk przefiltrowanego sygnału, następnie bierzemy w zakresie (1;1+n), dalej (2;2+n) itd, aż nie dojdziemy końca. Efektywnie przefiltrowany sygnał będzie krótszy o n punktów od oryginału.
Zaobserwować działanie różnych długości filtru.



Problem N4

Generate a vector (flat array) of 1000 elements of saw signal with a period of 20 and amplitude 1. (saw signal looks like this: /|/|/|/|)
(You can look at your signal usibng pylab.plot(vector) and then pylab.show() )

Then write a function median_filter(vector, filter_len), which will implement a median filter. 

Median filter - take a range of points of your signal (0, 0+n) calculate a median - this will be a new point of filtered signal, then take range (1, 1+n) and calculate new median - it will be a second point of filtered signal. Repeat until you've used all points of original signal.
Please nota that filtered signal will be shorter than original by n points.

Observe results of median filtering.