Saya mencoba untuk mengkalibrasi speaker ultrasonik dengan tujuan memancarkan sinyal yang dapat diprediksi, tetapi sayangnya saya terus mengalami masalah, mungkin karena kurangnya DSP-fu.
Sedikit latar belakang
Saya ingin dapat memutar suara sedekat mungkin dengan rekaman yang saya kalibrasi. Sejauh yang saya mengerti teori, saya perlu menemukan fungsi transfer speaker dan mendekonvolusi sinyal yang ingin saya pancarkan dengannya. Sesuatu seperti ini (dalam domain frekuensi):
X -> H -> XH
Di mana Xadalah sinyal yang dipancarkan Hadalah fungsi transfer speaker dan XHmerupakan Xkali H. Divisi ( ./) sekarang harus memberi saya H.
Sekarang, untuk memancarkan sinyal terkalibrasi, itu harus dibagi dengan H:
X/H -> H -> X
Apa yang telah dilakukan
- Speaker ditempatkan dan mikrofon yang dikalibrasi terpisah 1 m pada tripod.
- Tercatat 30+ linear menyapu 150KHz-20KHz, panjang 20ms, dan direkam @ 500 KS / s.
- Sinyal selaras dan rata-rata dengan skrip Matlab / Oktaf di bawah ini, di bawah skrip sinyal yang dihasilkan dapat dilihat.
files = dir('Mandag*');
rng = [1.5e6, 1.52e6];
[X, fs] = wavread(files(1).name, rng);
X = X(:,1);
for i=2:length(files)
[Y, fs] = wavread(files(i).name, rng);
sig = Y(:,1);
[x, off] = max(xcorr(X', sig'));
off = length(X) - off;
if(off < 0)
sig = [zeros(1, -off), sig(1:end+off)'];
elseif (off > 0)
sig = [sig(off:end)', zeros(1, off-1)];
end
X = X + sig';
end
X = X/length(files);

Fourier mengubah
XdanXHdan melakukan perhitungan yang disebutkan di atas, hasilnya terlihat masuk akal. Di bawah ini adalah plot dinormalisasiH(ungu) danX/H(hijau).
Plot telah dipotong ke frekuensi yang relevan.
Tolong beri tahu saya jika saya salah tentang hal ini.
Pertanyaan saya
Setelah menghitung X/Hsaya perlu mengubahnya kembali ke domain waktu, saya berasumsi ini akan menjadi sederhana ifft(X./H)dan wavwrite, tetapi semua upaya saya sejauh ini gagal mendapatkan jawaban yang masuk akal. Sebuah vektor frekuensi Hf, Hdan Xdapat ditemukan di sini dalam format mat7-biner.
Mungkin saya lelah dan ada solusi sederhana di sini, tetapi saat ini saya tidak bisa melihatnya. Bantuan / saran sangat dihargai.


