Öngörülebilir sinyaller yaymak için bir ultrasonik hoparlörü kalibre etmeye çalışıyorum, ancak ne yazık ki muhtemelen DSP-fu eksikliğimden dolayı sorun yaşıyorum.
Biraz arka plan
Sahip olduğum kalibre bir kayda olabildiğince yakın sesler çalabilmek istiyorum. Teoriyi anladığım kadarıyla, hoparlör aktarım işlevini bulmam ve onunla yaymak istediğim sinyalleri çözmem gerekiyor. Bunun gibi bir şey (frekans alanında):
X -> H -> XH
Nerede Xyayılan sinyal Hhoparlörler transfer fonksiyonu ve XHbir Xkere H. ./Şimdi bana bir bölünme ( ) vermeli H.
Şimdi, kalibre edilmiş bir sinyal yaymak için, bölünmesi gerekir H:
X/H -> H -> X
Ne yapıldı
- Tripodlara 1 m aralıklarla yerleştirilmiş hoparlör ve kalibre edilmiş mikrofon.
- Kaydedilmiş 30+ doğrusal tarama, 20ms uzunluğunda 150KHz-20KHz ve 500 KS / s'de kaydedilmiştir.
- Aşağıdaki Matlab / Octave betiği ile hizalanmış ve ortalaması alınmış sinyaller, betiğin altında ortaya çıkan sinyal görülebilir.
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 dönüştü
XveXHyukarıda belirtilen hesaplamaları yaptı, sonuç mantıklı görünüyor. AşağıdaH(mor) veX/H(yeşil) normalleştirilmiş bir çizim vardır .
Grafik ilgili frekanslara kesildi.
Lütfen bunu yanlış bir şekilde yapmamı söyleyin.
Benim sorum
Hesaplandıktan sonra X/Hben zaman alanına geri dönüşümü için gereken, bu basit olacağını kabul ifft(X./H)ve wavwriteama bütün girişimleri defa herhangi makul bir cevap almak için başarısız oldu. Bir frekans vektörü Hf, Hve Xbulunabilir burada mat7-ikili formatta.
Belki sadece yorgunum ve burada basit bir çözüm var, ama şu anda göremiyorum. Herhangi bir yardım / tavsiye çok takdir edilmektedir.


