Tuesday 11 July 2017

Rekursif Moving Average Filter Matlab


Filter FIR, filter IIR, dan persamaan perbedaan koefisien konstanta linier Filter Penyebab Timbal Rata-rata (FIR) Weve membahas sistem di mana setiap sampel keluaran adalah jumlah tertimbang (tertentu) sampel masukan. Mari kita gunakan sistem jumlah tertimbang kausal, di mana kausal berarti bahwa sampel keluaran tertentu hanya bergantung pada sampel masukan saat ini dan masukan lainnya di awal rangkaian. Baik sistem linear pada umumnya, maupun sistem respon impuls terbatas pada khususnya, perlu kausal. Namun, kausalitas mudah untuk semacam analisis yang akan segera dijelajahi. Jika kita melambangkan input sebagai nilai dari vektor x. Dan output sebagai nilai yang sesuai dari vektor y. Maka sistem seperti itu dapat ditulis sebagai tempat nilai b quotightightsquot diterapkan pada sampel masukan saat ini dan sebelumnya untuk mendapatkan sampel keluaran saat ini. Kita bisa memikirkan ungkapan sebagai sebuah persamaan, dengan arti sama dengan tanda yang sama, atau sebagai instruksi prosedural, sama dengan tanda makna tugas. Mari kita tuliskan ungkapan untuk setiap sampel keluaran sebagai lingkaran MATLAB dari pernyataan penugasan, di mana x adalah vektor masukan N-panjang, dan b adalah vektor bobot M-panjang. Untuk menangani kasus khusus di awal, kita akan menanamkan x dalam vektor xu yang lebih panjang yang sampel M-1 pertamanya nol. Kami akan menulis penjumlahan tertimbang untuk setiap y (n) sebagai hasilkali dalam, dan akan melakukan manipulasi masukan (seperti membalikkan b) sampai akhir ini. Sistem semacam ini sering disebut filter rata-rata bergerak, untuk alasan yang jelas. Dari diskusi kita sebelumnya, harus jelas bahwa sistem semacam itu bersifat linier dan bergeser-invarian. Tentu saja, akan jauh lebih cepat untuk menggunakan konveksi fungsi MATLAB conv () alih-alih mafilt kita (). Alih-alih mempertimbangkan sampel M-1 pertama dari input menjadi nol, kita dapat menganggapnya sama dengan sampel M-1 terakhir. Ini sama dengan memperlakukan input secara periodik. Nah gunakan cmafilt () sebagai nama fungsi, modifikasi kecil dari fungsi mafilt sebelumnya (). Dalam menentukan respons impuls suatu sistem, biasanya tidak ada perbedaan antara keduanya, karena semua sampel masukan non-awal adalah nol: Karena sistem semacam ini linier dan bergeser-invarian, kita tahu bahwa pengaruhnya terhadap Sinusoid hanya akan berskala dan menggesernya. Di sini penting bahwa kita menggunakan versi melingkar Versi sirkular-konvolusi digeser dan diskalakan sedikit, sementara versi dengan konvolusi biasa terdistorsi sejak awal. Mari kita lihat apa penskalaan dan pergeseran yang tepat dengan menggunakan fft: Baik input dan output hanya memiliki amplitudo pada frekuensi 1 dan -1, seperti seharusnya, mengingat inputnya adalah sinusoid dan sistemnya linier. Nilai output lebih besar dengan rasio 10.62518 1,3281. Inilah keuntungan dari sistem. Bagaimana dengan fase Kita hanya perlu melihat di mana amplitudonya tidak nol: Masukan memiliki fase pi2, seperti yang kita minta. Fase keluaran digeser oleh 1.0594 tambahan (dengan tanda berlawanan untuk frekuensi negatif), atau sekitar 16 dari siklus ke kanan, seperti yang dapat kita lihat pada grafik. Sekarang mari kita coba sinusoid dengan frekuensi yang sama (1), tapi bukannya amplitudo 1 dan fase pi2, mari kita coba amplitudo 1.5 dan fase 0. Kita tahu bahwa hanya frekuensi 1 dan -1 yang memiliki amplitudo nol, jadi mari kita lihat saja. Pada mereka: Sekali lagi rasio amplitudo (15.937712.0000) adalah 1,3281 - dan untuk fase ini lagi digeser oleh 1.0594 Jika contoh-contoh ini khas, kita dapat memprediksi efek sistem kita (respons impuls .1, 2, 3 .4 .5) pada sinusoid dengan frekuensi 1 - amplitudo akan meningkat dengan faktor 1,3281 dan fase (frekuensi positif) akan digeser oleh 1,0594. Kita bisa terus menghitung efek sistem ini terhadap sinusoid frekuensi lain dengan metode yang sama. Tapi ada cara yang lebih sederhana, dan yang menentukan titik umum. Karena (lingkaran) konvolusi dalam domain waktu berarti perkalian dalam domain frekuensi, dari sini berikut Dengan kata lain, DFT dari respon impuls adalah rasio DFT dari keluaran ke DFT dari input. Dalam hubungan ini koefisien DFT adalah bilangan kompleks. Karena abs (c1c2) abs (c1) abs (c2) untuk semua bilangan kompleks c1, c2, persamaan ini memberi tahu kita bahwa spektrum amplitudo respon impuls akan selalu menjadi rasio spektrum amplitudo output dengan input . Dalam kasus spektrum fase, sudut (c1c2) sudut (c1) - angle (c2) untuk semua c1, c2 (dengan syarat bahwa fasa yang berbeda dengan n2pi dianggap sama). Oleh karena itu spektrum fase respon impuls akan selalu menjadi perbedaan antara spektrum fase keluaran dan masukan (dengan koreksi apapun sebesar 2pi diperlukan untuk menjaga hasil antara - pi dan pi). Kita dapat melihat efek fasa lebih jelas jika kita melepaskan representasi fase, yaitu jika kita menambahkan berbagai kelipatan 2pi sesuai kebutuhan untuk meminimalkan lompatan yang dihasilkan oleh sifat periodik fungsi sudut (). Meskipun amplitudo dan fasa biasanya digunakan untuk presentasi grafis dan bahkan tabular, karena ini adalah cara intuitif untuk memikirkan efek suatu sistem pada berbagai komponen frekuensi masukannya, koefisien Fourier yang kompleks lebih bermanfaat secara aljabar, karena memungkinkan Ekspresi sederhana dari hubungan Pendekatan umum yang baru saja kita lihat akan bekerja dengan filter sewenang-wenang dari jenis sketsa, di mana setiap sampel keluaran adalah jumlah tertimbang dari beberapa kumpulan sampel masukan. Seperti disebutkan sebelumnya, ini sering disebut filter Respon Finite Impulse, karena respons impuls adalah ukuran terbatas, atau kadang-kadang filter Moving Average. Kita dapat menentukan karakteristik respons frekuensi dari filter semacam itu dari FFT respons impulsnya, dan kita juga dapat merancang filter baru dengan karakteristik yang diinginkan oleh IFFT dari spesifikasi respons frekuensi. Filter Autoregresif (IIR) Tidak akan ada gunanya memiliki nama untuk filter FIR kecuali ada beberapa jenis lain untuk membedakannya, dan oleh karena itu mereka yang telah mempelajari pragmatik tidak akan terkejut saat mengetahui bahwa memang ada jenis lain yang hebat. Filter waktu-invariant linier. Filter ini terkadang disebut rekursif karena nilai keluaran sebelumnya (dan juga input sebelumnya) penting, walaupun algoritme umumnya ditulis menggunakan konstruk iteratif. Mereka juga disebut filter Infinite Impulse Response (IIR), karena pada umumnya respons mereka terhadap impuls berlangsung selamanya. Mereka juga kadang-kadang disebut filter autoregresif, karena koefisiennya dapat dianggap sebagai hasil melakukan regresi linier untuk mengekspresikan nilai sinyal sebagai fungsi dari nilai sinyal sebelumnya. Hubungan filter FIR dan IIR dapat dilihat dengan jelas dalam persamaan perbedaan koefisien konstanta linier, yaitu menetapkan jumlah output tertimbang sama dengan jumlah input tertimbang. Ini seperti persamaan yang kita berikan sebelumnya untuk filter FIR kausal, kecuali bahwa selain jumlah input tertimbang, kita juga memiliki jumlah output tertimbang. Jika kita ingin menganggap ini sebagai prosedur untuk menghasilkan sampel keluaran, kita perlu mengatur ulang persamaan untuk mendapatkan ekspresi untuk sampel keluaran saat ini y (n), Mengadopsi konvensi bahwa a (1) 1 (misalnya dengan menskalakan yang lain sebagai Dan bs), kita bisa menyingkirkan istilah 1a (1): y (n) b (1) x (n) b (2) x (n-1). B (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Jika semua a (n) selain a (1) nol, ini akan mengurangi ke teman lama kita filter kausal FIR. Ini adalah kasus umum filter LTI (sebabal), dan diimplementasikan oleh filter fungsi MATLAB. Mari kita lihat kasus di mana koefisien b selain b (1) adalah nol (bukan kasus FIR, di mana a (n) adalah nol): Dalam kasus ini, sampel keluaran saat ini y (n) dihitung sebagai Kombinasi tertimbang dari sampel masukan saat ini x (n) dan sampel keluaran sebelumnya y (n-1), y (n-2), dll. Untuk mendapatkan ide tentang apa yang terjadi dengan filter semacam itu, mari kita mulai dengan kasus di mana: Artinya, sampel keluaran saat ini adalah jumlah sampel masukan saat ini dan setengah dari sampel keluaran sebelumnya. Nah ambil impuls input melalui beberapa langkah waktu, satu per satu. Harus jelas pada titik ini bahwa kita dapat dengan mudah menulis sebuah ekspresi untuk nilai sampel keluaran ke-n: hanya saja (jika MATLAB dihitung dari 0, ini akan menjadi sederhana .5n). Karena apa yang kita hitung adalah respons impuls dari sistem, kita telah menunjukkan dengan contoh bahwa respons impuls benar-benar dapat memiliki banyak sampel tanpa nol. Untuk menerapkan filter first-order sepele ini di MATLAB, kita bisa menggunakan filter. Panggilan akan terlihat seperti ini: dan hasilnya adalah: Apakah bisnis ini benar-benar masih linier Kita dapat melihat secara empiris ini: Untuk pendekatan yang lebih umum, perhatikan nilai dari suatu sampel keluaran y (n). Dengan substitusi berturut-turut kita bisa menulis ini karena ini sama seperti teman lama kita dengan bentuk konvolusi dari filter FIR, dengan respons impuls yang diberikan oleh ungkapan .5k. Dan panjang respon impuls tak terbatas. Jadi argumen yang sama dengan yang kita gunakan untuk menunjukkan bahwa filter FIR linier sekarang akan diterapkan di sini. Sejauh ini sepertinya sangat merepotkan. Apa keseluruhan penyelidikan ini baik untuk menjawab pertanyaan ini secara bertahap, dimulai dengan sebuah contoh. Ini bukan kejutan besar bahwa kita bisa menghitung eksponensial sampel dengan perkalian rekursif. Mari kita lihat sebuah filter rekursif yang melakukan sesuatu yang kurang jelas. Kali ini juga membuat filter orde kedua, sehingga panggilan untuk menyaring akan menjadi bentuk. Mari mengatur koefisien output kedua a2 ke -2cos (2pi40), dan koefisien output ketiga a3 ke 1, dan lihat impulsnya. tanggapan. Tidak terlalu berguna sebagai filter, sebenarnya, tapi menghasilkan gelombang sinus sampel (dari dorongan hati) dengan tiga kalikan-menambahkan per sampel Untuk memahami bagaimana dan mengapa hal itu terjadi, dan bagaimana filter rekursif dapat dirancang dan dianalisis dalam Kasus yang lebih umum, kita perlu melangkah mundur dan melihat beberapa properti bilangan kompleks lainnya, dalam perjalanan untuk memahami transformasi z. Documentation Description yulewalk merancang filter digital IIR rekursif menggunakan kuadrat-terkecil yang sesuai dengan respons frekuensi tertentu. . B, yulewalk (n, f, m) mengembalikan vektor baris, b dan a. Mengandung koefisien n1 dari orde n filter IIR yang karakteristik frekuensi besarnya kira-kira sesuai dengan yang diberikan pada vektor f dan m: f adalah vektor titik frekuensi, yang ditentukan dalam kisaran antara 0 dan 1, di mana 1 sesuai dengan setengah frekuensi sampel (Frekuensi Nyquist). Titik pertama f harus 0 dan titik terakhir 1. Semua titik tengah harus dalam urutan meningkat. Poin frekuensi duplikat diperbolehkan, sesuai dengan langkah-langkah dalam respons frekuensi. M adalah vektor yang berisi respons magnitudo yang diinginkan pada titik-titik yang ditentukan dalam f. F dan m harus sama panjang Plot (f, m) menampilkan bentuk filter. Koefisien filter keluaran dipesan dalam turunan z. B (z) A (z) b (1) b (2) z x2212 1 x22EF b (n 1) z x2212 na (1) a (2) z x2212 1 x22EF a (n 1) z x2212 n Saat menentukan Respon frekuensi, hindari transisi yang terlalu tajam dari passband ke stopband. Anda mungkin perlu bereksperimen dengan kemiringan wilayah transisi untuk mendapatkan desain filter terbaik. Pilih output CountryDocumentation tsmovavg (tsobj, s, lag) mengembalikan rata-rata pergerakan sederhana untuk objek deret waktu keuangan, tsobj. Lag menunjukkan jumlah titik data sebelumnya yang digunakan dengan titik data saat ini saat menghitung moving average. Output tsmovavg (vektor, s, lag, redup) mengembalikan rata-rata bergerak sederhana untuk sebuah vektor. Lag menunjukkan jumlah titik data sebelumnya yang digunakan dengan titik data saat ini saat menghitung moving average. Output tsmovavg (tsobj, e, timeperiod) mengembalikan rata-rata pergerakan tertimbang eksponensial untuk objek seri waktu keuangan, tsobj. Rata-rata pergerakan eksponensial adalah rata-rata bergerak tertimbang, di mana timeperiod menentukan jangka waktu. Rata-rata pergerakan eksponensial mengurangi lag dengan menerapkan bobot lebih pada harga terkini. Sebagai contoh, moving average moving average 10-periode harga paling baru 18.18. Persentase eksponensial 2 (TIMEPER 1) atau 2 (WINDOWSIZE 1). Output tsmovavg (vektor, e, timeperiod, redup) mengembalikan rata-rata pergerakan tertimbang eksponensial untuk sebuah vektor. Rata-rata pergerakan eksponensial adalah rata-rata bergerak tertimbang, di mana timeperiod menentukan jangka waktu. Rata-rata pergerakan eksponensial mengurangi lag dengan menerapkan bobot lebih pada harga terkini. Sebagai contoh, moving average moving average 10-periode harga paling baru 18.18. (2 (timeperiod 1)). Output tsmovavg (tsobj, t, numperiod) mengembalikan rata-rata pergerakan segitiga untuk objek deret waktu keuangan, tsobj. Rata-rata bergerak segitiga dua kali menghaluskan data. Tsmovavg menghitung rata-rata bergerak sederhana pertama dengan lebar jendela ceil (numperiod 1) 2. Kemudian menghitung rata-rata bergerak sederhana kedua pada moving average pertama dengan ukuran jendela yang sama. Output tsmovavg (vektor, t, numperiod, redup) mengembalikan rata-rata pergerakan segitiga untuk vektor. Rata-rata bergerak segitiga dua kali menghaluskan data. Tsmovavg menghitung rata-rata bergerak sederhana pertama dengan lebar jendela ceil (numperiod 1) 2. Kemudian menghitung rata-rata bergerak sederhana kedua pada moving average pertama dengan ukuran jendela yang sama. Output tsmovavg (tsobj, w, weight) mengembalikan rata-rata bergerak tertimbang untuk objek seri waktu keuangan, tsobj. Dengan menyediakan bobot untuk setiap elemen di jendela bergerak. Panjang vektor bobot menentukan ukuran jendela. Jika faktor bobot yang lebih besar digunakan untuk harga yang lebih baru dan faktor yang lebih kecil untuk harga sebelumnya, trennya lebih responsif terhadap perubahan terkini. Output tsmovavg (vektor, w, bobot, redup) mengembalikan rata-rata bergerak tertimbang untuk vektor dengan memberikan bobot untuk setiap elemen di jendela bergerak. Panjang vektor bobot menentukan ukuran jendela. Jika faktor bobot yang lebih besar digunakan untuk harga yang lebih baru dan faktor yang lebih kecil untuk harga sebelumnya, trennya lebih responsif terhadap perubahan terkini. Output tsmovavg (tsobj, m, numperiod) mengembalikan moving moving average untuk objek time series keuangan, tsobj. Rata-rata pergerakan yang dimodifikasi sama dengan rata-rata pergerakan sederhana. Pertimbangkan numperiod argumen menjadi lag dari rata-rata bergerak sederhana. Moving moving average pertama dihitung seperti simple moving average. Nilai selanjutnya dihitung dengan menambahkan harga baru dan mengurangkan rata-rata terakhir dari jumlah yang dihasilkan. Output tsmovavg (vektor, m, numperiod, redup) mengembalikan moving moving average untuk vektor. Rata-rata pergerakan yang dimodifikasi sama dengan rata-rata pergerakan sederhana. Pertimbangkan numperiod argumen menjadi lag dari rata-rata bergerak sederhana. Moving moving average pertama dihitung seperti simple moving average. Nilai selanjutnya dihitung dengan menambahkan harga baru dan mengurangkan rata-rata terakhir dari jumlah yang dihasilkan. Dim 8212 dimensi untuk beroperasi di sepanjang bilangan bulat positif dengan nilai 1 atau 2 Dimensi untuk beroperasi bersamaan, ditentukan sebagai bilangan bulat positif dengan nilai 1 atau 2. redup adalah argumen input opsional, dan jika tidak disertakan sebagai input, default Nilai 2 diasumsikan Default dim 2 menunjukkan matriks berorientasi baris, di mana setiap baris adalah variabel dan setiap kolom adalah observasi. Jika dim 1. input diasumsikan sebagai vektor kolom atau matriks yang berorientasi pada matriks, dimana masing-masing kolom adalah variabel dan setiap baris pengamatan. E 8212 Indikator untuk vektor karakter rata-rata pergerakan eksponensial Rata-rata pergerakan eksponensial adalah rata-rata pergerakan tertimbang, dimana timeperiod adalah periode waktu dari rata-rata pergerakan eksponensial. Rata-rata pergerakan eksponensial mengurangi lag dengan menerapkan bobot lebih pada harga terkini. Sebagai contoh, kenaikan rata-rata bergerak eksponensial 10 periode harga paling baru sebesar 18,18. Persentase eksponensial 2 (TIMEPER 1) atau 2 (WINDOWSIZE 1) timeperiod 8212 Panjang jangka waktu bilangan bulat negatif Negatif Negara Anda

No comments:

Post a Comment