Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Un progr. progetto filtri dal passato

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto Utenteg.schgor, Foto UtenteBrunoValente, Foto UtenteIsidoroKZ

0
voti

[11] Re: Un progr. progetto filtri dal passato

Messaggioda Foto UtenteEcoTan » 29 ott 2025, 13:32

Il quick basic gira tuttora su un mio Windows xp e mi piace molto.
Il visual basic sotto excel, a mia memoria, è un bizzarro giocattolo buono per piantarsi non appena si importa un grande quantitativo di dati.
Avatar utente
Foto UtenteEcoTan
7.720 4 12 13
Expert EY
Expert EY
 
Messaggi: 5420
Iscritto il: 29 gen 2014, 8:54

0
voti

[12] Re: Un progr. progetto filtri dal passato

Messaggioda Foto UtenteEtemenanki » 29 ott 2025, 15:52

Come spararsi in un piede con vari linguaggi :-P

C
Ti spari in un piede.

C++
Accidenalmente crei una dozzina di tuoi cloni e spari nel piede di ognuno. Fornire soccorso medico è impossibile poiché non sei in grado di dire quali siano copie bit a bit e quali stiano semplicemente puntanto ad un'altra copia dicendo : "Sono io, venite".

JAVA
Dopo aver importato i package java.awt.right.foot.* e java.awt.gun.right.hand.*, e aver scritto la classe e i metodi di cui hai bisogno, ti sei completamente dimenticato cosa stavi facendo.

Ruby
Il tuo piede è pronto a essere colpito in circa 5 minuti, ma non riesci a trovare un punto dove colpirlo.

PHP
TI spari ad un piede con una pistola costruita con pezzi presi da altre 300 pistole.

ASP.NET
Trovi una pistola, si rompe. La ripari, si rompe di nuovo. Provi ad utilizzare il framework .GUN, e si rompe anche quello. Decidi di pugnalarti il piede alla fine.

SQL
SELECT @munizioni:=proiettile FROM pistola WHERE grilletto = ‘PREMUTO’;
INSERT INTO gamba ( piede) VALUES (@munizioni);

Perl
Ti spari in un piede, ma nessuno riesce a capire come hai fatto. Dopo sei mesi, neanche tu riesci a più a capirlo.

Javascript
Hai messo a punto una solida interfaccia utente per spararti al piede. Purtroppo scropri che le pallottele della tua pistola sono disabilitate.

CSS
Ti spari ad un piede, poi ad una mano, allora cambi mano e ti spari all'altro piede, ma allora ti accorgi che la tua pistola si è trasformata in una banana.

FORTRAN
TI spari in ogni dito del piede iterativamente fino a quando non rimani a corto di dita, allora passi all'altro piede e ripedi. Se termini i proiettili continui comunque perché non hai nessuna infrastruttura per la gestione delle eccezioni.


MODULA2
Dopo aver compreso che con questo linguaggio non puoi fare niente, ti spari alla testa.


COBOL
Usando una HANDGUN Colt 45, miri alla tua LEFT.FOOT, THEN posizioni ARM.HAND.FINGER su HANDGUN.TRIGGER e spari.
THEN restituisci HANDGUN a HOLSTER. CHECK se i lacci hanno bisogno di essere rilegati.


LISP
Ti spari da solo alla mana con la quali tieni la pistola con la quale
ti spari da solo alla mana con la quali tieni la pistola con la quale
ti spari da solo alla mana con la quali tieni la pistola con la quale
ti spari da solo alla mana con la quali tieni la pistola con la quale
ti spari da solo alla mana con la quali tieni la pistola con la quale
ti spari da solo alla mana con la quali tieni ...


BASIC
Ti spari al piede con una pistola ad acqua. Su un grande sistema, continui fino a quando la parte inferiore del corpo non è totalmente coperta dall' acqua.


FORTH
Il piede spara a te.


APL
Ti spari al piede, poi passi il resto del giorno a scoprire come farlo con meno caratteri.


PASCAL
Il compilatore non ti permette di spararti al piede.


SNOBOL
Se riesci, ti spari al piede sinistro.
Se falliscci, ti spari al piede destro.


CONCURRENT EUCLID
Spari al piede di qualcun altro.


HYPERTALK
Metti il primo proiettile della pistola nel piede della tua gamba sinistra.
Rispondi il risultato.


MOTIF
Impieghi giorni a scrivere una descrizione UIL del tuo piede, la traiettoria, il proiettile e l'intricato disegno di avorio sull' impugnatura della pistola. Quando alla fine riesci a premere il grilletto, la pistola si inceppa.


Unix
% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls
%


PARADOX
Non solo puoi spararti al piede, ma possono farlo anche i tuoi utenti.


REVELATION
Sarai in grado di spararti al piede non appena capirai a cosa servono tutti questi proiettili.


VISUAL BASIC
Ti sparerai al piede, ma ti divertirai tanto nel farlo che non te ne preoccuperai.


PROLOG
Dici al programma che vuoi spararti al piede. Il programma comprende come farlo, ma la sintassi non gli permette di esprimerlo.


ADA
Dopo aver impacchettato correttamente il tuo piede, provi, contemporaneamente, a caricare la pistola, premere il grilletto, urlare e spararti al piede. Quando provi, ti accorgi che il piede è del tipo sbagliato.


ASSEMBLY
Provi a spararti al piede solo per scoprire che devi prima inventare nuovamente la pistola, il proiettile e il piede. Dopo aver fatto tutto ciò, premi il grilletto, ma la pistola emette una serie di beep e si rompe.


370 JCL
Mand il tuo piede a MIS con un documento di 4000 pagine che spiega come vorresti spararti. Dopo 3 anni, il tuo piede torna indietro ben fritto.


PYTHON
Cerchi di spararti al piede ma continui a colpire lo spazio tra le dita.


Lo so, e' vecchia, ma sempre descrittiva :mrgreen:
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
Avatar utente
Foto UtenteEtemenanki
9.507 3 6 10
Master
Master
 
Messaggi: 5935
Iscritto il: 2 apr 2021, 23:42
Località: Dalle parti di un grande lago ... :)

0
voti

[13] Re: Un progr. progetto filtri dal passato

Messaggioda Foto Utentexyz » 29 ott 2025, 16:02

MarcoD ha scritto:Archeologia informatica. :-)
Solo per vostra curiosità, diffondo un mio programmino di 34 anni fa, per il progetto di un filtro passa banda con operazionale, recuperato dalla memoria di un vecchio PC.

Vuoi che te lo converto in Python ?
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

0
voti

[14] Re: Un progr. progetto filtri dal passato

Messaggioda Foto UtenteMarcoD » 29 ott 2025, 19:08

Vuoi che te lo converto in Python ?

Si, grazie. Può essere interessante, vediamo l'evoluzione dopo 40 anni. Dovrei avere l'IDE Python sul PC, anche se non lo ho mai provato.
Di solito anche se raramente, adopero Processing, un simil C, origine del famigerato IDE arduino.
Avatar utente
Foto UtenteMarcoD
12,2k 5 9 13
Master EY
Master EY
 
Messaggi: 6696
Iscritto il: 9 lug 2015, 16:58
Località: Torino

1
voti

[15] Re: Un progr. progetto filtri dal passato

Messaggioda Foto Utentexyz » 29 ott 2025, 23:51

MarcoD ha scritto:Si, grazie. Può essere interessante, vediamo l'evoluzione dopo 40 anni

Convertito in Python, ho più o meno rispettato il codice originale, ho usato alcune funzioni specifiche del Python per semplificare output delle variabili.

Non è stato usato nessun IDE, solo un editor di testo.

Codice: Seleziona tutto
#!/usr/bin/env python
#
# 15 11 91
# progetto filtro passa banda a guadagno infinito feedback multiplo

import math

print(
    """
                           C3 = C4 = C

             ----C4---+----------------
             |        |               |
             |       R5  *********    |             SCHEMA FILTRO ATTIVO
             |        |  *       *    |             PASSA BANDA  REALIZZATO
   +-----R1--+---C3---+--* I-    *    |             CON AMPL.OPERAZIONALE
             |           *     U *----+-----+       CONFIGURAZIONE REAZIONE
             |        +--* I+    *                  MULTIPLA CON GUADAGNO
INGRESSO    R2        |  *       *        USCITA    INFINITO
             |        |  *********                      (adatto con Q < 20
   +---------+--------+---------------------+            e F0 < 10KHz     )
                      |
                     GND
"""
)


def sintesi():
    c = float(input("C in nF "))
    c *= 1e-9

    h0 = float(input("H0 guadagno alla frequenza di risonanza "))
    q = float(input("Q fattore di merito                     "))
    f0 = float(input("F0 frequenza di risonanza Hz            "))

    # h0 = 1
    # q = 10
    # f0 = 1000

    b = f0 / q  # banda passante a -3 dB funzione del secondo ordine

    print(f"banda passante a -3 dB  Hz              {b:.2f}")
    print()
    print("caratteristiche richieste")
    print(f"{h0=:.2f}, {f0=:.2f}, {q=:.2f}, {b=:.2f}")

    w0 = math.tau * f0
    r1 = q / (h0 * w0 * c)
    r2 = q / ((2.0 * q * q - h0) * w0 * c)
    r5 = 2.0 * q / (w0 * c)

    print("Valori teorici di resistenza")
    print(f"{r1=:.2f}, {r2=:.2f} {r5=:.2f}")
    print()

    return


def verifica():
    print("Valori disponibili")
    c = float(input("C in nF "))
    c *= 1e-9

    r1 = float(input("   R1 = "))
    r2 = float(input("   R2 = "))
    r5 = float(input("   R5 = "))

    # r1=15000
    # r2=820
    # r5=330000

    c3 = c
    c4 = c
    h0 = 1 / ((r1 / r5) * (1 + c4 / c3))
    w0 = math.sqrt((1 / (r5 * c3 * c4)) * ((1 / r1) + (1 / r2)))
    alfa = (math.sqrt(1 / (r5 * ((1 / r1) + (1 / r2))))) * (
        math.sqrt(c3 / c4) + math.sqrt(c4 / c3)
    )
    q = 1 / alfa
    f0 = w0 / math.tau
    b = f0 / q  # banda passante a -3 db funzione del secondo ordine

    print()
    print("caratteristiche ottenute")
    print(f"{h0=:.2f}, {f0=:.2f} {q=:.2f} {b=:.2f}")

    return


while True:
    i = input("1= sint, 2= anal, 3= esci ")
    match int(i):
        case 1:
            sintesi()
        case 2:
            verifica()
        case 3:
            break
Avatar utente
Foto Utentexyz
6.864 2 4 6
G.Master EY
G.Master EY
 
Messaggi: 1778
Iscritto il: 5 dic 2009, 18:37
Località: Italy Turin

Precedente

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 53 ospiti