Selama konvolusi pada sinyal, mengapa kita perlu membalik respon impuls selama proses?
convolution
impulse-response
winuall
sumber
sumber
Jawaban:
Diadaptasi dari jawaban untuk pertanyaan yang berbeda (sebagaimana disebutkan dalam komentar) dengan harapan bahwa pertanyaan ini tidak akan dilontarkan berulang kali oleh Komunitas Wiki sebagai salah satu Pertanyaan Top ....
Kami memecah sinyal inputx menjadi jumlah sinyal pulsa unit yang diskalakan. Respons sistem terhadap sinyal pulsa unit
⋯, 0, 0, 1, 0, 0,⋯ adalah respons impuls atau respons pulsa
Demikian pula, nilai input tunggal atau menciptakan x [ 1 ] ( ⋯ , 0 , 0 ,x[1]
menciptakan respons
0 , x [ 1 ] h [ 0 ] , x [ 1
maka Anda bisa mendapatkan jawabannya dengan menjumlahkan kolom ke - untuk mendapatkan y [ n ]n
formula konvolusi tercinta yang membingungkan generasi siswa karena respon impuls tampaknya "terbalik" atau berjalan mundur dalam waktu. Tapi, apa yang tampaknya dilupakan orang adalah bahwa alih-alih kita bisa menulis
y [ n ]
sumber
Berikut adalah contoh C / C ++ yang menunjukkan bahwa konvolusi dapat dilakukan tanpa menggunakan respons impuls secara terbalik. Jika Anda memeriksa
convolve_scatter()
fungsi, tidak ada variabel yang dinegasikan di mana pun. Ini hamburan konvolusi mana setiap sampel masukan tersebar (dijumlahkan) ke beberapa sampel output dalam memori, menggunakan bobot yang diberikan oleh respon impulse. Ini boros karena sampel keluaran perlu dibaca dan ditulis beberapa kali.Biasanya konvolusi dilakukan sebagai pengumpulan konvolusi, seperti pada
convolve_gather()
. Dalam metode ini, setiap sampel keluaran dibentuk secara terpisah, dengan mengumpulkan (menjumlahkan) untuk memasukkan sampel, dengan respon impuls terbalik sebagai bobot. Sampel output berada di register prosesor yang digunakan sebagai akumulator saat ini dilakukan. Ini biasanya merupakan metode pilihan, karena hanya akan ada satu memori tulis per setiap sampel yang difilter. Sekarang ada lebih banyak memori yang dibaca dari input, tetapi hanya sebanyak yang ada memori yang dibaca dari output dalam metode hamburan.Ini melingkupi urutan:
dan menggunakan kedua metode metode konvolusi:
Saya tidak dapat membayangkan siapa pun menggunakan metode hamburan, kecuali filternya berbeda-beda waktu, dalam hal ini kedua metode akan menghasilkan hasil yang berbeda dan satu mungkin lebih tepat.
sumber
Ini hanya 'dibalik' untuk perhitungan yang searah.
@Dilip menjelaskan apa integral / penjumlahan konvolusi mewakili, tetapi untuk menjelaskan mengapa salah satu dari dua fungsi input (sering
h(t)
) dibalik untuk tujuan perhitungan, pertimbangkan sistem waktu-diskrit dengan inputx[n]
dan respons impulsh[n]
:Anda dapat mengambil fungsi input Anda
x[n]
, dan untuk setiap sampel yang bukan nol *x[n]
hitung respons impuls yang diskalakan dari sampeln
dan terus sampai waktu yang dialihkanh[n]
turun ke nol (dengan asumsi sebab-akibath[n]
). Ini tidak melibatkan 'membalik' (atau lebih tepatnya 'pembalikan waktu') dari salah satux[n]
atauh[n]
. Namun, pada akhirnya Anda harus menambahkan / menumpangkan semua 'gema' skala + yang digeser dari respons impuls untuk setiap yang bukan nolx[n]
.Atau , untuk kenyamanan Anda dapat membalikkan waktu salah satu fungsi tentang asal waktu (biasanya 0), membuat perhitungan Anda {multiply, add, multiply, add, ...} alih-alih {multiply, multiply, ..., add , tambahkan, ...}. Ini menghasilkan sinyal keluaran yang sama karena akan melakukan penggandaan yang sama persis dan menambah operasi. Sebagai contoh, pikirkan tentang kontribusi output dari sinyal input bukan nol pada waktu 0
x[0]
. Kapank
= 0 untuk persamaanh[n]
x[n]
, yaitux[0]h[0]
. Kemudian, peningkatank
satu akan bergeserh[n]
ke kanan satu langkah waktu, sehinggah[n]
entri kedua yang terbalik waktu (h[1]
) sekarang akan diletakkan di atasx[0]
, menunggu untuk dikalikan. Ini akan menghasilkan kontribusi yang diinginkanx[0]h[1]
pada waktunyan=1
, sama seperti yang telah dilakukan dalam metode sebelumnya.* Saya katakan non-nol
x[n]
karenah[n]
y[n]
sumber
Pada indeks c [n], konvolusi a [n] dan b [n], sedemikian rupa sehingga:
"c [n] adalah penjumlahan dari semua produk (a [k] b [m]) sedemikian sehingga m + k = n," jadi m = n - k atau k = n - m, yang berarti bahwa salah satu urutan harus dibalik.
Sekarang mengapa konvolusi berperilaku seperti ini pada awalnya? Karena hubungannya dengan penggandaan polinomial.
Mengalikan dua polinomial menghasilkan polinomial baru dengan koefisiensi. Koefisien dari polinomial produk menentukan operasi konvolusi. Sekarang, dalam pemrosesan sinyal, fungsi transfer - Transformasi Laplace atau z-transform adalah polinomial ini, dengan masing-masing co-efisien sesuai dengan penundaan waktu yang berbeda. Menyesuaikan koefisien produk dan multiplikasi menghasilkan fakta bahwa 'penggandaan dalam satu representasi sesuai dengan konvolusi dalam representasi yang diubah'.
sumber
Selama konvolusi, tidak ada "flip" dari respon impuls yang perlu terjadi sama sekali ...
Namun, jika Anda ingin mencegah perubahan fasa apa pun, Anda dapat membelit sinyal dengan respons impuls dan kemudian membalikkan respons impuls dan memutar kembali untuk membatalkan efek fase.
Dalam pemrosesan offline, Anda dapat dengan mudah membalikkan sinyal setelah konvolusi pertama untuk mendapatkan kesimpulan yang sama (seperti yang disarankan komentar).
sumber
sumber