DSP için oldukça yeniyim ve pythondaki ivmeölçer verilerini düzeltmek için olası filtreler üzerine bazı araştırmalar yaptım. Aşağıdaki resimde, yaşanmakta olduğu veri türünün bir örneği görülebilir:
Temel olarak, sonunda verileri hıza ve yer değiştirmeye dönüştürmek için bu verileri pürüzsüz hale getirme konusunda tavsiye arıyorum. Cep telefonlarından ivmeölçer son derece gürültülü olduğunu biliyorum.
Şu anda bir Kalman filtresi kullanabileceğimi sanmıyorum, çünkü verilerin ürettiği gürültüyü referans almak için cihazı tutamıyorum (cihazı düz yerleştirmek ve bu değerlerden gelen ses miktarını bulmak için gerekli olduğunu okudum mu?)
FFT bazı ilginç sonuçlar verdi. Denemelerimden biri hızlanma sinyalini FFT yapmak, sonra da mutlak FFT değerine sahip olmak için düşük frekansları sağlamaktı. Sonra hız için bir arsa elde etmek için omega aritmetik ve ters FFT kullandım. Sonuçlar aşağıdaki gibidir:
Bu işlerle uğraşmak için iyi bir yol mu? Sinyalin genel gürültülü yapısını kaldırmaya çalışıyorum, ancak yaklaşık 80 saniye gibi belirgin tepe noktalarının tanımlanması gerekiyor.
Ayrıca orijinal ivmeölçer verilerinde düşük geçişli bir filtre kullanmaktan yoruldum. Buradan nereye gideceğinize dair herhangi bir rehberlik gerçekten yararlı olacaktır!
EDIT: Biraz kod:
for i in range(len(fz)):
testing = (abs(Sz[i]))/Nz
if fz[i] < 0.05:
Sz[i]=0
Velfreq = []
Velfreqa = array(Velfreq)
Velfreqa = Sz/(2*pi*fz*1j)
Veltimed = ifft(Velfreqa)
real = Veltimed.real
Bu yüzden, temelde, ivme verilerim üzerinde bir FFT yaptım, basit bir tuğla duvar filtresi kullanarak Sz'ye yüksek frekansları filtrelemeyi sağladı (ideal olmadığını biliyorum). Sonra verinin FFT'sinde omega aritmetiği kullanıyorum. Ayrıca görüntüleri yazıma eklediği için datageist'e çok teşekkür ederim :)
fz
Dizinin ilklendirilmesini göstermemenize rağmen , bunun yerine bir yüksek geçiş filtresi uyguladığınız anlaşılıyor.