Satuan 3 / 12

Pemrosesan Sinyal: Filter, Pengambilan Sampel, dan Analisis Frekuensi

Keuntungan:

  • Kemampuan untuk membuat dan menerapkan konsep sampling, Nyquist, dan aliasing dengan benar dengan dukungan AI
  • Kemampuan untuk menerjemahkan FFT, desain filter, dan langkah-langkah windowing ke dalam rancangan kode dan perhitungan dengan AI
  • Kemampuan untuk memverifikasi hasil pemrosesan sinyal yang dihasilkan oleh AI dengan sinyal referensi, unit kontrol, dan pengukuran

Pemrosesan sinyal adalah jantung dari teknik elektronik dan komunikasi: seni mengambil gelombang tegangan, rekaman suara, pembacaan sensor, atau sinyal radio dan mengekstraksi informasi di dalamnya, membersihkan kebisingannya, dan mengubahnya. Di unit ini, Anda akan melihat cara menggunakan AI untuk mempelajari konsep pemrosesan sinyal, membuat perhitungan filter dan transformasi, serta melakukan analisis dengan kode Python. Namun peringatan sejak awal: kesalahan konseptual kecil dalam pemrosesan sinyal (frekuensi pengambilan sampel yang salah, jendela yang dilewati, unit yang mengganggu) akan sepenuhnya dan secara diam-diam mendistorsi hasil; Grafiknya masih terlihat bagus, tapi salah. Itulah mengapa sangat penting untuk menguji setiap hasil yang dihasilkan AI terhadap sinyal referensi dan kontrol unit yang diketahui.

Sampling dan Nyquist: tempat semuanya dimulai

Untuk memproses sinyal analog (gelombang kontinu) di komputer, kita mengukurnya pada interval tertentu dan mengubahnya menjadi angka; Ini disebut pengambilan sampel. Ini adalah frekuensi pengambilan sampel (fs, satuan Hz) berapa banyak sampel yang kita ambil per detik. Kriteria Nyquist menyatakan bahwa untuk memulihkan sinyal secara akurat, frekuensi sampling harus setidaknya dua kali frekuensi tertinggi dalam sinyal. Jika kondisi ini tidak terpenuhi, frekuensi tinggi mulai terlihat seperti frekuensi rendah; Ini disebut aliasing dan data rusak secara permanen karena Anda tidak dapat membedakan kedua situasi ini.

AI menjelaskan konsep ini dengan sangat baik dan dapat mendemonstrasikannya dengan contoh. Namun Anda yang memutuskan saat memilih frekuensi pengambilan sampel: berapa bandwidth sebenarnya dari sinyal Anda, apakah Anda memiliki filter analog anti-aliasing, berapa kecepatan ADC (Analog-Digital Converter: chip yang mengubah sinyal analog menjadi angka) sebenarnya beroperasi. AI mungkin “menyarankan” frekuensi pengambilan sampel, namun saran ini hanyalah tebakan tanpa mengukur spektrum sinyal Anda yang sebenarnya.

Tip: Saat mengajukan pertanyaan pengambilan sampel kepada AI, tentukan sendiri frekuensi dan bandwidth tertinggi sinyal Anda. "Jika komponen tertinggi sinyal saya adalah ~4 kHz, bagaimana saya harus memilih fs dan di mana saya harus meletakkan filter anti-aliasing?" menyukai. Jangan membuat AI menebak spektrumnya; ukuran.

FFT dan analisis frekuensi

FFT (Fast Fourier Transform) merupakan algoritma cepat yang mengubah sinyal dari sumbu waktu ke sumbu frekuensi. Jadi "frekuensi apa yang ada dalam sinyal ini dan berapa besar dayanya?" menjawab pertanyaan itu. AI bekerja dengan sangat baik dalam mengimplementasikan FFT, menafsirkan hasil, dan menulis kode Python (numpy/scipy). Namun ada kesalahan umum di FFT, dan kode AI dapat memasukkannya secara diam-diam:

  • Penskalaan sumbu frekuensi: Sumbu frekuensi keluaran FFT bergantung pada frekuensi pengambilan sampel. Jika fs yang dimasukkan salah, semua frekuensi dikeluarkan dengan salah, namun grafik tampak normal.
  • Windowing: Ketika sinyal terbatas diterima, diskontinuitas terjadi di tepinya dan penyebaran semu (kebocoran spektral) diamati dalam spektrum. Windows seperti Hann dan Hamming mengurangi hal ini. Jika kode AI melewatkan windowing, hasilnya akan menyesatkan.
  • Normalisasi amplitudo: Penskalaan dan koreksi jendela diperlukan untuk mengubah amplitudo keluaran FFT menjadi nilai fisik sebenarnya. Jika dihilangkan, amplitudonya akan salah.

desain penyaring

Filter adalah sirkuit atau algoritma yang mengekstraksi frekuensi yang tidak diinginkan dari suatu sinyal. Ada empat tipe dasar: low-pass (melewati frekuensi rendah), high-pass, band-pass, dan band-pass (notch). Ada dua kelompok besar filter digital: FIR (respons impuls terbatas, fase stabil dan linier) dan IIR (respons impuls tak terbatas, transisi curam dengan perhitungan lebih sedikit tetapi stabilitas dan risiko fase).

AI menjelaskan langkah-langkah desain filter (frekuensi cutoff, passband, redaman stopband, pemilihan pesanan) dan menulis kode penghasil koefisien dengan scipy. Tetapi frekuensi cutoff dari filter yang Anda desain diberikan dinormalisasi (relatif terhadap frekuensi Nyquist), dan salah memasukkan fs di sini adalah kesalahan yang sangat umum. Selain itu, stabilitas dan distorsi fase mungkin menjadi masalah dalam filter IIR, dan latensi mungkin menjadi masalah dalam sistem real-time. Pastikan untuk memverifikasi filter yang dihasilkan AI dengan grafik respons frekuensi dan sinyal pengujian yang diketahui.

tiga kasus mini

Kasus 1 — Getaran yang tumpang tindih. Seorang insinyur mengambil sampel getaran motor pada 1 kHz dan melihat puncak yang kuat pada FFT pada 300 Hz. Puncak yang tidak sesuai dengan desain mesin ini membingungkan. Sebenarnya ada komponen nyata di mesin sekitar 1300 Hz; Pengambilan sampel 1 kHz tidak cukup untuk ini (Nyquist 500 Hz) dan 1300 Hz tumpang tindih dengan 300 Hz. Setelah berdiskusi dengan AI "apakah puncak ini nyata atau aliasing" dan meningkatkan frekuensi sampling menjadi 5 kHz, puncak tersebut muncul di tempat yang benar pada 1300 Hz. Pelajaran: di bukit yang dipertanyakan, pertanyaan pertama tentang kecukupan pengambilan sampel.

Kasus 2 — Jendela yang dilewati. Seorang magang meminta kode FFT dari AI dan menjalankannya. Dia mengharapkan nada uji frekuensi tunggal tetapi melihat penyebaran yang luas di seluruh spektrum. Masalahnya adalah kode tersebut tidak melakukan windowing (kebocoran spektral). Beri tahu AI "tambahkan jendela Hann dan terapkan koreksi amplitudo" dan output kembali ke puncak tajam yang diharapkan. Pelajaran: Uji kode FFT dengan sinyal frekuensi tunggal yang diketahui; Periksa jendela apakah ada kebocoran.

Kasus 3 — Salah fs. Seorang insinyur menganalisis data dari perekam. Perangkat merekam pada 48 kHz, tetapi default 44,1 kHz dimasukkan dalam kode AI. Semua frekuensi digeser sebesar 8%; Nada 1000 Hz muncul pada 1088 Hz. Kesalahan ditemukan saat memeriksa fs sebenarnya dari peralatan pengukuran. Pelajaran: frekuensi pengambilan sampel adalah angka paling penting dalam rantai analisis; harus diverifikasi dari sumbernya.

Templat cepat yang dapat disalin

TEMPLATE PENYIAPAN FFT"Tulis kode analisis FFT dengan Python (numpy/scipy). Masukan: samplingfrekuensi fs=[nilai] Hz, string sinyal 'x'. Biarkan kode melakukan hal berikut: (1) Terapkan jendela Hann, (2) Dapatkan FFT, (3) skala sumbu frekuensi relatif terhadap fs secara akurat, (4) plot spektrum amplitudo satu sisi dengan koreksi jendela. Pada setiap langkah kode "Silakan nyatakan di baris komentar asumsi mana yang Anda buat Saya dapat memverifikasinya."

TEMPLATE KONTROL SAMPLING "Frekuensi signifikan tertinggi dari sinyal saya kira-kira [X] Hz. Jelaskan margin Nyquist, kebutuhan filter anti-aliasing, dan margin keamanan praktis saat memilih frekuensi pengambilan sampel. Sarankan kisarannya tetapi tekankan bahwa saya harus memverifikasi ini dengan mengukur spektrum sinyal yang sebenarnya."

TEMPLATE DESAIN FILTER "Rancang filter digital pass [rendah/tinggi/band] dengan scipy. Frekuensi cutoff [X] Hz, frekuensi sampling fs=[Y] Hz. Bandingkan opsi FIR dan IIR (stabilitas, fase, penundaan, beban komputasi). Tunjukkan dengan jelas dalam kode bagaimana frekuensi cutoff dinormalisasi ke fs. Sertakan juga kode yang memvalidasi filter dengan grafik respons frekuensi."

TEMPLATE VALIDASI HASIL "Periksa kode pemrosesan sinyal di bawah ini dan tandai sumber kesalahan senyap: fs salah, windowing dilewati, crosstalk unit (Hz/kHz,V/mV), kurangnya normalisasi, crosstalk spektrum satu/dua sisi. Sarankan bagaimana saya harus menguji (dengan sinyal referensi mana) untuk masing-masing. Kode: [tempel]."

Perintah lemah / Perintah kuat

PROMPT LEMAH: "Temukan frekuensi sinyal ini."

PROMPT KUAT: "Saya memiliki susunan sinyal dengan frekuensi sampling 10 kHz. Tulis kode Python yang menemukan komponen frekuensi dominan dengan FFT; gunakan jendela Hann dan koreksi amplitudo, skalakan sumbu frekuensi menurut fs. Di akhir kode, tambahkan blok validasi dengan sinyal uji sintetik 1 kHz fs dan lihat apakah penskalaannya benar."

Prompt yang lemah menghasilkan respons bebas konteks dan mengasumsikan fs; Ini mengembalikan parameter cepat yang kuat dan meminta blok pengujian verifikasi mandiri.

Tabel satuan dan asumsi dalam pemrosesan sinyal

konsep

kesalahan yang sering terjadi

verifikasi

Frekuensi pengambilan sampel (fs)

Default, bukan FS perangkat yang sebenarnya

Konfirmasi dari pengaturan perekam

sumbu frekuensi

Jika fs salah maka seluruh sumbu akan bergeser

Nada uji frekuensi yang diketahui

Jendela

Kebocoran spektral saat dilewati

Lebar puncak pada sinyal monoton

Amplitudo

Normalisasi/koreksi hilang

Perbandingan dengan sinyal amplitudo yang diketahui

potongan saringan

menormalkan kesalahan menurut fs

Grafik respons frekuensi

Perhatian: Hanya karena grafik FFT terlihat mulus dan dapat dipercaya bukan berarti grafik tersebut akurat. Jika skala sumbu frekuensi salah, semua puncak berada di tempat yang salah tetapi grafik terlihat sempurna. Selalu kalibrasi dengan referensi yang diketahui.

Kesalahan umum

  • Tidak memverifikasi frekuensi pengambilan sampel dari sumbernya. Fs yang salah menggeser semua frekuensi.
  • Melanggar Nyquist dan tidak memperhatikan aliasing. Di bukit-bukit yang mencurigakan, pertama-tama pertanyakan kecukupan pengambilan sampel.
  • Melewatkan windowing di FFT. Kebocoran spektral tampak seperti puncak nyata.
  • Melupakan normalisasi amplitudo. Amplitudo tetap tidak terukur terhadap nilai fisik.
  • Salah menormalkan frekuensi cutoff filter ke fs. Filter terpotong di tempat yang berbeda dari yang diharapkan.

Singkatnya

Dalam unit ini, Anda telah memposisikan AI sebagai bantuan yang ampuh dalam mempelajari konsep pemrosesan sinyal, menulis FFT dan kode filter, serta membangun analisis. Namun dalam pemrosesan sinyal, hasilnya dapat terdistorsi secara diam-diam: frekuensi pengambilan sampel yang salah, windowing yang dilewati, volume yang mengganggu, atau kurangnya normalisasi membuat grafik menjadi indah namun tidak akurat. Jadi uji setiap kode yang dihasilkan AI terhadap sinyal referensi yang diketahui, verifikasi frekuensi pengambilan sampel dari sumbernya, dan uji setiap hasil untuk unit dan masuk akal fisik. Periksa konsep Nyquist dan aliasing di awal setiap analisis.

Tugas aplikasi

Buat sinyal uji sintetik dengan Python: jumlah dari dua frekuensi yang diketahui (misalnya 1 kHz dan 3 kHz), fs=10 kHz. Minta kode analisis dari AI dengan template “FFT setup” dan verifikasi bahwa puncak muncul pada frekuensi yang benar. Kemudian dengan sengaja salah memasukkan fs (misalnya 8 kHz) dan amati bagaimana puncaknya bergeser. Terakhir, hapus jendela dan lihat kebocoran spektral. Tuliskan hasil setiap percobaan dalam satu kalimat.

daftar periksa

  • [ ] Saya memverifikasi frekuensi pengambilan sampel (fs) dari pengaturan perekam yang sebenarnya.
  • [ ] Saya memeriksa kriteria Nyquist dan mengevaluasi risiko aliasing.
  • [] Saya telah memeriksa bahwa koreksi windowing dan amplitudo diterapkan dalam kode FFT.
  • [ ] Saya menguji kode dengan sinyal referensi frekuensi yang diketahui.
  • [ ] Saya memverifikasi melalui respons visual bahwa frekuensi cutoff filter telah dinormalisasi dengan benar ke fs.
  • [ ] Saya membuat semua satuan (Hz/kHz, V/mV) konsisten.