Dengan menggunakan MATLAB, bagaimana saya dapat menemukan rata-rata pergerakan hari ke-3 dari kolom matriks tertentu dan menambahkan rata-rata bergerak ke matriks tersebut. Saya mencoba menghitung rata-rata pergerakan 3 hari dari bawah ke atas matriks. Saya telah memberikan kode saya: Dengan matriks dan topeng berikut ini: Saya telah mencoba menerapkan perintah konv tapi saya menerima kesalahan. Inilah perintah konv yang saya coba gunakan pada kolom ke 2 matriks a: Output yang saya inginkan diberikan dalam matriks berikut: Jika Anda memiliki saran, saya akan sangat menghargainya. Terima kasih Untuk kolom 2 dari matriks a, saya menghitung rata-rata pergerakan 3 hari sebagai berikut dan menempatkan hasilnya di kolom 4 dari matriks a (saya mengganti nama matriks sebagai 39desiredOutput39 hanya untuk ilustrasi). Rata-rata 3 hari dari 17, 14, 11 adalah 14 rata-rata 3 hari 14, 11, 8 adalah 11 rata-rata 3 hari 11, 8, 5 adalah 8 dan rata-rata 3 hari 8, 5, 2 adalah 5. Tidak ada nilai di baris 2 bawah untuk kolom ke-4 karena penghitungan untuk rata-rata pergerakan 3 hari dimulai dari bawah. Hasil 39valid39 tidak akan ditampilkan sampai setidaknya 17, 14, dan 11. Mudah-mudahan ini masuk akal ndash Aaron 12 Jun 13 at 1:28 Secara umum akan membantu jika Anda menunjukkan kesalahannya. Dalam hal ini Anda melakukan dua hal yang salah: Pertama, konvolusi Anda perlu dibagi tiga (atau panjang rata-rata bergerak) Kedua, perhatikan ukuran c. Anda tidak bisa hanya cocok c ke a. Cara khas untuk mendapatkan rata-rata bergerak adalah dengan menggunakan yang sama: tapi itu tidak seperti yang Anda inginkan. Sebagai gantinya Anda terpaksa menggunakan beberapa baris: Saya perlu menghitung rata-rata bergerak di atas rangkaian data, dalam satu untuk loop. Saya harus mendapatkan rata-rata bergerak selama N9 hari. Rangkaian komputasi Im adalah 4 seri dari 365 nilai (M), yang merupakan nilai rata-rata dari seperangkat data lainnya. Saya ingin merencanakan nilai rata-rata data saya dengan rata-rata bergerak dalam satu plot. Aku googled sedikit tentang bergerak rata-rata dan perintah konv dan menemukan sesuatu yang saya mencoba menerapkan dalam kode saya .: Jadi pada dasarnya, saya menghitung maksud saya dan plot dengan moving average (salah). Aku mengambil nilai wts langsung dari situs mathworks, jadi itu tidak benar. (Sumber: mathworks. nlhelpeconmoving-average-trend-estimateation. html) Masalah saya adalah, saya tidak mengerti apa ini. Mungkinkah ada yang menjelaskan Jika ada kaitannya dengan bobot nilai: itu tidak valid dalam kasus ini. Semua nilai tertimbang sama. Dan jika saya melakukan ini sepenuhnya salah, bisakah saya mendapatkan pertolongan dengan itu Terima kasih yang tulus. Tanya 23 September 19:05 Menggunakan konv adalah cara terbaik untuk menerapkan moving average. Dalam kode yang Anda gunakan, wts adalah berapa banyak Anda menimbang setiap nilai (seperti yang Anda duga). Jumlah vektor itu harus selalu sama dengan satu. Jika Anda ingin memberi bobot pada setiap nilai secara merata dan lakukan filter bergerak N ukuran maka Anda ingin melakukannya Dengan menggunakan argumen valid dalam konv akan menghasilkan nilai lebih sedikit pada Ms daripada yang Anda miliki di M. Gunakan sama jika Anda tidak keberatan dengan efek dari Nol padding Jika Anda memiliki toolbox pemrosesan sinyal, Anda dapat menggunakan cconv jika Anda ingin mencoba moving average melingkar. Sesuatu seperti Anda harus membaca dokumentasi conv dan cconv untuk informasi lebih lanjut jika Anda belum melakukannya. Anda dapat menggunakan filter untuk menemukan rata-rata yang sedang berjalan tanpa menggunakan for loop. Contoh ini menemukan rata-rata arus dari vektor 16 elemen, dengan menggunakan ukuran jendela 5. 2) yang mulus sebagai bagian dari Toolbox Curve Fitting (yang tersedia dalam banyak kasus) yy smooth (y) menghaluskan data pada vektor kolom Y menggunakan filter rata-rata bergerak. Hasil dikembalikan pada vektor kolom yy. Rentang default untuk rata-rata bergerak adalah 5.In banyak eksperimen di sains, amplitudo sinyal sebenarnya (nilai sumbu y) berubah agak lancar sebagai fungsi dari nilai sumbu x, sedangkan banyak jenis noise dilihat sebagai rapid, random Perubahan amplitudo dari titik ke titik di dalam sinyal. Dalam situasi yang terakhir ini mungkin berguna dalam beberapa kasus untuk mencoba mengurangi kebisingan dengan proses yang disebut smoothing. Dalam merapikan, titik-titik data suatu sinyal dimodifikasi sehingga titik-titik individual yang lebih tinggi dari titik yang berdekatan (mungkin karena noise) berkurang, dan titik-titik yang lebih rendah dari titik yang berdekatan meningkat. Hal ini tentu saja mengarah pada sinyal yang lebih halus (dan respons langkah lebih lambat terhadap perubahan sinyal). Selama sinyal dasar sebenarnya benar-benar mulus, maka sinyal sebenarnya tidak akan banyak terdistorsi oleh smoothing, namun noise frekuensi tinggi akan berkurang. Dalam hal komponen frekuensi sinyal, operasi pemulusan bertindak sebagai filter low-pass. Mengurangi komponen frekuensi tinggi dan melewati komponen frekuensi rendah dengan sedikit perubahan. Algoritma Smoothing. Kebanyakan algoritma smoothing didasarkan pada teknik shift dan multiply, di mana sekelompok titik yang berdekatan dalam data asli dikalikan titik demi titik dengan serangkaian bilangan (koefisien) yang mendefinisikan bentuk halus, produk ditambahkan dan Dibagi dengan jumlah koefisien, yang menjadi satu titik data yang dihaluskan, maka himpunan koefisien digeser satu titik ke data asli dan prosesnya diulang. Algoritma smoothing yang paling sederhana adalah boxcar persegi panjang atau rata-rata sliding yang tidak tertimbang dengan halus sehingga hanya mengganti setiap titik pada sinyal dengan rata-rata titik m yang berdekatan, di mana m adalah bilangan bulat positif yang disebut lebar halus. Misalnya, untuk kelancaran 3-titik (m 3): untuk j 2 sampai n-1, di mana titik ke-j pada sinyal yang dihaluskan, Y j titik ke-j pada sinyal asli, dan n adalah total Jumlah titik dalam sinyal Operasi halus yang serupa dapat dibangun untuk setiap lebar mulus yang diinginkan, m. Biasanya m adalah angka ganjil. Jika kebisingan dalam data adalah white noise (yaitu, merata di semua frekuensi) dan standar deviasinya adalah D. Maka deviasi standar noise yang tersisa pada sinyal setelah lintasan pertama dari rata-rata geser yang tidak tertimbang akan mendekati s kuadrat m (D sqrt (m)), di mana m adalah lebar yang mulus. Meski disederhanakan, kelancaran ini sebenarnya optimal untuk masalah umum mengurangi kebisingan putih sekaligus menjaga respons langkah paling tajam. Respon terhadap perubahan langkah sebenarnya linier. Jadi filter ini memiliki keuntungan untuk merespons sepenuhnya tanpa efek residual dengan waktu responnya. Yang sama dengan lebar halus dibagi dengan laju sampling. Segitiga halus seperti segi empat mulus, di atas, kecuali bahwa ia menerapkan fungsi smoothing tertimbang. Untuk 5-titik halus (m 5): untuk j 3 sampai n-2, dan juga untuk lebar halus lainnya (lihat lembar kerja UnitGainSmooths. xls). Dalam kedua kasus ini, bilangan bulat dalam penyebut adalah jumlah koefisien dalam pembilang, yang menghasilkan kelentuk unit yang mulus yang tidak berpengaruh pada sinyal dimana garis lurus dan yang mempertahankan area di bawah puncak. Hal ini sering berguna untuk menerapkan operasi pemulusan lebih dari satu kali, yaitu untuk memperlancar sinyal yang sudah merapikan, untuk membangun kelancaran yang lebih lama dan lebih rumit. Misalnya, segitiga 5 titik di atas setara dengan dua lintasan dari 3 titik persegi panjang yang halus. Tiga lintasan hasil halus empat titik persegi panjang di titik 7 pseudo-Gaussian atau tumpukan jerami halus, yang koefisiennya ada dalam rasio 1: 3: 6: 7: 6: 3: 1. Aturan umumnya adalah bahwa n melewati hasil halus w-bandwidth dalam lebar mulus gabungan dari n w - n 1. Misalnya, 3 lintasan hasil halus 17 titik menghasilkan kelonggaran 49 titik. Kelonggaran multi-pass ini lebih efektif untuk mengurangi noise frekuensi tinggi pada sinyal dari pada rectangular smooth namun menunjukkan respon step yang lebih lambat. Dalam semua kelancaran ini, lebar m halus dipilih menjadi bilangan bulat ganjil, sehingga koefisien kelancaran seimbang secara simetris di sekitar titik pusat, yang penting karena mempertahankan posisi sumbu x dari puncak dan fitur lainnya di sinyal. (Ini sangat penting untuk aplikasi analitis dan spektroskopi karena posisi puncak seringkali merupakan tujuan pengukuran yang penting). Perhatikan bahwa kita mengasumsikan di sini bahwa interval sumbu x dari sinyalnya seragam, artinya perbedaan antara nilai sumbu x dari titik-titik yang berdekatan sama di seluruh sinyal. Ini juga diasumsikan dalam banyak teknik pemrosesan sinyal lain yang dijelaskan dalam esai ini, dan ini adalah karakteristik sinyal yang sangat umum (namun tidak diperlukan) yang diperoleh oleh peralatan otomatis dan terkomputerisasi. Savitzky-Golay halus didasarkan pada pemasangan polinomial kuadrat terkecil pada segmen data. Algoritma ini dibahas dalam wire. tu-bs. deOLDWEBmameyercmrsavgol. pdf. Dibandingkan dengan rata-rata kelancaran rata-rata geser, Savitzky-Golay halus kurang efektif dalam mengurangi kebisingan, namun lebih efektif untuk mempertahankan bentuk sinyal asli. Hal ini mampu membedakan dan menghaluskan. Algoritma ini lebih kompleks dan waktu komputasi lebih besar daripada tipe halus yang dibahas di atas, namun dengan perbedaan komputer modern tidak signifikan dan kode dalam berbagai bahasa tersedia secara online. Lihat SmoothingComparison. html. Bentuk algoritma smoothing dapat ditentukan dengan menerapkan fungsi smooth ke delta. Sebuah sinyal yang terdiri dari semua nol kecuali satu titik, seperti yang ditunjukkan oleh skrip sederhana MatlabOctave DeltaTest. m. Pengurangan kebisingan . Smoothing biasanya mengurangi noise pada sinyal. Jika noisenya putih (yaitu, merata pada semua frekuensi) dan standar deviasinya adalah D. Maka standar deviasi dari noise yang tersisa pada sinyal setelah satu pass dari rectangular smooth akan mendekati D sqrt (m), di mana m adalah lebar yang mulus. Jika kelepasan segitiga digunakan sebagai gantinya, suaranya akan sedikit kurang, sekitar D 0.8sqrt (m). Operasi pengaliran bisa diaplikasikan lebih dari satu kali: yaitu, sinyal yang sebelumnya diratakan bisa diratakan lagi. Dalam beberapa kasus, ini bisa berguna jika ada banyak noise frekuensi tinggi pada sinyal. Namun, pengurangan kebisingan untuk white noise kurang di masing-masing berurutan mulus. Misalnya, tiga lintasan halus empat persegi panjang mengurangi white noise dengan faktor sekitar D 0,7sqrt (m), hanya sedikit perbaikan selama dua lintasan. Distribusi frekuensi kebisingan, yang ditandai dengan warna noise. Secara substansial mempengaruhi kemampuan smoothing untuk mengurangi kebisingan. Fungsi MatlabOctave NoiseColorTest. m membandingkan efek boxcar 20 titik (rata-rata geser yang tidak tertimbang) yang mulus pada standar deviasi white, pink, dan blue noise, yang kesemuanya memiliki deviasi standar unsmoothed asli 1,0. Karena merapikan adalah proses filter low-pass, efeknya pada frekuensi rendah (merah muda dan merah) kurang, dan efek noise frekuensi tinggi (biru dan ungu) lebih banyak, daripada white noise. Perhatikan bahwa perhitungan deviasi standar tidak tergantung pada urutan data dan dengan demikian distribusi frekuensi yang menyortir sekumpulan data tidak mengubah standar deviasinya. Deviasi standar gelombang sinus tidak tergantung pada frekuensinya. Smoothing, bagaimanapun, mengubah baik distribusi frekuensi dan standar deviasi kumpulan data. Efek akhir dan kehilangan poin masalah. Dalam persamaan di atas, 3 titik putih segi empat didefinisikan hanya untuk j 2 sampai n-1. Tidak ada cukup data dalam sinyal untuk mendefinisikan kelurusan 3 titik yang lengkap untuk titik pertama dalam sinyal (j 1) atau untuk titik terakhir (j n). Karena tidak ada titik data sebelum titik pertama atau setelah titik terakhir. (Demikian pula, kelurusan 5 titik didefinisikan hanya untuk j 3 sampai n-2, dan oleh karena itu kelancaran tidak dapat dihitung untuk dua poin pertama atau untuk dua poin terakhir). Secara umum, untuk m-bandwidth yang mulus, akan ada (m -1) 2 poin pada awal sinyal dan (m -1) 2 poin pada akhir sinyal dimana m - width yang lengkap tidak bisa Dihitung dengan cara biasa Apa yang harus dilakukan Ada dua pendekatan. Salah satunya adalah menerima kehilangan poin dan memangkas titik-titik tersebut atau menggantinya dengan angka nol dalam sinyal yang halus. (Thats pendekatan yang diambil di sebagian besar angka dalam makalah ini). Pendekatan lainnya adalah dengan menggunakan smooths lebih kecil pada ujung sinyal, misalnya untuk menggunakan 2, 3, 5, 7. point smooths untuk titik sinyal 1, 2, 3, dan 4. dan untuk titik n, n-1 , N-2, n-3. Masing-masing. Pendekatan selanjutnya mungkin lebih baik jika tepi sinyal mengandung informasi penting, namun akan meningkatkan waktu eksekusi. Fungsi fastsmooth yang dibahas di bawah dapat memanfaatkan salah satu dari kedua metode ini. Contoh smoothing. Contoh sederhana dari smoothing ditunjukkan pada Gambar 4. Bagian kiri dari sinyal ini adalah puncak yang bising. Bagian kanan adalah puncak yang sama setelah menjalani algoritma pemulusan segitiga. Kebisingan sangat berkurang sementara puncaknya sendiri hampir tidak berubah. Suara yang berkurang memungkinkan karakteristik sinyal (posisi puncak, tinggi, lebar, luas, dll.) Diukur lebih akurat dengan inspeksi visual. Gambar 4. Bagian kiri dari sinyal ini adalah puncak yang bising. Bagian kanan adalah puncak yang sama setelah menjalani algoritma smoothing. Kebisingan sangat berkurang sementara puncaknya sendiri hampir tidak berubah, sehingga memudahkan untuk mengukur posisi puncak, tinggi, dan lebar secara langsung dengan perkiraan grafis atau visual (namun tidak memperbaiki pengukuran yang dilakukan dengan metode kuadrat terkecil lihat di bawah). Semakin besar lebar kelancaran, semakin besar noise reduction, namun semakin besar kemungkinan sinyal akan terdistorsi oleh operasi smoothing. Pilihan optimal lebar halus tergantung pada lebar dan bentuk sinyal dan interval digitisasi. Untuk sinyal tipe puncak, faktor kritisnya adalah rasio halus. Rasio antara lebar m yang mulus dan jumlah titik di setengah lebar puncak. Secara umum, meningkatkan rasio perataan meningkatkan rasio signal-to-noise namun menyebabkan penurunan amplitudo dan peningkatan bandwidth puncak. Sadarilah bahwa lebar halus dapat dinyatakan dalam dua cara yang berbeda: (a) sebagai jumlah titik data atau (b) sebagai interval sumbu x (untuk data spektroskopi biasanya di nm atau unit frekuensi). Keduanya hanya berhubungan: jumlah titik data hanyalah interval sumbu x kali kenaikan antara nilai sumbu x yang berdekatan. Rasio halus sama pada kedua kasus. Angka di atas menunjukkan contoh efek tiga lebar mulus berbeda pada puncak berbentuk Gaussian yang bising. Pada gambar di sebelah kiri, puncaknya memiliki ketinggian (true) 2,0 dan ada 80 titik di setengah lebar puncak. Garis merah adalah puncak unsmoothed asli. Tiga garis hijau yang dilapiskan adalah hasil pemulusan puncak ini dengan lebar segitiga yang halus (dari atas ke bawah) 7, 25, dan 51 titik. Karena lebar puncaknya adalah 80 titik, rasio kelancaran ketiga kelancaran ini masing-masing 780 0,09, 2580 0,31, dan 5180 0,64. Seiring dengan bertambahnya lebar halus, noise semakin berkurang namun tingginya puncak juga sedikit berkurang. Untuk yang terbesar mulus, lebar puncak sedikit meningkat. Pada gambar di sebelah kanan, puncak orisinal (berwarna merah) memiliki tinggi true 1,0 dan setengah lebar 33 poin. (Ini juga kurang bising daripada contoh di sebelah kiri.) Tiga garis hijau yang dilapiskan adalah hasil dari tiga lebar segitiga yang sama dengan lebar (dari atas ke bawah) 7, 25, dan 51 titik. Tapi karena lebar puncak dalam kasus ini hanya 33 poin, rasio halus ketiga kelancaran ini lebih besar - 0,21, 0,76, dan 1,55. Anda dapat melihat bahwa efek distorsi puncak (pengurangan tinggi puncak dan kenaikan pada lebar puncak) lebih besar untuk puncak yang sempit karena rasio kelancarannya lebih tinggi. Rasio halus lebih besar dari 1,0 jarang digunakan karena distorsi puncak yang berlebihan. Perhatikan bahwa bahkan dalam kasus terburuk, posisi puncak tidak dilakukan (dengan asumsi puncak asli simetris dan tidak tumpang tindih oleh puncak lainnya). Jika mempertahankan bentuk puncak lebih penting daripada mengoptimalkan rasio signal-to-noise, Savitzky-Golay memiliki keunggulan dibanding rata-rata smooth-sliding. Dalam semua kasus, luas total di bawah puncak tetap tidak berubah. Jika lebar puncak bervariasi secara substansial, kelancaran yang adaptif. Yang memungkinkan lebar yang mulus bervariasi antar sinyal, bisa digunakan. Masalah dengan merapikan adalah bahwa hal itu seringkali kurang menguntungkan daripada yang mungkin Anda pikirkan. Yang penting untuk menunjukkan bahwa hasil penghalusan seperti yang diilustrasikan pada gambar di atas mungkin mengesankan karena mereka menggunakan satu sampel sinyal bising yang dilicinkan ke derajat yang berbeda. Hal ini menyebabkan pemirsa meremehkan kontribusi noise dengan frekuensi rendah, yang sulit diperkirakan secara visual karena hanya ada sedikit siklus frekuensi rendah dalam rekaman sinyal. Masalah ini dapat divisualisasikan dengan merekam sejumlah sampel independen dari sinyal bising yang terdiri dari satu puncak, seperti yang digambarkan pada dua gambar di bawah ini. Angka-angka ini menunjukkan sepuluh plot yang dilapiskan dengan puncak yang sama namun dengan kebisingan putih independen, masing-masing diplot dengan warna garis yang berbeda, tidak berjejer di sebelah kiri dan merapikan di sebelah kanan. Pemeriksaan terhadap sinyal yang merapikan di sebelah kanan dengan jelas menunjukkan variasi pada posisi puncak, tinggi, dan lebar antara 10 sampel yang disebabkan oleh kebisingan frekuensi rendah yang tersisa pada sinyal yang dihaluskan. Tanpa noise, setiap puncaknya akan memiliki tinggi puncak 2, peak center pada 500, dan lebar 150. Hanya karena sinyal terlihat mulus tidak berarti tidak ada noise. Frekuensi frekuensi rendah yang tersisa pada sinyal setelah smoothing masih akan mengganggu pengukuran posisi puncak, tinggi, dan lebar yang tepat. (Skrip pembangkit di bawah setiap gambar mengharuskan fungsi gaussian. m, whitenoise. m, dan fastsmooth. m dapat diunduh dari tinyurlcey8rwh.) Harus jelas bahwa merapikan jarang bisa menghilangkan kebisingan, karena sebagian besar suara terbentang di tempat yang luas. Rentang frekuensi, dan perataan hanya mengurangi kebisingan di bagian dari rentang frekuensinya. Hanya untuk beberapa tipe kebisingan yang sangat spesifik (misalnya diskrit frekuensi noise atau lonjakan satu titik) apakah ada harapan dari sesuatu yang mendekati eliminasi kebisingan yang lengkap. Angka di sebelah kanan di bawah ini adalah contoh lain yang mengilustrasikan beberapa prinsip ini. Sinyal terdiri dari dua puncak Gaussian, satu terletak di x50 dan yang kedua pada x150. Kedua puncak memiliki tinggi puncak 1,0 dan setengah lebar puncak 10, dan noise putih acak terdistribusi normal dengan standar deviasi 0,1 telah ditambahkan ke keseluruhan sinyal. Interval sampling sumbu x, bagaimanapun, berbeda untuk dua puncaknya yaitu 0,1 untuk puncak pertama (dari x0 sampai 100) dan 1,0 untuk puncak kedua (dari x100 sampai 200). Ini berarti bahwa puncak pertama ditandai dengan sepuluh kali lebih banyak poin yang berada pada puncak kedua. Ini mungkin terlihat seperti puncak pertama yang ribut daripada yang kedua, tapi itu hanya ilusi rasio signal-to-noise untuk kedua puncak adalah 10. Puncak kedua terlihat kurang bising hanya karena ada sedikit sampel kebisingan di sana dan kita cenderung meremehkan. Dispersi sampel kecil. Hasil dari ini adalah ketika sinyal diratakan, puncak kedua jauh lebih mungkin terdistorsi oleh kelancaran (menjadi lebih pendek dan lebih lebar) daripada puncak pertama. Puncak pertama dapat mentolerir lebar yang jauh lebih lebar, menghasilkan tingkat reduksi kebisingan yang lebih tinggi. (Demikian pula, jika kedua puncak diukur dengan metode pasak kuadrat-kuadrat terkecil, kecocokan puncak pertama lebih stabil dengan noise dan parameter yang diukur pada puncak tersebut kira-kira 3 kali lebih akurat daripada puncak kedua, karena di sana Adalah 10 kali lebih banyak titik data di puncak itu, dan ketepatan pengukuran meningkat kira-kira dengan akar kuadrat dari jumlah titik data jika noisenya putih). Anda bisa mendownload file data udx dalam format TXT atau dalam format Matlab MAT. Optimalisasi smoothing. Seiring dengan bertambahnya lebar halus, rasio pemulusan meningkat, noise berkurang dengan cepat pada awalnya, lalu lebih lambat, dan tinggi puncak juga berkurang, perlahan pada awalnya, lalu lebih cepat. Pengurangan kebisingan bergantung pada lebar yang mulus, jenis halus (misalnya segi empat, segitiga, dll), dan warna noise, namun pengurangan ketinggian puncak juga bergantung pada lebar puncaknya. Hasilnya adalah bahwa signal-to-noise (yang didefinisikan sebagai rasio tinggi puncak standar deviasi noise) meningkat dengan cepat pada awalnya, kemudian mencapai maksimum. Hal ini diilustrasikan dalam animasi di sebelah kiri untuk sebuah puncak Gaussian dengan white noise (diproduksi oleh skrip MatlabOctave ini). Peningkatan maksimum rasio signal-to-noise bergantung pada jumlah titik di puncak: semakin banyak titik di puncak, lebar kelana yang lebih besar dapat digunakan dan semakin besar pengurangan noise. Angka ini juga menggambarkan bahwa sebagian besar pengurangan kebisingan disebabkan oleh komponen frekuensi tinggi dari kebisingan, sedangkan sebagian besar noise frekuensi rendah tetap berada pada sinyal meskipun dihaluskan. Mana rasio halus terbaik Itu tergantung pada tujuan pengukuran puncak. Jika tujuan akhir dari pengukuran ini adalah untuk mengukur tinggi atau lebar puncak, maka rasio halus di bawah 0,2 harus digunakan dan Savitzky-Golay halus lebih disukai. Tetapi jika tujuan pengukuran adalah mengukur posisi puncak (nilai sumbu x dari puncak), rasio kelancaran yang lebih besar dapat digunakan jika diinginkan, karena perataan sedikit berpengaruh pada posisi puncak (kecuali puncaknya asimetris atau kenaikannya. Pada lebar puncak begitu banyak sehingga menyebabkan puncak yang berdekatan saling tumpang tindih). Jika puncaknya benar-benar terbentuk dari dua puncak yang mendasari yang tumpang tindih sedemikian rupa sehingga tampaknya menjadi satu puncak, maka kurva pas adalah satu-satunya cara untuk mengukur parameter puncak yang mendasarinya. Sayangnya, rasio signal-to-noise yang optimal sesuai dengan rasio kelancaran yang secara signifikan mendistorsi puncak, itulah sebabnya kurva pas data unsmoothed sering disukai. Dalam aplikasi analisis kimia kuantitatif berdasarkan kalibrasi menurut sampel standar, pengurangan tinggi puncak yang disebabkan oleh perataan tidak begitu penting. Jika operasi pemrosesan sinyal yang sama diterapkan pada sampel dan standar, pengurangan tinggi puncak dari sinyal standar akan sama persis dengan sinyal sampel dan efeknya akan dibatalkan sama persis. Dalam kasus seperti itu, lebar halus dari 0,5 sampai 1,0 dapat digunakan jika perlu untuk meningkatkan rasio signal-to-noise lebih lanjut, seperti yang ditunjukkan pada gambar di sebelah kiri (untuk rata-rata geser rata-rata sederhana). Dalam kimia analitik praktis, pengukuran puncak puncak mutlak jarang dilakukan kalibrasi terhadap solusi standar. (Ingat: tujuan analisis kuantitatif bukan untuk mengukur sinyal melainkan untuk mengukur konsentrasi yang tidak diketahui.) Namun, sangat penting untuk menerapkan langkah pemrosesan sinyal yang sama persis dengan sinyal standar seperti sinyal sampel, Jika tidak, kesalahan sistematis yang besar bisa terjadi. Untuk perbandingan yang lebih rinci dari keempat tipe smoothing yang dipertimbangkan di atas, lihat SmoothingComparison. html. (A) untuk alasan kosmetik, menyiapkan gambar yang lebih bagus atau lebih dramatis dari sinyal untuk inspeksi visual atau publikasi, terutama untuk menekankan perilaku jangka panjang dalam jangka pendek. Atau (b) jika sinyal kemudian dianalisis dengan metode yang akan terdegradasi oleh adanya terlalu banyak noise frekuensi tinggi pada sinyal, misalnya jika ketinggian puncak harus ditentukan secara visual atau grafis atau dengan menggunakan Fungsi MAX, dari lebar puncak diukur dengan fungsi halfwidth, atau jika lokasi titik maxima, minima, atau inflection pada sinyal ditentukan secara otomatis dengan mendeteksi penyeberangan nol pada derivatif sinyal. Optimalisasi jumlah dan jenis smoothing penting dalam kasus ini (lihat Differentiation. htmlSmoothing). Tetapi umumnya, jika komputer tersedia untuk melakukan pengukuran kuantitatif, lebih baik menggunakan metode kuadrat terkecil pada data yang tidak dimodifikasi, daripada perkiraan grafis pada data yang dihaluskan. Jika instrumen komersial memiliki pilihan untuk memperlancar data untuk Anda, yang terbaik untuk menonaktifkan penghalusan dan merekam dan menyimpan data yang tidak rapi Anda dapat selalu menghaluskannya sendiri nanti untuk presentasi visual dan akan lebih baik menggunakan data yang tidak dimodifikasi setidaknya. - squares pas atau pengolahan lain yang mungkin ingin Anda lakukan nanti. Smoothing dapat digunakan untuk menentukan puncak tetapi tidak digunakan untuk mengukur puncak. Perawatan harus digunakan dalam perancangan algoritma yang menggunakan smoothing. Misalnya, dalam teknik populer untuk menemukan dan mengukur puncak. Puncak terletak dengan mendeteksi penyeberangan ke bawah nol pada derivatif pertama yang merapikan. Namun posisi, tinggi, dan lebar masing-masing puncak ditentukan oleh kurva kuadrat-kuadrat terkecil dari segmen data unsmoothed asli di sekitar persimpangan nol. Dengan cara itu, bahkan jika perataan yang berat diperlukan untuk memberikan diskriminasi yang dapat diandalkan terhadap puncak kebisingan, parameter puncak yang diekstraksi dengan pemasangan lekukan tidak terdistorsi oleh smoothing. (A) pemulusan tidak akan secara signifikan memperbaiki keakuratan pengukuran parameter dengan pengukuran kuadrat-terkecil antara sampel sinyal independen yang terpisah, (b) semua algoritma pemulusan setidaknya sedikit lossy, yang memerlukan setidaknya beberapa perubahan pada bentuk sinyal dan amplitudo, (c) Lebih sulit untuk mengevaluasi kecocokan dengan memeriksa residu jika data dihaluskan, karena suara yang merapikan mungkin salah untuk sinyal yang sebenarnya. Dan (d) merapikan sinyal akan secara serius meremehkan kesalahan parameter yang diprediksi dengan perhitungan propagasi-of-error dan metode bootstrap. Berurusan dengan lonjakan dan outlier. Terkadang sinyal terkontaminasi dengan lonjakan kecil yang sangat tinggi atau sempit yang terjadi pada interval acak dan dengan amplitudo acak, namun dengan lebar hanya satu atau beberapa titik. Ini tidak hanya terlihat jelek, tapi juga mengganggu asumsi perhitungan kuadrat-terkecil karena biasanya tidak terdistribusi secara acak. Jenis gangguan ini sulit dihilangkan dengan metode smoothing di atas tanpa mendistorsi sinyal. Namun, filter median, yang menggantikan setiap titik dalam sinyal dengan titik rata-rata (bukan rata-rata) titik m, benar-benar dapat menghilangkan lonjakan kecil dengan sedikit perubahan pada sinyal, jika lebar paku hanya satu atau satu Beberapa poin dan sama dengan atau kurang dari m. Lihat en. wikipedia. orgwikiMedianfilter. Fungsi killspikes. m menggunakan pendekatan yang berbeda yang ditempatkannya dan menghilangkan lonjakan dengan tambalan di atasnya menggunakan interpolasi linier dari sinyal sebelum dan sesudah. Tidak seperti smooths konvensional, fungsi ini dapat diterapkan secara menguntungkan sebelum fungsi pasak kuadrat-terkecil. (Di sisi lain, jika lonjakannya sebenarnya merupakan sinyal ketertarikan, dan komponen sinyal lainnya mengganggu ukuran mereka, lihat CaseStudies. htmlG). Sebuah alternatif untuk merapikan untuk mengurangi kebisingan pada himpunan sepuluh sinyal unsmoothed yang digunakan di atas adalah ansambel rata-rata. Yang dapat dilakukan dalam kasus ini sangat sederhana dengan plot kode MatlabOctave (x, mean (y)) hasilnya menunjukkan pengurangan white noise sekitar sqrt (10) 3.2. Ini cukup untuk menilai bahwa ada puncak tunggal dengan bentuk Gaussian, yang kemudian dapat diukur dengan kurva pas (ditutupi bagian selanjutnya) dengan menggunakan kode puncak MatlabOctave (xmean (y), 0,0,1). Dengan hasil menunjukkan kesepakatan yang sangat baik dengan posisi (500), tinggi (2), dan lebar (150) dari puncak Gaussian yang dibuat pada baris ketiga dari skrip pembangkit (kiri atas). Keuntungan yang sangat besar dari ensemble averaging adalah bahwa noise pada semua frekuensi berkurang. Bukan hanya suara frekuensi tinggi seperti di smoothing. Sesuaikan sinyal yang terlalu banyak. Terkadang sinyal dicatat lebih rapat (yaitu, dengan interval sumbu x yang lebih kecil) daripada yang benar-benar diperlukan untuk menangkap semua fitur penting dari sinyal. Hal ini menghasilkan ukuran data yang lebih besar dari yang diperlukan, yang memperlambat prosedur pemrosesan sinyal dan mungkin kapasitas penyimpanan pajak. Untuk memperbaiki ini, sinyal yang terlalu banyak dapat dikurangi ukurannya baik dengan menghilangkan titik data (misalnya, menjatuhkan setiap titik lain atau setiap titik ketiga) atau dengan mengganti kelompok titik yang berdekatan dengan rata-ratanya. Pendekatan selanjutnya memiliki keuntungan menggunakan daripada membuang data titik yang tidak relevan, dan bertindak seperti meratakan untuk memberikan beberapa ukuran pengurangan kebisingan. (Jika noise pada sinyal asli berwarna putih, dan sinyal dikondensasikan dengan rata-rata setiap n titik, noise berkurang pada sinyal kental dengan akar kuadrat n, namun tanpa perubahan distribusi frekuensi suara). Demonstrasi Video Video 18 detik ini, 3 MByte (Smooth3.wmv) menunjukkan efek pemulusan segitiga pada puncak Gaussian tunggal dengan tinggi puncak 1,0 dan lebar puncak 200. Amplitudo kerucut putih awal adalah 0,3, memberikan sinyal awal-ke - tidak ada rasio sekitar 3,3. Upaya untuk mengukur amplitudo puncak dan lebar puncak sinyal bising, yang ditunjukkan di bagian bawah video, pada awalnya sangat tidak akurat karena adanya noise. Karena lebar kelancarannya meningkat, namun rasio signal-to-noise meningkat dan keakuratan pengukuran amplitudo puncak dan lebar puncaknya meningkat. Namun, di atas lebar halus sekitar 40 (rasio halus 0,2), smoothing menyebabkan puncaknya menjadi lebih pendek dari 1.0 dan lebih lebar dari 200, meskipun rasio signal-to-noise terus membaik seiring dengan lebar mulus yang meningkat. (Demonstrasi ini dibuat di Matlab 6.5, SPECTRUM, aplikasi pemrosesan sinyal Macintosh freeware, mencakup fungsi perataan persegi panjang dan segitiga untuk sejumlah titik. Spreadsheets Smoothing dapat dilakukan di spreadsheet dengan menggunakan teknik shift dan multiply yang dijelaskan di atas. Spreadsheet smoothing. ods dan smoothing. xls himpunan koefisien pengali terkandung dalam formula yang menghitung nilai setiap sel dari data yang dihaluskan pada kolom C dan E. Kolom C melakukan 7 titik persegi panjang dengan mulus (1 1 1 1 1 1 1) dan kolom E melakukan segitiga segitiga 7 titik (1 2 3 4 3 2 1), diterapkan pada data di kolom A. Anda dapat mengetikkan (atau Menyalin dan Memaste) data yang Anda sukai ke kolom A, dan Anda dapat memperpanjang spreadsheet ke kolom data yang lebih panjang dengan menyeret baris terakhir kolom A, C, dan E ke bawah sesuai kebutuhan. Tetapi untuk mengubah lebar yang mulus, Anda harus mengubah persamaan di kolom C atau E dan menyalin perubahannya. Turunkan seluruh kolom Untuk membagi hasil dengan jumlah koefisien sehingga keuntungan bersih adalah satu kesatuan dan area di bawah kurva sinyal yang dihaluskan dipelihara. Lembar kerja UnitGainSmooths. xls dan UnitGainSmooths. ods berisi kumpulan koefisien konvolusi unit-gain untuk persegi empat, segitiga, dan Gaussian dengan lebar 3 sampai 29 dengan format vertikal (kolom) dan horizontal (baris). Anda dapat menyalin dan menempelkannya ke spreadsheet Anda sendiri. Spreadsheet MultipleSmoothing. xls dan MultipleSmoothing. ods menunjukkan metode yang lebih fleksibel dimana koefisien terkandung dalam kelompok 17 sel yang berdekatan (pada baris 5, kolom I sampai Y), sehingga memudahkan untuk mengubah bentuk dan lebar yang halus (up Sampai maksimal 17). Dalam spreadsheet ini, kelancaran diterapkan tiga kali berturut-turut, menghasilkan lebar lancar efektif 49 poin yang diterapkan pada kolom G. Dibandingkan dengan MatlabOctave, spreadsheet jauh lebih lambat, kurang fleksibel, dan kurang mudah otomatis. Misalnya, di spreadsheet ini, untuk mengubah sinyal atau jumlah titik pada sinyal, atau untuk mengubah lebar atau jenis halus, Anda harus memodifikasi spreadsheet di beberapa tempat, sedangkan untuk melakukan hal yang sama dengan menggunakan fungsi fastsmooth MatlabOctave ( Bawah), Anda hanya perlu mengubah argumen masukan dari satu baris kode. Dan menggabungkan beberapa teknik yang berbeda ke dalam satu spreadsheet lebih rumit daripada menulis skrip MatlabOctave yang melakukan hal yang sama. Smoothing di Matlab dan Octave. Fungsi kustom fastsmooth menerapkan pergeseran dan memperbanyak jenis smooths menggunakan algoritma rekursif. (Klik pada link ini untuk memeriksa kode, atau klik kanan untuk mendownload untuk digunakan dalam Matlab). Fastsmooth adalah fungsi Matlab dari bentuk sfastsmooth (a, w, type, edge). Argumen a adalah vektor sinyal input w adalah lebar yang mulus (bilangan bulat positif) menentukan tipe kelancaran: tipe1 memberikan tipe smoothdaular (sliding-average atau boxcar) halus memberikan segitiga yang halus, setara dengan dua lintasan rata-rata geser Tipe3 memberikan pseudo-Gaussian halus, setara dengan tiga lintasan dari rata-rata geser bentuk ini dibandingkan pada gambar di sebelah kiri. (Lihat SmoothingComparison. html untuk perbandingan mode pemulusan ini). Tepi argumen mengontrol bagaimana tepi sinyal (titik w2 pertama dan titik w2 terakhir) ditangani. Jika edge0, ujungnya nol. (Dalam mode ini waktu yang telah berlalu tidak bergantung pada lebar yang mulus. Ini memberikan waktu eksekusi tercepat). Jika ujung1, ujung-ujungnya diratakan dengan smooths lebih kecil mendekati ujungnya. (Dalam mode ini waktu eksekusi meningkat dengan bertambahnya lebar halus). Sinyal yang diratakan dikembalikan sebagai vektor s. (Anda dapat menghentikan dua argumen masukan terakhir: fastsmooth (Y, w, type) yang di smooth dengan edge0 dan fastsmooth (Y, w) smooths dengan type1 dan edge0). Dibandingkan dengan algoritma halus berbasis konvolusi, fastsmooth menggunakan algoritma rekursif sederhana yang biasanya memberikan waktu eksekusi lebih cepat, terutama untuk lebar lancar yang besar, dapat memperlancar sinyal 1.000.000 titik dengan rata-rata sliding 1.000 titik dalam waktu kurang dari 0,1 detik. Heres contoh sederhana dari fastsmooth yang menunjukkan efek pada white noise (grafik). SegmentedSmooth. m. Diilustrasikan di sebelah kanan, saya adalah fungsi pemulusan alfan-lebar tersegmentasi, berdasarkan algoritma fastsmoo, yang dapat berguna jika lebar puncak atau tingkat kebisingan bervariasi secara substansial pada sinyal. Sintaksnya sama dengan fastsmooth. m. Kecuali bahwa argumen input kedua smoothwidths bisa menjadi vektor. SmoothY SegmentedSmooth (Y, smoothwidths, type, ends). Fungsi membagi Y menjadi sejumlah daerah dengan panjang yang sama yang didefinisikan oleh panjang smoothwidths vektor, kemudian menghaluskan masing-masing daerah dengan jenis dan lebar tipe yang halus yang ditentukan oleh elemen smoothwidth vektor. Pada contoh grafis pada gambar di sebelah kanan, smoothwidths31 52 91. which divides up the signal into three regions and smooths the first region with smoothwidth 31, the second with smoothwidth 51, and the last with smoothwidth 91. Any number of smooth widths and sequence of smooth widths can be used . Type help SegmentedSmooth for other examples examples. DemoSegmentedSmooth. m demonstrates the operation with different signals consisting of noisy variable-width peaks that get progressively wider, like the figure on the right. SmoothWidthTest. m is a simple script that uses the fastsmooth function to demonstrate the effect of smoothing on peak height, noise, and signal-to-noise ratio of a peak. You can change the peak shape in line 7, the smooth type in line 8, and the noise in line 9. A typical result for a Gaussian peak with white noise smoothed with a pseudo-Gaussian smooth is shown on the left. Here, as it is for most peak shapes, the optimal signal-to-noise ratio occurs at a smooth ratio of about 0.8. However, that optimum corresponds to a significant reduction in the peak height . which could be a serious problem. A smooth width about half the width of the original unsmoothed peak produces less distortion of the peak but still achieves a reasonable noise reduction. SmoothVsCurvefit. m is a similar script, but is also compares curve fitting as an alternative method to measure the peak height without smoothing . This effect is explored more completely by the text below, which shows an experiment in Matlab or Octave that creates a Gaussian peak, smooths it, compares the smoothed and unsmoothed version, then uses the max, halfwidth. and trapz functions to print out the peak height, halfwidth, and area . (max and trapz are both built-in functions in Matlab and Octave, but you have to download halfwidth. m. To learn more about these functions, type help followed by the function name). x0:.1:10 yexp(-(x-5).2) plot(x, y) ysmoothedfastsmooth(y,11,3,1) plot(x, y,x, ysmoothed, r) disp(max(y) halfwidth(x, y,5) trapz(x, y)) disp(max(ysmoothed) halfwidth(x, ysmoothed,5) trapz(x, ysmoothed) 1 1.6662 1.7725 0.78442 2.1327 1.7725 These results show that smoothing reduces the peak height (from 1 to 0.784) and increases the peak width (from 1.66 to 2.13), but has no effect on the peak area, as long as you measure the total area under the broadened peak. Smoothing is useful if the signal is contaminated by non-normal noise such as sharp spikes or if the peak height, position, or width are measured by simple methods, but there is no need to smooth the data if the noise is white and the peak parameters are measured by least-squares methods, because the results obtained on the unsmoothed data will be more accurate (see CurveFittingC. htmlSmoothing ). The MatlabOctave user-defined function condense. m. condense(y, n). returns a condensed version of y in which each group of n points is replaced by its average, reducing the length of y by the factor n. (For x, y data sets, use this function on both independent variable x and dependent variable y so that the features of y will appear at the same x values). The MatlabOctave user-defined function medianfilter. m. medianfilter(y, w). performs a median-based filter operation that replaces each value of y with the median of w adjacent points (which must be a positive integer). killspikes. m is a threshold-based filter for eliminating narrow spike artifacts. The syntax is fy killspikes(x, y, threshold, width). Each time it finds a positive or negative jump in the data between y(n) and y(n1) that exceeds threshold, it replaces the next width points of data with a linearly interpolated segment spanning x(n) to x(nwidth1), See killspikesdemo. Type help killspikes at the command prompt. ProcessSignal is a MatlabOctave command-line function that performs smoothing and differentiation on the time-series data set x, y (column or row vectors). It can employ all the types of smoothing described above. Type help ProcessSignal. Returns the processed signal as a vector that has the same shape as x, regardless of the shape of y. The syntax is ProcessedProcessSignal(x, y, DerivativeMode, w, type, ends, Sharpen, factor1, factor2, SlewRate, MedianWidth) iSignal is an interactive function for Matlab that performs smoothing for time-series signals using all the algorithms discussed above . including the Savitzky-Golay smooth, a median filter, and a condense function, with keystrokes that allow you to adjust the smoothing parameters continuously while observing the effect on your signal instantly, making it easy to observe how different types and amounts of smoothing effect noise and signal, such as the height, width, and areas of peaks. (Other functions include differentiation, peak sharpening, interpolation, least-squares peak measurement, and a frequency spectrum mode that shows how smoothing and other functions can change the frequency spectrum of your signals). The simple script iSignalDeltaTest demonstrates the frequency response of iSignals smoothing functions by applying them to a single-point spike. allowing you to change the smooth type and the smooth width to see how the the frequency response changes. View the code here or download the ZIP file with sample data for testing. Use the A and Z keys to increase and decrease the smooth width, and the S key to cycle through the available smooth types. Hint: use the Gaussian smooth and keep increasing the smooth width until the peak shows. Note: you can right-click on any of the m-file links on this site and select Save Link As. to download them to your computer for use within Matlab. Unfortunately, iSignal does not currently work in Octave. An earlier version of his page is available in French, at besteonderdelen. nlblogp4169. courtesy of Natalie Harmann and Anna Chekovsky . Last updated February, 2017. This page is part of A Pragmatic Introduction to Signal Processing , created and maintained by Prof. Tom OHaver. Department of Chemistry and Biochemistry, The University of Maryland at College Park. Comments, suggestions, bug reports, and questions should be directed to Prof. OHaver at tohumd. edu. Unique visits since May 17, 2008:
No comments:
Post a Comment