Saturday 8 July 2017

Moving Average Filter Matlab Conv


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 tetapi 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 bawah 2 baris 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. Komputasi Im array 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. Bisakah ada yang menjelaskan Jika ada kaitannya dengan bobot nilai: itu tidak benar 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 konv dan cconv untuk informasi lebih lanjut jika Anda belum melakukannya.29 September 2013 Moving average by konvolution Apa itu rata-rata bergerak dan apakah gunanya untuk bagaimana moving averaging dilakukan dengan menggunakan konvolusi Moving average adalah operasi sederhana Biasanya digunakan untuk menekan kebisingan sinyal: kita tetapkan nilai masing-masing titik ke rata-rata nilai di lingkungannya. Dengan rumus: Disini x adalah input dan y adalah sinyal output, sedangkan ukuran jendela adalah w, seharusnya aneh. Rumus di atas menggambarkan operasi simetris: sampel diambil dari kedua sisi titik sebenarnya. Berikut adalah contoh kehidupan nyata. Titik di mana jendela diletakkan sebenarnya berwarna merah. Nilai di luar x seharusnya nol: Untuk bermain-main dan melihat efek rata-rata bergerak, lihatlah demonstrasi interaktif ini. Cara melakukannya dengan konvolusi Seperti yang mungkin Anda ketahui, menghitung rata-rata pergerakan sederhana sama dengan konvolusi: pada kedua kasus, sebuah jendela tergelincir sepanjang sinyal dan elemen di jendela diringkas. Jadi, cobalah untuk melakukan hal yang sama dengan menggunakan konvolusi. Gunakan parameter berikut: Output yang diinginkan adalah: Sebagai pendekatan pertama, mari kita coba apa yang kita dapatkan dengan menggabungkan sinyal x dengan kernel k berikut: Outputnya persis tiga kali lebih besar dari yang diharapkan. Bisa juga dilihat, bahwa nilai output adalah rangkuman ketiga elemen di jendela. Hal ini karena selama konvolusi jendela meluncur, semua elemen di dalamnya dikalikan dengan satu dan kemudian diringkas: yk 1 cdot x 1 cdot x 1 cdot x Untuk mendapatkan nilai y yang diinginkan. Output harus dibagi dengan 3: Dengan formula termasuk pembagiannya: Tapi bukankah optimal melakukan pembagian selama konvolusi Inilah ide dengan menata ulang persamaan: Jadi kita akan menggunakan kernel k berikut: Dengan cara ini kita akan Mendapatkan output yang diinginkan: Secara umum: jika kita ingin melakukan moving average dengan konvolusi yang memiliki ukuran jendela w. Kita akan menggunakan kernel k berikut: Fungsi sederhana yang melakukan moving average adalah: Contoh penggunaan adalah:

No comments:

Post a Comment