Bagaimana cara menambahkan harmonik aneh atau genap ke sinyal titik mengambang?
Apakah saya harus menggunakan tanh atau dosa?
Apa yang saya coba lakukan adalah mencapai beberapa efek distorsi yang sangat sederhana, tetapi saya kesulitan menemukan referensi yang tepat. Apa yang saya suka adalah sesuatu yang mirip dengan apa yang dilakukan Vulture Budaya dengan menambahkan harmonik aneh dan bahkan dalam pengaturan pentode dan triode. Nilai float adalah sampel tunggal dalam aliran sampel.
audio
signal-detection
c
distortion
Carlos Barbosa
sumber
sumber
Jawaban:
Apa yang dilakukan kotak distorsi Anda adalah menerapkan fungsi transfer non-linear ke sinyal:
output = function(input)
atauy = f(x)
. Anda hanya menerapkan fungsi yang sama untuk setiap sampel input individu untuk mendapatkan sampel output yang sesuai.Ketika sinyal input Anda adalah gelombang sinus, jenis distorsi tertentu dihasilkan disebut distorsi harmonik . Semua nada baru yang dibuat oleh distorsi adalah harmonik sempurna dari sinyal input:
Jadi ya, jika Anda ingin menambahkan harmonik aneh, masukkan sinyal Anda melalui fungsi transfer aneh-simetris seperti
y = tanh(x)
atauy = x^3
.Jika Anda hanya ingin menambahkan harmonik, masukkan sinyal Anda melalui fungsi transfer yang bahkan simetris ditambah fungsi identitas, untuk menjaga fundamental asli. Sesuatu seperti
y = x + x^4
atauy = x + abs(x)
. Thex +
menjaga fundamental yang seharusnya dapat dihancurkan, sementarax^4
bahkan-simetris dan hanya menghasilkan bahkan harmonik (termasuk DC, yang mungkin Anda ingin menghapus setelah itu dengan high-pass filter).Bahkan simetri:
Fungsi transfer dengan simetri genap:
Sinyal asli berwarna abu-abu, dengan sinyal terdistorsi berwarna biru dan spektrum sinyal terdistorsi hanya memperlihatkan harmonik dan tidak ada fundamental:
Simetri ganjil:
Fungsi transfer dengan simetri ganjil:
Sinyal asli berwarna abu-abu, dengan sinyal terdistorsi berwarna biru dan spektrum sinyal terdistorsi hanya menunjukkan harmonik aneh, termasuk fundamental:
Bahkan simetri + fundamental:
Fungsi transfer dengan fungsi simetri plus identitas:
Sinyal asli berwarna abu-abu, dengan sinyal terdistorsi berwarna biru dan spektrum sinyal terdistorsi menunjukkan harmonik plus fundamental:
Inilah yang orang bicarakan ketika mereka mengatakan bahwa kotak distorsi "menambah harmonik aneh", tetapi itu tidak benar-benar akurat. Masalahnya adalah bahwa distorsi harmonik hanya ada untuk input gelombang sinus . Kebanyakan orang memainkan instrumen, bukan gelombang sinus, sehingga sinyal input mereka memiliki banyak komponen gelombang sinus. Dalam hal ini, Anda mendapatkan distorsi intermodulasi , bukan distorsi harmonik, dan aturan tentang harmonik aneh dan bahkan tidak lagi berlaku. Misalnya, menerapkan penyearah gelombang penuh (bahkan simetri) pada sinyal berikut:
Jadi spektrum output sangat tergantung pada sinyal input, bukan perangkat distorsi, dan setiap kali seseorang mengatakan " amplifier / efek kami menghasilkan lebih banyak musikal bahkan harmonik orde ", Anda harus membawanya dengan sebutir garam .
(Ada beberapa kebenaran pada klaim bahwa suara dengan harmonik bahkan "lebih musikal" daripada suara dengan hanya harmonik aneh , tetapi spektrum ini sebenarnya tidak diproduksi di sini, seperti dijelaskan di atas, dan klaim ini hanya valid dalam konteks Timbangan barat tetap saja. Suara harmonik aneh (gelombang persegi, klarinet, dll.) Lebih konsonan pada skala musik Bohlen-Pierce yang didasarkan pada rasio 3: 1, bukannya 2: 1 oktaf.)
Satu hal yang perlu diingat adalah bahwa proses non-linear digital dapat menyebabkan aliasing, yang dapat didengar dengan buruk. Lihat Apakah ada yang namanya distorsi non-linear terbatas-band?
sumber
Apa yang Anda coba capai disebut distorsi . Teknik ini digunakan ketika Anda ingin menambahkan beberapa harmonisa ke sinyal yang diberikan. Anda memiliki 2 metode dasar untuk melakukan ini: waveshaping dan ring modulation. Saya akan mencoba menjelaskan yang pertama.
Waveshaping
Waveshaping memungkinkan Anda untuk membuat distorsi melalui penggunaan fungsi yang dipilih secara khusus . Salah satu metode yang berguna adalah polinomial Chebyshev . Mereka memiliki sifat yang sangat penting ketika mengajukan melalui mereka sinyal harmonik dengan satuan amplitudo (misalnya, gelombang sinus), kami memperoleh sinyal yang sama, hanya beberapa kali lebih tinggi. Pengganda frekuensi akan tergantung pada urutan polinomial. Semua polinomial terlihat seperti ini:
Dalam kasus kami, setiap elemen menghasilkan harmonika, dan kemudian semuanya bertambah. Tampilan masing-masing anggota ditentukan oleh hubungan perulangan berikut:
Di dalamnya, setiap anggota ditentukan berdasarkan yang sebelumnya, semuanya dimulai dengan nol, dalam kasus kami sama dengan satu, dan yang pertama, yang sama dengan x (tetapi Anda dapat mengubahnya, tentu saja)
Mengetahui mereka, Anda dapat menentukan yang ketiga dan sebagainya:
Seperti yang Anda duga, istilah kedua - harmonik pertama, dan yang ketiga - yang kedua dan seterusnya.
Fitur lain dari polinomial Chebyshev, ketika melalui mereka memberikan sinyal yang amplitudo kurang dari unit, output suara kurang jenuh dengan harmonik. Ini memungkinkan untuk membuat efek overdrive.
Setelah semua, sinyal Anda adalah sebuah array titik mengambang, Anda dapat memilih bagian mana pun dari array Anda dan menerapkannya ke polinomial Chebyshev, yang akan menciptakan harmonik tambahan. Dan menggunakan fungsi akan cukup baik untuk ini.sin
sumber