Çoklu dikiş analizi için STFT kullanmak istiyorum. Sinyalde mevcut olan parsiyelleri tespit etmenin sadece bir başlangıç olduğunu anlıyorum. Hala sorunum var.
Diyelim ki 'CD' frekansıyla örneklenmiş sinyal var 44100Hz
. 1024
Numune penceresi ile frekans bölmesi çözünürlüğünü elde ederim 22500Hz/512=43Hz
. Bu sadece: C5 = 523.251Hz
ve gibi yüksek piyano notalarını ayırt etmek için yeterlidir
C#5 = 554.365
.
Eskiden 1024
oldukça büyük bir pencere olduğunu düşünürdüm . Ama belki değil ve normalde daha büyük pencereler kısmi tespit etmek için kullanılıyor?
Frekans çözünürlüğü, pencere boyutunu artırmaktan başka bir yöntemle artırılabilir mi, bu da zaman çözünürlüğünü kötüleştirir mi? İki yöntem düşündüm:
Yöntem 1:
- Sinyali bant geçiren filtrelerle frekans bantlarına bölün (örneğin
0-11.25Hz
ve11.25-22.5Hz
). - Orijinal yüksek frekansların artık düşük frekanslar olmasını sağlamak için daha yüksek bantları örnekleyin (ikinci bant için de yapın
11.25-22.5Hz -> 0Hz-22.5Hz
) - bunun mümkün olduğundan emin olun. - Ayarlanmış etiketli concat sonuç haznesi setleri.
Method2:
- Artan limiti olan bir dizi düşük geçiş filtresi kullanın.
- Artan frekans aralıklarında FFT gerçekleştirin.
- Her frekans için mümkün olan en iyi çözünürlüğü kullanın (bu frekansın dahil edildiği ilk FFT'den kutular).
- Bu, düşük frekansların daha iyi çözünürlüğe sahip olmasına neden olacaktır, ancak bence bu iyi, çünkü daha yüksek notlar için frekans farkı rende.
Bu konularda herhangi bir açıklama için minnettar olacağım.
Burada da okudum: Pencere boyutu, örnekleme hızı FFT eğim tahminini nasıl etkiler? pik toplama sonuçlarını iyileştirme yöntemi hakkında. Bence kullanmaya çalışacağım.