Andrei Shelkovenko. Vibromera'nın geliştiricilerinden ve kurucularından biri.
Makalenin çevirisi yanlışlıklar içerebilir.
- Fourier dönüşümü ve sinyal spektrumu
Birçok durumda bir sinyalin spektrumunu elde etme (hesaplama) görevi aşağıdaki gibidir. Örnekleme frekansı Fd ile T zamanı boyunca girişine gelen sürekli sinyali dijital örneklere - N adet - dönüştüren bir ADC vardır. Daha sonra bu örnek dizisi bazı programlara beslenir (örneğin FourierScope) N/2 bazı sayısal değerleri çıktı olarak verir.
Programın doğru çalışıp çalışmadığını kontrol etmek için, iki sin(10*2*pi*x)+0.5*sin(5*2*pi*x) toplamı şeklinde bir örnek dizisi oluşturup programa giriyoruz. Program aşağıdakileri çizdi:
Spektrum grafiğinde iki harmonik var - 0,5 V genlikli 5 Hz ve 1 V genlikli 10 Hz, her şey orijinal sinyalin formülündeki gibi. Her şey yolunda, grogram doğru çalışıyor.
Bu, iki sinüzoidin karışımından oluşan gerçek bir sinyali ADC girişine beslersek, iki harmonikten oluşan benzer bir spektrum elde edeceğimiz anlamına gelir.
Yani, bizim gerçek ölçülen sinyal 5 sn. süreliADC tarafından sayısallaştırılır, yani temsil edilir tarafından ayrık örnekleri, bir ayrık periyodik olmayan spektrum.
Matematiksel bir bakış açısıyla - bu ifadede kaç hata var?
Şimdi aynı sinyali 0,5 saniye boyunca ölçmeye çalışalım.
Burada bir sorun var! 10 Hz'deki harmonik normal olarak çizilir ve 5 Hz'deki harmonik yerine bazı belirsiz harmonikler vardır.
İnternette, örneğin sonuna sıfırlar eklemek gerektiğini ve spektrumun normal olarak çizileceğini söylüyorlar.
Hiç de öyle değil. Teoriyle uğraşmak zorundayım. Hadi gidelim. wikipedia - bilginin kaynağı.
2. Sürekli fonksiyon ve Fourier serisi gösterimi
Matematiksel olarak, T saniye süreli sinyalimiz {0, T} aralığında verilen bir f(x) fonksiyonudur (bu durumda X zamandır). Böyle bir fonksiyon her zaman formdaki harmonik fonksiyonların (sinüs veya kosinüs) bir toplamı olarak gösterilebilir:
k trigonometrik fonksiyonun sayısıdır (harmonik bileşenin sayısı, harmoniğin sayısı)
T - fonksiyonun tanımlandığı segment (sinyalin süresi)
Ak- k-inci harmonik bileşenin genliği,
θk- k'ncı harmonik bileşenin başlangıç fazı
"Fonksiyonu serilerin toplamı olarak temsil etmek" ne anlama gelir? Fourier serisinin harmonik bileşenlerinin her bir noktadaki değerlerini toplayarak, fonksiyonumuzun o noktadaki değerini elde ettiğimiz anlamına gelir.
(Daha kesin bir ifadeyle, serinin f(x) fonksiyonundan ortalama kare sapması sıfıra doğru eğilim gösterecektir, ancak ortalama kare yakınsamasına rağmen, bir fonksiyonun Fourier serisinin, genel olarak konuşursak, ona nokta nokta yakınsaması gerekmez. )
Bu seri şu şekilde de yazılabilir:
nerede k'ıncı karmaşık genlik.
veya
(1) ve (3) katsayıları arasındaki ilişki aşağıdaki formüllerle ifade edilir:
Fourier serilerinin bu üç gösteriminin de tamamen eşdeğer olduğunu unutmayın. Bazen Fourier serileriyle çalışırken, sinüsler ve kosinüsler yerine hayali argümanın üslerini kullanmak, yani Fourier dönüşümünü karmaşık biçimde kullanmak daha uygundur. Ancak, Fourier serisinin karşılık gelen genlik ve fazlara sahip kosinüslerin bir toplamı olarak temsil edildiği formül (1)'i kullanmak bizim için uygundur. Her durumda, gerçek sinyalin Fourier dönüşümünün sonucunun karmaşık harmonik genlikler olacağını söylemek yanlıştır. Wiki'nin doğru bir şekilde söylediği gibi, "Fourier dönüşümü (ℱ), reel bir değişkenin bir fonksiyonunu yine reel bir değişkenin başka bir fonksiyonuna eşleyen bir işlemdir."
Sonuç olarak:
Sinyallerin spektral analizi için matematiksel temel Fourier dönüşümüdür.
Fourier dönüşümü, {0, T} aralığında tanımlanan sürekli bir f(x) fonksiyonunu (sinyal), yine {0, T} aralığında düşünülen belirli genlik ve fazlara sahip trigonometrik fonksiyonların (sinüs ve/veya kosinüs) sonsuz sayıda (sonsuz seri) toplamı olarak temsil etmeyi sağlar. Böyle bir seriye Fourier serisi denir.
Fourier dönüşümünün sinyal analizine doğru uygulanması için anlaşılması gereken bazı noktalara daha dikkat ediniz. Eğer Fourier serisini (sinüzoidlerin toplamı) tüm X ekseni üzerinde düşünürsek, {0, T} aralığının dışında Fourier serisi fonksiyonunun periyodik olarak bizim fonksiyonumuzu tekrarlayacağını görürüz.
Örneğin, Şekil 7'deki grafikte, orijinal fonksiyon {-T\2, +T\2} aralığında tanımlanmıştır ve Fourier serisi tüm x ekseninde tanımlanan periyodik bir fonksiyonu temsil etmektedir.
Bunun nedeni sinüzoidlerin kendilerinin periyodik fonksiyonlar olması, dolayısıyla toplamlarının da periyodik bir fonksiyon olmasıdır.
Böylece:
Orijinal fonksiyonumuz, T uzunluğundaki bir segment üzerinde tanımlanan sürekli, periyodik olmayan bir fonksiyondur.
Bu fonksiyonun spektrumu ayrıktır, yani sonsuz bir harmonik bileşen serisi olarak temsil edilir - bir Fourier serisi.
Aslında Fourier serisi, {0, T} aralığında bizim fonksiyonumuzla çakışan bazı periyodik fonksiyonlar tanımlar, ancak bizim için bu periyodiklik önemli değildir.
Sıradaki.
Harmonik bileşenlerin periyotları, başlangıç fonksiyonu f(x)'in tanımlandığı {0, T} aralığının katlarıdır. Başka bir deyişle, harmoniklerin periyotları sinyal ölçüm süresinin katlarıdır. Örneğin, bir Fourier serisindeki birinci harmoniğin periyodu, f(x) fonksiyonunun tanımlandığı T aralığına eşittir. Bir Fourier serisindeki ikinci harmoniğin periyodu T/2 aralığına eşittir. Ve bu böyle devam eder (bkz. Şekil 8).
Buna göre, harmonik bileşenlerin frekansları 1/T'nin katlarıdır. Yani, Fk harmonik bileşenlerinin frekansları Fk= k\T'dir, burada k 0 ile ∞ arasında değerler alır, örneğin, k=0 F0=0; k=1 F1=1\T; k=2 F2=2\T;k=3 F3=3\T;.... Fk= k\T (sıfır frekansta, sabit bir bileşen).
Başlangıç fonksiyonumuz, T=1 saniye boyunca kaydedilmiş bir sinyal olsun. O zaman ilk harmoniğin periyodu sinyalimizin süresine eşit olacaktır T1=T=1 sn ve harmoniğin frekansı 1 Hz'e eşittir. İkinci harmoniğin periyodu sinyalimizin süresinin 2'ye bölünmesine eşit olacaktır (T2=T/2=0,5 sn.) ve frekansı 2 Hz'e eşittir. Üçüncü harmonik için, T3=T/3 sn ve frekans 3 Hz'dir. Ve böyle devam eder.
Bu durumda harmonikler arasındaki adım 1 Hz'dir.
Böylece, 1 saniye süreli bir sinyal, 1 Hz frekans çözünürlüğü ile harmonik bileşenlere ayrıştırılabilir (bir spektrum elde etmek için).
Çözünürlüğü 2 kat artırarak 0,5 Hz'e çıkarmak için ölçüm süresini 2 kat artırarak 2 saniyeye çıkarmak gerekir. 10 saniyelik bir sinyal, 0,1 Hz frekans çözünürlüğü ile harmonik bileşenlere (spektrum) ayrıştırılabilir. Frekans çözünürlüğünü artırmanın başka bir yolu yoktur.
Örnek dizisine sıfırlar ekleyerek sinyal süresini yapay olarak artırmanın bir yolu vardır. Ancak bu gerçek frekans çözünürlüğünü artırmaz.
3. Ayrık sinyaller ve ayrık Fourier dönüşümü
Dijital teknolojinin gelişmesiyle birlikte ölçüm verilerinin (sinyallerin) saklanma yöntemleri değişmiştir. Önceden bir sinyal bir teybe kaydedilip analog formda bir kasette saklanabilirken, artık sinyaller dijitalleştirilmekte ve bilgisayar belleğindeki dosyalarda bir dizi sayı (sayım) olarak saklanmaktadır.
Sinyal ölçümü ve sayısallaştırmanın olağan şeması aşağıdaki gibidir.
Ölçüm dönüştürücü -- Sinyal normalleştirici -- ADC -- Bilgisayar
(Şekil 9 Ölçüm kanalının şeması)
Ölçüm transdüserinden gelen sinyal, T süresi boyunca ADC'ye gider. T süresi boyunca alınan sinyal okumaları (örnekleme) bilgisayara iletilir ve belleğe kaydedilir.
Sinyal sayısallaştırma parametreleri için gereksinimler nelerdir? Giriş analog sinyalini ayrık bir koda (dijital sinyal) dönüştüren bir cihaza analog-dijital dönüştürücü (ADC) denir (© Wiki).
ADC'nin temel parametrelerinden biri maksimum örnekleme hızıdır - zaman içinde sürekli olan bir sinyalin örnekleme sıklığı. Örnekleme hızı hertz cinsinden ölçülür. ((© Wiki))
Kotelnikov'un teoremine göre, sürekli bir sinyal Fmax frekansı ile sınırlı bir spektruma sahipse, T = 1/2*Fmax zaman aralıklarında alınan ayrık örneklerinden, yani Fd ≥ 2*Fmax frekansı ile tamamen ve benzersiz bir şekilde yeniden yapılandırılabilir, burada Fd - örnekleme frekansı; Fmax - sinyal spektrumunun maksimum frekansı. Başka bir deyişle, sinyal sayısallaştırma frekansı (ADC'nin örnekleme frekansı) ölçmek istediğimiz sinyalin maksimum frekansından en az 2 kat daha yüksek olmalıdır.
Peki Kotelnikov'un teoreminin gerektirdiğinden daha düşük sıklıkta örnek alırsak ne olur?
Bu durumda, sayısallaştırmadan sonra yüksek frekanslı bir sinyalin aslında var olmayan düşük frekanslı bir sinyale dönüştüğü bir "aliasing" etkisi (diğer adıyla stroboskopik etki, moiré etkisi) vardır. Şekil 11'de yüksek frekanslı kırmızı sinüs dalgası gerçek sinyaldir. Düşük frekanslı mavi sinüs dalgası, örnekleme süresi boyunca yüksek frekanslı sinyalin yarım periyodundan daha fazla zaman geçmesi nedeniyle ortaya çıkan hayali bir sinyaldir.
Örtüşme etkisini önlemek için ADC'den önce özel bir örtüşme önleyici filtre (alçak geçiren filtre) yerleştirilir. ADC örnekleme frekansının yarısından daha düşük frekansları geçirir ve daha yüksek frekansları keser.
Sinyal spektrumunu ayrık örnekleriyle hesaplamak için ayrık Fourier dönüşümü (DFT) kullanılır. Ayrık bir sinyalin spektrumunun "tanım gereği" örnekleme frekansı Fd'nin yarısından daha küçük bir Fmax frekansıyla sınırlı olduğuna tekrar dikkat edin. Bu nedenle, ayrık bir sinyalin spektrumu aşağıdakilerin toplamı ile temsil edilebilir sonlu Harmonik sayısı, spektrumu sınırsız olabilen sürekli bir sinyalin Fourier serisi için sonsuz toplamın aksine. Kotelnikov'un teoremine göre, bir harmoniğin maksimum frekansı en az iki örnek oluşturacak şekilde olmalıdır, bu nedenle harmoniklerin sayısı ayrık bir sinyalin örnek sayısının yarısına eşittir. Yani, örnekte N örnek varsa, spektrumdaki harmoniklerin sayısı N/2 olacaktır.
Şimdi ayrık Fourier dönüşümünü (DFT) ele alalım.
Fourier serisi ile karşılaştırıldığında
Gördüğümüz gibi, FFT'de zamanın ayrık olması ve harmonik sayısının örnek sayısının yarısı olan N/2 ile sınırlı olması dışında çakışmaktadırlar.
DFT formülleri boyutsuz tamsayı değişkenleri k, s cinsinden yazılır; burada k sinyal örneklerinin sayısı, s ise spektral bileşenlerin sayısıdır.
s değeri, T periyodu (sinyal ölçüm süresi) başına tam harmonik salınım sayısını gösterir. Ayrık Fourier dönüşümü, harmoniklerin genliklerini ve fazlarını sayısal olarak, yani "bilgisayarda" bulmak için kullanılır.
Yukarıda da belirtildiği gibi, periyodik olmayan bir fonksiyon (sinyalimiz) Fourier serilerine ayrıştırıldığında, ortaya çıkan Fourier serisi aslında T periyoduna sahip periyodik bir fonksiyona karşılık gelir (Şekil 12).
Şekil 12'de görülebileceği gibi, f(x) fonksiyonu T0 periyodu ile periyodiktir. Ancak, ölçüm örneği uzunluğu T, fonksiyon periyodu T0'a eşit olmadığından, Fourier serisi olarak elde edilen fonksiyon T noktasında bir süreksizliğe sahiptir. Sonuç olarak, bu fonksiyonun spektrumu çok sayıda yüksek frekanslı harmonik içerecektir. Eğer T ölçüm örneğinin süresi T0 fonksiyonunun periyodu ile çakışsaydı, Fourier dönüşümünden sonra elde edilen spektrum sadece birinci harmoniği (örnek süresine eşit periyotlu bir sinüzoid) içerecekti, çünkü f(x) fonksiyonu bir sinüzoiddir.
Başka bir deyişle, DFT programı sinyalimizin bir "sinüs dalgası dilimi" olduğunu "bilmez", ancak sinüs dalgasının ayrı parçalarının süreksizliği nedeniyle süreksizliği olan periyodik bir fonksiyonu seri olarak temsil etmeye çalışır.
Sonuç olarak, bu süreksizlik de dahil olmak üzere toplamda fonksiyonun şeklini temsil etmesi gereken spektrumda harmonikler ortaya çıkar.
Bu nedenle, farklı periyotlara sahip birkaç sinüzoidin toplamı olan bir sinyalin "doğru" bir spektrumunu elde etmek için dönemlerinin tamsayı sayısı her sinüzoid sinyalin ölçüm periyodunda mevcut olmalıdır. Pratikte, bu koşul yeterince uzun bir sinyal ölçüm süresi ile karşılanabilir.
Daha kısa sürelerde resim "daha kötü" görünecektir:
Pratikte, "gerçek bileşenlerin" ve bileşen periyotları ile sinyal örnekleme sürelerinin tutarsızlığından veya dalga formundaki "atlama ve kırılmalardan" kaynaklanan "artefaktların" nerede olduğunu anlamak zor olabilir. Elbette "gerçek bileşenler" ve "artefaktlar" kelimelerinin tırnak içine alınmasının bir nedeni vardır. Spektrum grafiğinde birçok harmoniğin bulunması, sinyalimizin aslında bunlardan oluştuğu anlamına gelmez. Bu, 7 sayısının 3 ve 4 sayılarından "oluştuğunu" düşünmek gibidir. 7 sayısı 3 ve 4'ün toplamı olarak düşünülebilir - bu doğrudur.
Dolayısıyla sinyalimiz de... daha doğrusu "sinyalimiz" bile değil, sinyalimizin (örneğimizin) tekrarlanmasıyla oluşan periyodik bir fonksiyon, belirli genlik ve fazlara sahip harmoniklerin (sinüs dalgaları) bir toplamı olarak temsil edilebilir. Ancak pratikte önemli olan birçok durumda (bkz. yukarıdaki şekiller), spektrumda elde edilen harmonikleri, döngüsel karaktere sahip ve sinyalin biçimine önemli ölçüde katkıda bulunan gerçek süreçlerle de ilişkilendirmek gerçekten mümkündür.
Bazı sonuçlar
1. ADC tarafından sayısallaştırılan, yani bir dizi ayrık örnek (N adet) ile temsil edilen T saniye süreli gerçek bir ölçülen sinyal, bir dizi harmonik (N/2 adet) ile temsil edilen ayrık periyodik olmayan bir spektruma sahiptir.
2. Sinyal bir dizi geçerli değerle temsil edilir ve spektrumu da bir dizi geçerli değerle temsil edilir. Harmoniklerin frekansları pozitiftir. Spektrumu negatif frekanslar kullanarak karmaşık biçimde temsil etmenin matematiksel olarak daha uygun olması, "bunun doğru olduğu" ve "her zaman böyle yapmanız gerektiği" anlamına gelmez.
3. T zamanında ölçülen sinyal sadece T zamanında belirlenir. Sinyali ölçmeye başlamadan önce ne olduğu ve bundan sonra ne olacağı bilim tarafından bilinmemektedir. Ve bizim durumumuzda ilginç değildir. Zaman sınırlı sinyalin FFT'si, belirli koşullar altında bileşenlerinin genliğini ve frekansını hesaplamaya izin vermesi anlamında "gerçek" spektrumunu verir.