Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen komut harminv'dir.
Program:
ADI
harminv - zaman serisi verilerinden mod frekanslarını çıkar
SİNOPSİS
zarar [SEÇENEK] ... [frek-min-frekans-maks] ...
TANIM
zarar "harmonik inversiyon" problemini çözmek için tasarlanmış bir programdır: belirli bir süre
sinüzoidlerin ("modlar") toplamından oluşan seriler, frekanslarını çıkarır ve
genlikler. Ayrıca, katlanarak azalan sinüzoidlerin durumunu da işleyebilir.
durumda onların bozunma oranlarını da çıkarır.
zarar genellikle Fourier'den çok daha fazla doğruluk ve sağlamlık elde edebilmektedir.
dönüşüm yöntemleri, esasen girdi için belirli bir biçim aldığı için.
VA'da açıklandığı gibi düşük depolamalı bir "filtre köşegenleştirme yöntemi" (FDM) kullanır.
Mandelshtam ve HS Taylor, "Zaman sinyallerinin harmonik ters çevrilmesi", J. Chem. Fizik 107,
6756 (1997). Ayrıca bkz. aynı yerde 109, 4128 (1998).
GİRİŞ
zarar standarttan boşlukla ayrılmış gerçek veya karmaşık sayıların bir dizisini okur
girişin yanı sıra bir veya daha fazla frekans aralığını belirten komut satırı argümanları
arama yapar ve verilerden çıkardığı modların çıktısını verir. (Tercihen bulur
modları belirttiğiniz frekans aralığında, ancak bazen dışında ek modlar bulabilir
Bu aralığın.) Veriler eşit aralıklı zaman aralıklarına karşılık gelmelidir, ancak
puan sayısında herhangi bir kısıtlama yoktur.
Girişteki karmaşık sayılar biçiminde ifade edilmelidir. RE+IMi (boşluk yok).
Aksi takdirde, boşluk yok sayılır. Ayrıca, "#" ile başlayan ve sonuna kadar uzanan yorumlar
satırın sonu yoksayılır.
Tipik bir çağrı şöyle bir şeydir
harminv -t 0.02 1-5 < girdi.dat
0.02 zaman aralığında (ms cinsinden, örneğin,
50 kHz'e karşılık gelir) ve 1-5 kHz frekans aralığındaki modları arar. (Görmek
birimlerde aşağıdadır.)
ÇIKTI
zarar standart çıktıya virgülle ayrılmış altı sütun, her mod için bir satır yazar:
frekans, bozunma sabiti, Q, genlik, faz ve hata. Her mod bir
formun işlevi:
genlik * deneyim[-i (2 pi Sıklık t - faz) - çürüme t]
Burada i sqrt(-1), t zamandır (birimler için aşağıya bakınız) ve diğer parametreler
çıktı sütunları şunlardır:
Sıklık
Modun frekansı. Bunu yukarıdaki ifadeden anlamadıysanız,
Euler'in formülünü hatırlamalısınız: exp(ix) = cos(x) + i sin(x). Şunun için not edin:
karmaşık veriler, pozitif ve negatif frekanslar arasında bir ayrım vardır.
çürüme sabit
ile gösterilen üstel bozunma sabiti çürüme yukarıdaki formülde. NS
bunun tersi genellikle modun "ömrü" olarak adlandırılır. "Yarı ömür"
ln(2) /çürüme.
Q Çürüme ömrünün geleneksel, boyutsuz bir ifadesi: Q = pi |frekans|
/ çürüme. "Kalite faktörü" anlamına gelen Q, periyot sayısıdır.
"enerji" modunda (genliğin karesi) exp(-2 pi) ile azalacak. eşdeğer olarak,
güç spektrumuna bakarsanız (|Fourier dönüşümü|^2), 1/Q kesirlidir
zirvenin genişliği yarı maksimumda.
genlik
Sinüzoidlerin (gerçek, pozitif) genliği. Genlik (ve faz)
bilgi genellikle frekans ve bozulmadan daha az doğru görünmektedir.
sabiti.
faz Yukarıdaki formülde verildiği gibi sinüzoidlerin faz kayması (radyan cinsinden).
hata (Karmaşık) frekanstaki göreli hatanın kaba bir tahmini. Bu değil
ancak gerçekten bir hata çubuğu, bu yüzden ona daha çok bir liyakat figürü olarak davranmalısınız.
(daha küçük daha iyidir) her mod için.
SAHTE MODLARI
Tipik olarak, harminv, istenen çözüme ek olarak bir dizi sahte çözüm bulacaktır.
çözümler, özellikle verileriniz gürültülüyse. Bu tür çözümler, büyük
hatalar, küçük genlikler ve/veya küçük Q (büyük bozulma oranları / geniş çizgi genişlikleri). Yapabilirsiniz
bunları aşağıda tanımlanan hata/Q/genlik tarama seçenekleriyle çıktıdan çıkarın.
Varsayılan olarak, > 0.1 ve Q < 10 hatası olan modlar otomatik olarak atlanır, ancak büyük olasılıkla
daha katı sınırlar belirlemeniz gerekecek.
BİRİMLERİ
Hem giriş hem de çıkış olan frekans (ve azalma) değerleri 1/zaman birimlerinde belirtilir,
zaman birimlerinin örnekleme aralığı tarafından belirlendiği yerde dt (aradaki zaman
ardışık girişler). dt ile belirtmediğiniz sürece varsayılan olarak 1'dir. -t dt seçeneği.
Başka bir deyişle, bazı birimler seçin (örneğin yukarıdaki örnekte ms) ve bunları ifade etmek için kullanın.
zaman adımı. Ardından tutarlı olun ve bu birimlerin tersini kullanın (örneğin kHz = 1/ms)
Sıklık.
Sıklığın olağan 1/dönem tanımı olduğuna dikkat edin; açısal frekans değildir.
SEÇENEKLER
-h Komut satırı seçenekleri ve kullanımıyla ilgili yardımı görüntüleyin.
-V için sürüm numarasını ve telif hakkı bilgilerini yazdırın. zarar.
-v Standart çıktıya yorum satırları olarak yazdırılan ayrıntılı çıktıyı etkinleştirin (bir
"#" karakteri). Ayrıca, girdideki herhangi bir "#" yorumu çıktıya yansıtılır.
-T Komut satırında frekans aralıkları yerine dönem aralıklarını belirtin (birim olarak
tarafından belirtilenlere karşılık gelen süre -t). Çıkış hala frekans ve
dönem değil ama.
-w Frekanslar yerine açısal frekansları belirtin ve açısal frekans çıktısını alın
frekans yerine. (Açısal frekans, frekansın 2 pi ile çarpımıdır).
-n Harminv'de kullanılan frekans (ve faz) kuralının işaretini çevirin. (İşaret
frekansın değeri, yalnızca karmaşık değerli giriş verileriniz varsa önemlidir;
pozitif ve negatif frekans genlikleri farklı olabilir.)
-t dt Örnekleme aralığını belirtin dt; bu, boyunca kullanılan zaman birimlerini belirler
giriş ve çıkış. Varsayılan 1.0'dır.
-d d Spektral "yoğunluğu" belirtin d yoğunluğun 1 olduğu modları aramak için
olağan Fourier çözünürlüğünü gösterir. Yani, temel fonksiyonların sayısı
(ki bu mod sayısı üzerinde bir üst sınır belirler) ile verilir d zamanlar (frekans-maks -
frek-min) zamanlar dt veri kümenizdeki örnek sayısının katıdır. maksimum 300
ancak matrislerin çok büyük olmasını önlemek için kullanılır (bir
ile daha büyük sayı -f, altında).
Çıkışların frekans çözünürlüğünün değil spektral ile sınırlı
yoğunluktur ve genellikle Fourier çözünürlüğünden çok daha büyük olabilir. NS
yoğunluk, en fazla kaç mod aranacağını belirler ve bir anlamda
bant genişliğinin başlangıçta modlar için "aradığı" yoğunluk.
Varsayılan yoğunluk 0.0'dır, bu, temel fonksiyonların sayısının
-f ile belirlenir (varsayılan olarak 100'dür). Bu genellikle çok daha büyük bir
yoğunluk, olağan Fourier çözünürlüğünden daha fazladır, ancak sonuçta ortaya çıkan tekillikler
sistem matrisleri harminv tarafından otomatik olarak kaldırılır.
-f nf Bir alt sınır belirtin nf spektral tabanlı fonksiyonların sayısı (varsayılan olarak
100), aranacak mod sayısı için bir alt sınır belirleme. Bu seçenek
temel fonksiyonların sayısını belirtmek için genellikle daha uygun bir yoldur. -d
yukarıdaki seçenek, bu yüzden varsayılandır.
-f ayrıca 300'den fazla temel işlevi kullanmanıza izin verir, ancak dikkatli olun:
hesaplama süresi O(N nf) + O(nf^3) olarak ölçeklenir, burada N örnek sayısıdır ve
çok büyük matrislerin doğruluğu da düşebilir.
-s tür
Çıktıların nasıl sıralanacağını belirtin, nerede tür biridir
frekans/hata/Q/decay/genlik. (Yalnızca ilk karakter tür önemli.)
Tüm çeşitler artan sıradadır. Varsayılan, frekansa göre sıralamaktır.
-e yanılmak Hatalı modları atlayın (yukarıya bakın) yanılmak çarpı en büyük hata
hesaplanan modlar arasında Varsayılan olarak sınırsızdır.
-E yanılmak Hatalı modları atlayın (yukarıya bakın) yanılmak. Varsayılan 0.1'dir.
-F Belirtilen aralığın dışındaki frekanslara sahip modları atlayın. (Bu tür modlar
Ancak mutlaka sahtedir.)
-a amp Genliği (yukarıya bakın) değerinden daha düşük olan modları atlayın. amp çarpı en büyük genlik
hesaplanan modlar arasında Varsayılan olarak sınırsızdır.
-A amp Genliği (yukarıya bakın) değerinden daha düşük olan modları atlayın. amp. Varsayılan olarak sınırsızdır.
-Q q |Q| ile tüm modları atlayın (yukarıya bakın) daha az q. Varsayılan 10'dir.
onworks.net hizmetlerini kullanarak harminv'i çevrimiçi kullanın