I could not resist to the temptation to try such interesting programming language. Enjoy the following code, it is a mysterious way to show how a digital filter works ;) For more info: https://github.com/esseks/monicelli
bituma progettiamo un filtro passa basso digitale del primo ordine con guadagno unitario e costante di tempo specificata discretizzato con Eulero in avanti. blinda la supercazzola Sassaroli composta con l'amico Sassaroli, il cugino Perozzi o scherziamo? vaffanzum cugino più amico! Lei ha clacsonato, bituma? Si? Allora è pronta?? Vediamo che cosa le serve? voglio un campionamento, Sassaroli come se fosse 2 con scappellamento a destra per 1 bituma lo capisci perchè è digitale? Perchè c'è il 2? Lasciamo perdere va... mi porga il campionamento bituma e andiamo avanti bituma? Si dia una mossa... Forse se avessi un po di tempo... Le serve più tempo? voglio il tempo, Perozzi mi porga il tempo bituma, controlli la stabilità. Mai sentito parlare di Lyapunov? voglio stabilita, Sassaroli come se fosse 1 meno campionamento diviso tempo che cos'è la stabilita? minore di -1: vaffanzum 0! o magari maggiore di 1: vaffanzum 0! e velocità di esecuzione bituma lei mi stupisce! il filtro digitale sembra stabile... abbiamo bisogno di un input adesso voglio un input, Perozzi mi porga l'input bituma vogliamo inizializzare l'uscita così vediamo l'evoluzione o no? voglio un output, Sassaroli output come se fosse un input per 0 diviso 2 bituma quanti step simuliamo? quante iterazioni? voglio l'iterazia, Sassaroli come se fosse tempo per 4 stuzzica bituma sempre per capire che succede. Ad esempio output a posterdati bituma è sempre comodo. Invece l'iterazia come se fosse iterazia meno campionamento bituma infine sistemiamo l'output come se fosse brematurata la supercazzola composta con stabilita per output, input per campionamento diviso tempo o scherziamo? e brematura anche, se iterazia maggiore di 0 voglio capire, Necchi come se fosse 0 con scappellamento a sinistra per 3 vaffanzum capire! bituma complimenti!
The resulting C++ code:
#include <iostream> double composta(double amico, float cugino); double composta(double amico, float cugino) { return cugino + amico; } int main() { double campionamento = 2 >> 1; std::cout << "campionamento? "; std::cin >> campionamento; float tempo; std::cout << "tempo? "; std::cin >> tempo; double stabilita = 1 - campionamento / tempo; if (stabilita < -1) { return 0; } else if (stabilita > 1) { return 0; }; float input; std::cout << "input? "; std::cin >> input; double output; output = input * 0 / 2; double iterazia = tempo * 4; do { std::cout << output << std::endl; iterazia = iterazia - campionamento; output = composta(stabilita * output, input * campionamento / tempo); } while (iterazia > 0); int capire = 0 << 3; return capire; }
which yields to the following execution:
campionamento? 1 tempo? 2 input? 3 0 1.5 2.25 2.625 2.8125 2.90625 2.95312 2.97656