Wednesday 26 July 2017

Moving Average Command In Matlab


Dibuat pada hari Rabu, 08 Oktober 2008 20:04 Terakhir Diperbaharui pada Kamis, 14 Maret 2013 01:29 Ditulis oleh Batuhan Osmanoglu Hits: 41415 Moving Average Di Matlab Seringkali saya mendapati diri saya membutuhkan data rata-rata saya harus mengurangi sedikit kebisingan. sedikit. Saya menulis beberapa fungsi untuk melakukan apa yang saya inginkan, tapi matlabs yang dibangun dengan fungsi filter bekerja dengan cukup baik. Disini saya menulis tentang data rata-rata 1D dan 2D. Filter 1D dapat direalisasikan dengan menggunakan fungsi filter. Fungsi filter memerlukan setidaknya tiga parameter masukan: koefisien numerator untuk filter (b), koefisien penyebut untuk filter (a), dan data (X) tentu saja. Filter rata-rata yang sedang berjalan dapat didefinisikan hanya dengan: Untuk data 2D kita bisa menggunakan fungsi Matlabs filter2. Untuk informasi lebih lanjut tentang bagaimana filter bekerja, Anda dapat mengetikkan: Berikut adalah penerapan filter rata-rata 16 by 16 yang cepat dan kotor. Pertama kita perlu mendefinisikan filternya. Karena semua yang kita inginkan adalah kontribusi yang setara dari semua tetangga kita bisa menggunakan fungsinya. Kita membagi semuanya dengan 256 (1616) karena kita tidak ingin mengubah tingkat umum (amplitudo) sinyal. Untuk menerapkan filter, kita dapat mengatakannya di bawah ini Berikut adalah hasil fase interferogram SAR. Dalam hal ini Range berada pada sumbu Y dan Azimuth dipetakan pada sumbu X. Filternya lebar 4 piksel dengan lebar Rentang dan 16 piksel di Azimuth. I 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.Menggunakan MATLAB, bagaimana saya bisa menemukan rata-rata pergerakan 3 hari 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:

No comments:

Post a Comment