Unità 3 / 12

Elaborazione del segnale: filtri, campionamento e analisi in frequenza

Guadagni:

  • Capacità di costruire e applicare correttamente concetti di campionamento, Nyquist e aliasing con il supporto dell'intelligenza artificiale
  • Capacità di tradurre FFT, filtrare i passaggi di progettazione e finestratura in bozza di codice e calcoli con l'intelligenza artificiale
  • Capacità di verificare i risultati dell'elaborazione del segnale prodotti dall'intelligenza artificiale con segnale di riferimento, controllo e misurazione dell'unità

L'elaborazione del segnale è il cuore dell'ingegneria elettronica e delle comunicazioni: l'arte di prendere un'onda di tensione, una registrazione sonora, la lettura di un sensore o un segnale radio ed estrarne le informazioni, ripulirne il rumore e trasformarle. In questa unità vedrai come utilizzare l'intelligenza artificiale per apprendere concetti di elaborazione del segnale, costruire calcoli di filtri e trasformazioni ed eseguire analisi con codice Python. Ma un avvertimento fin dall'inizio: un piccolo errore concettuale nell'elaborazione del segnale (frequenza di campionamento errata, windowing saltato, unità interferente) distorcerà completamente e silenziosamente il risultato; Il grafico sembra ancora buono, ma è sbagliato. Ecco perché è fondamentale testare ogni risultato prodotto dall'intelligenza artificiale rispetto a un segnale di riferimento noto e al controllo dell'unità.

Campionamento e Nyquist: dove tutto comincia

Per elaborare un segnale analogico (onda continua) in un computer, lo misuriamo a determinati intervalli e lo convertiamo in un numero; Questo è chiamato campionamento. È la frequenza di campionamento (fs, unità Hz) quanti campioni prendiamo al secondo. Il criterio di Nyquist afferma che per recuperare accuratamente un segnale, la frequenza di campionamento deve essere almeno il doppio della frequenza più alta del segnale. Se questa condizione non viene soddisfatta, le alte frequenze iniziano ad assomigliare alle basse frequenze; Questo si chiama aliasing e i dati vengono danneggiati in modo permanente perché non è possibile distinguere tra queste due situazioni.

L’intelligenza artificiale spiega molto bene questo concetto e può dimostrarlo con esempi. Ma sei tu a decidere quando scegli la frequenza di campionamento: qual è la larghezza di banda effettiva del tuo segnale, hai un filtro analogico anti-aliasing, quale velocità funziona effettivamente il tuo ADC (convertitore analogico-digitale: il chip che converte il segnale analogico in numero). L'intelligenza artificiale può "suggerire" una frequenza di campionamento, ma questo suggerimento è un'ipotesi senza misurare lo spettro effettivo del segnale.

Suggerimento: quando fai una domanda di campionamento all'IA, specifica tu stesso la frequenza e la larghezza di banda più alte del tuo segnale. "Se la componente più alta del mio segnale è ~4 kHz, come dovrei scegliere fs e dove dovrei inserire il filtro anti-aliasing?" Piace. Non far indovinare lo spettro all'IA; misura.

FFT e analisi di frequenza

FFT (Fast Fourier Transform) è un algoritmo veloce che converte un segnale dall'asse del tempo all'asse della frequenza. Quindi "quali frequenze ci sono in questo segnale e con quanta potenza?" risponde alla domanda. L'intelligenza artificiale sa molto bene come implementare FFT, interpretare i risultati e scrivere codice Python (numpy/scipy). Ma ci sono errori comuni nella FFT e il codice AI può includerli silenziosamente:

  • Scala dell'asse della frequenza: l'asse della frequenza dell'uscita FFT dipende dalla frequenza di campionamento. Se fs viene immesso in modo errato, tutte le frequenze vengono emesse in modo errato, ma il grafico appare normale.
  • Windowing: quando viene ricevuto un pezzo finito di segnale, si verifica una discontinuità ai bordi e nello spettro si osserva una pseudo-diffusione (perdita spettrale). Finestre come Hann e Hamming riducono questo problema. Se il codice AI salta il windowing, il risultato sarà fuorviante.
  • Normalizzazione dell'ampiezza: la messa in scala e la correzione della finestra sono necessarie per convertire l'ampiezza dell'uscita FFT nel valore fisico effettivo. Se omesso, le ampiezze saranno errate.

progettazione del filtro

Un filtro è un circuito o un algoritmo che estrae le frequenze indesiderate da un segnale. Esistono quattro tipi base: passa basso (passa le basse frequenze), passa alto, passa banda e passa banda (notch). Esistono due grandi famiglie di filtri digitali: FIR (risposta all'impulso finita, fase stabile e lineare) e IIR (risposta all'impulso infinita, transizione ripida con meno calcoli ma stabilità e rischio di fase).

L'intelligenza artificiale spiega le fasi di progettazione di un filtro (frequenza di taglio, banda passante, attenuazione della banda stop, selezione dell'ordine) e scrive il codice di generazione dei coefficienti con scipy. Ma la frequenza di taglio del filtro che progettate viene normalizzata (rispetto alla frequenza di Nyquist) e inserire fs in modo errato qui è un errore molto comune. Inoltre, la stabilità e la distorsione di fase potrebbero rappresentare un problema nei filtri IIR, mentre la latenza potrebbe rappresentare un problema nei sistemi in tempo reale. Assicurati di verificare il filtro generato dall'intelligenza artificiale con un grafico di risposta in frequenza e un segnale di test noto.

tre mini custodie

Caso 1 — Vibrazioni sovrapposte. Un ingegnere campiona la vibrazione di un motore a 1 kHz e vede un forte picco nella FFT a 300 Hz. Questo picco, che non corrisponde al design del motore, crea confusione. In realtà esiste una componente reale nel motore intorno ai 1300 Hz; Il campionamento a 1 kHz non è sufficiente per questo (Nyquist 500 Hz) e 1300 Hz si sovrappongono a 300 Hz. Dopo aver discusso con l'AI "se questo picco è reale o aliasing" e aver aumentato la frequenza di campionamento a 5 kHz, il picco appare nel posto corretto a 1300 Hz. Lezione: su una collina discutibile, prima questione sull'adeguatezza del campionamento.

Caso 2: finestra saltata. Uno stagista richiede un codice FFT all'IA e lo esegue. Si aspetta un tono di prova a frequenza singola ma vede un'ampia diffusione attraverso lo spettro. Il problema è che il codice non esegue il windowing (perdita spettrale). Di' all'IA "aggiungi la finestra di Hann e applica la correzione dell'ampiezza" e l'uscita ritorna al picco acuto previsto. Lezione: testare il codice FFT con un segnale a frequenza singola noto; Controllare la finestra se c'è una perdita.

Caso 3 – Fs sbagliato. Un ingegnere analizza i dati del registratore. Il dispositivo ha registrato a 48 kHz, ma nel codice AI è stato inserito il valore predefinito di 44,1 kHz. Tutte le frequenze vengono spostate dell'8%; Un tono da 1000 Hz appare a 1088 Hz. Viene rilevato un errore durante il controllo del fs effettivo dell'apparecchiatura di misurazione. Lezione: la frequenza di campionamento è il singolo numero più critico nella catena di analisi; deve essere verificato dalla fonte.

Modelli di prompt copiabili

FFT SETUP TEMPLATE"Scrivi un codice di analisi FFT in Python (numpy/scipy). Input: frequenza di campionamento fs=[valore] Hz, stringa di segnale 'x'. Lascia che il codice esegua QUANTO SEGUE: (1) Applica la finestra di Hann, (2) Ottieni FFT, (3) scala accuratamente l'asse della frequenza rispetto a fs, (4) traccia lo spettro di ampiezza unilaterale con la correzione della finestra. Ad ogni passaggio del codice "Indica nella riga di commento quale ipotesi stai facendo, quindi io può verificarlo."

MODELLO DI CONTROLLO CAMPIONAMENTO "La frequenza significativa più alta del mio segnale è circa [X] Hz. Spiegare il margine di Nyquist, la necessità di un filtro anti-aliasing e il margine pratico di sicurezza nella scelta della frequenza di campionamento. Suggerisci un intervallo ma sottolinea che dovrei verificarlo misurando lo spettro reale del segnale."

MODELLO DI PROGETTAZIONE DEL FILTRO "Progetta un filtro digitale passante [basso/alto/banda] con scipy. Frequenza di taglio [X] Hz, frequenza di campionamento fs=[Y] Hz. Confronta le opzioni FIR e IIR (stabilità, fase, ritardo, carico computazionale). Mostra chiaramente nel codice come la frequenza di taglio è normalizzata su fs. Includi anche il codice che convalida il filtro con un grafico di risposta in frequenza. "

MODELLO DI VALIDAZIONE DEI RISULTATI "Esamina il codice di elaborazione del segnale riportato di seguito e segnala le origini degli errori silenziosi: fs errato, finestre saltate, diafonia unitaria (Hz/kHz, V/mV), mancanza di normalizzazione, diafonia dello spettro a singola/doppia faccia. Suggerisci come dovrei testare (con quale segnale di riferimento) per ciascuno. Codice: [incolla]."

Prompt debole / Prompt forte

RICHIESTA DEBOLE: "Trova la frequenza di questo segnale."

RICHIESTA FORTE: "Ho un array di segnali con una frequenza di campionamento di 10 kHz. Scrivi un codice Python che trovi le componenti di frequenza dominanti con FFT; usa la finestra di Hann e la correzione dell'ampiezza, scala l'asse della frequenza in base a fs. Alla fine del codice, aggiungi un blocco di validazione con un segnale di test sintetico di 1 kHz fs e verifica se il ridimensionamento è corretto. "

Il prompt debole produce una risposta libera dal contesto e presuppone fs; Restituisce parametri di prompt complessi e richiede un blocco di test di autoverifica.

Tabella delle unità e ipotesi nell'elaborazione del segnale

concetto

errore frequente

verifica

Frequenza di campionamento (fs)

Predefinito invece del FS effettivo del dispositivo

Conferma dall'impostazione del registratore

asse della frequenza

Se fs è sbagliato l'intero asse si sposta

Tono di prova della frequenza nota

Finestre

Perdita spettrale quando saltata

Ampiezza del picco nel segnale monotono

Ampiezza

Manca la normalizzazione/correzione

Confronto con segnale di ampiezza nota

taglio del filtro

normalizzare l'errore secondo fs

Grafico della risposta in frequenza

Attenzione: solo perché un grafico FFT appare fluido e credibile non significa che sia accurato. Se l'asse della frequenza viene ridimensionato in modo errato, tutti i picchi sono nella posizione sbagliata ma il grafico appare perfetto. Calibrare sempre con un riferimento noto.

Errori comuni

  • Non verificare la frequenza di campionamento dalla fonte. Un f sbagliato sposta tutte le frequenze.
  • Violare Nyquist e non notare l'aliasing. Sulle colline sospette, mettere in discussione innanzitutto l'adeguatezza del campionamento.
  • Saltare la finestratura in FFT. La perdita spettrale sembra un vero e proprio picco.
  • Dimenticando la normalizzazione dell'ampiezza. Le ampiezze rimangono non scalate rispetto al valore fisico.
  • Normalizzazione errata della frequenza di taglio del filtro su fs. Il filtro taglia in un punto diverso dal previsto.

In sintesi

In questa unità, hai posizionato l'intelligenza artificiale come un potente aiuto nell'apprendimento dei concetti di elaborazione del segnale, nella scrittura di FFT e codice di filtro e nella costruzione di analisi. Ma nell’elaborazione del segnale, i risultati possono essere silenziosamente distorti: frequenza di campionamento errata, finestre saltate, volume interferente o mancanza di normalizzazione rendono il grafico bello ma impreciso. Quindi testa ogni codice prodotto dall'IA rispetto a un segnale di riferimento noto, verifica la frequenza di campionamento dalla sorgente e testa ogni risultato per verificarne l'unità e la plausibilità fisica. Controlla il concetto di Nyquist e di aliasing all'inizio di ogni analisi.

Compito dell'applicazione

Crea un segnale di test sintetico in Python: somma di due frequenze note (ad esempio 1 kHz e 3 kHz), fs=10 kHz. Richiedi il codice di analisi all'AI con il modello “FFT setup” e verifica che i picchi appaiano alle frequenze corrette. Quindi inserire deliberatamente la fs in modo errato (ad esempio 8 kHz) e osservare come si spostano i picchi. Infine, rimuovi la finestra e osserva la perdita spettrale. Scrivi i risultati di ciascun esperimento in una frase.

lista di controllo

  • [ ] Ho verificato la frequenza di campionamento (fs) dall'impostazione effettiva del registratore.
  • [ ] Ho controllato il criterio di Nyquist e valutato il rischio di aliasing.
  • [ ] Ho verificato che la finestratura e la correzione dell'ampiezza siano implementate nel codice FFT.
  • [ ] Ho testato il codice con un segnale di riferimento di frequenza nota.
  • [ ] Ho verificato tramite risposta visiva che la frequenza di taglio del filtro era correttamente normalizzata su fs.
  • [ ] Ho reso coerenti tutte le unità (Hz/kHz, V/mV).