• Optimal Algoritmalar. Hangi tür en hızlı? Test algoritmaları

    Pek çok uygulamada, bir görüntü sekansının bir sonraki çok boyutlu çerçevesinde görünebilecek anormalliklerin tespit edilmesi sorunu ortaya çıkar. Bu tür anormallikler, örneğin orman yangınları, tıbbi görüntülerdeki patolojik değişiklikler, korunan bir alandaki yeni nesneler vb. olabilir. Bu durumda, algılama sorunu şu şekilde formüle edilir: Gözlemler yapılsın

    Uzay-zamansal korelasyonlu SP ve sıfır ortalama ve varyanslı bağımsız rastgele değişkenlerin SP'si. Parametre vektörü, örneğin komşu görüntü çerçevelerinin olası karşılıklı uzamsal yer değiştirmelerini ve dönüşlerini hesaba katmayı mümkün kılar.

    Deterministik bir sinyalin ortaya çıkması, modelde (2.1) yalnızca gözlemlenen çerçevelerin sonuncusunun indeks bölgesinde (Şekil 1) bir değişikliğe yol açar:

    yararlı sinyalin örnek kümesi nerede.

    Ele alınan koşullar altında, modelin (2.2) geçerliliği hakkındaki alternatif H1 varsayımı altında, G alanında bir anomalinin yokluğu hakkındaki H0 hipotezini test etmek için bir kural bulmak gerekir.

    Modellerin (2.1), (2.2) bileşenlerinin olasılıksal özellikleri göz önüne alındığında, W(Z|H0) ve W(Z|H1) gözlemlerinin karşılık gelen koşullu olasılık dağılım yoğunlukları (PD'ler) belirlenebilir. Bu nedenle, algılama problemini çözmek için, olabilirlik oranının (LR) eşik seviyesi ile bir karşılaştırma kullanılmalıdır:

    (2.3)

    Hesaplamaları basitleştirmek için koşullu PDF'leri ürünler olarak gösterelim: burada ZG, G alanındaki gözlemler kümesidir; Z0, beklenen sinyalin alanına ait olmayan tüm gözlemlerin kümesidir. OP (2.3) şu şekilde yeniden yazıldığı için:

    . (2.4)

    OP (2.4)'te yer alan koşullu PDF'leri Gauss dağılımlarına göre yaklaştıracağız:

    burada , ve , , sırasıyla yararlı bir sinyalin yokluğunda ve varlığında ZG gözlemlerinin koşullu matematiksel beklentileri ve uzaysal kovaryans matrisleridir.

    Gözlemsel modeller (2.1), (2.2) dikkate alındığında, koşullu ortalamalar için aşağıdaki formülleri elde etmek kolaydır, burada - sinyal alanına ait olmayan tüm mevcut gözlemler Z0 temelinde oluşturulan SP değerlerinin optimal tahmini. Uzamsal matrisler V0 ve V1 aynı çıkıyor: , optimal tahmin hatalarının kovaryans matrisi nerede.

    Yukarıdaki ilişkileri (2.4), (2.5)'e yerleştirdikten ve logaritmalar aldıktan sonra, aşağıdaki sinyal algılama algoritmasını buluruz:

    , (2.6)

    Nerede - algılama eşiği. Formül (2.6)'dan aşağıdaki gibi, anormallik tespit prosedürü, G bölgesine ait olmayan tüm gözlemlere dayalı olarak bulunan optimum tahmini gözlemden çıkararak karışan görüntülerin telafisini içerir. Engelleyen SP'leri telafi ettikten sonra, doğrusal ağırlıklı artıkların toplamı yapılır

    Blok matrislerini tersine çevirmek için Frobenius formülünü uygulayarak, istatistiklerin eşdeğer bir forma indirgenebileceği gösterilebilir:

    Nerede , - hariç tüm mevcut gözlemlere dayalı olarak oluşturulmuş optimal değer tahmini; . tahmin hatasının varyansıdır. Buna karşılık, "bir noktaya kadar tahmin" diyeceğiz. G ile tüm olası alanlarda anormallikler tespit edildiğinde Büyük bir sayı"bir noktaya kadar tahmin" öğeleri, "alan için tahmin"den çok daha az sayıda hesaplama işlemi kullanılarak bulunabilir.

    Optimum algılama prosedürünü yazmanın başka bir biçimi, faydalı sinyalin mevcut tüm görüntü çerçevelerini kaplayabileceği varsayımıyla elde edilebilir; G bölgesi tüm çok boyutlu ızgaraları içerir. O zaman en iyi tahmin olur ve algoritma (2.6) şu şekli alır:

    , (2.8)

    Nerede ; karışan görüntü kovaryans matrisidir.

    (2.8) prosedürünün doğrudan uygulanması, çok sayıda hesaplama işlemi nedeniyle zordur. Bununla birlikte, uzamsal simetrik matrisi iki üçgenin ürününe genişletmek (2.8)'i şu şekilde gösterebiliriz:

    (2.9)

    görüntü dizisinin ön "beyazlaşmasına" ve ardından ağırlıklarla ağırlık toplamına karşılık gelir. Çoğu durumda, bu yaklaşım pratik için kabul edilebilir yarı-optimal "beyazlatma" algoritmalarını bulmayı mümkün kılar. Aynı zamanda, beyazlatma özelliklerine benzer özelliklere sahip uyarlamalı özyinelemeli filtrelerin bağımsız olarak değerlendirilmesi, bir görüntü dizisi işleme sisteminin nispeten basit bir teknik veya yazılım uygulaması için fırsat arayışında önemli bir yöndür. Algoritmaların (2.7), (2.8) ve (2.9)'un (2.6)'ya göre sahip olduğu yeni özellik, sinyal şekliyle ilgili olmayan optimum tahmin veya beyazlatmanın zaman alıcı işleminin ayrılmasıdır. Yararlı sinyalin türünü hesaba katan nispeten basit ağırlık toplamı. Bu, hem bilinmeyen konum parametreleriyle anormallik algılama problemlerini hem de çeşitli sinyal türlerinin çok alternatifli tespiti (tanıma) ile ilgili daha karmaşık problemleri çözmeyi oldukça kolaylaştırır.

    Sunulan sonuçlar, önerilen koşullu PDF'lerin normal dağılımlarla değiştirilmesinin geçerli olduğu koşulları iyileştirmeyi mümkün kılar. Her şeyden önce bu, Gauss modelleri (2.1), (2.2) ile geniş bir sınıftır. Bu durumlarda prosedürler (2.6), (2.7), (2.9) kesinlikle optimaldir. Modellerin (2.1), (2.2) olmayan Gauss bileşenleriyle, yeterli bir optimallik koşulu, tahminin a posteriori PDF'sine yaklaşma olasılığıdır. normal dağılım. Son koşulun da birçok durumda sağlandığını unutmayın. uygulamalı görevlerÖnemli uzay-zamansal korelasyonlara sahip SP işleme ve genellikle yüksek a posteriori tahmin doğruluğu durumuna eşdeğerdir.

    Bir algoritma sınıfının karmaşıklığının alt sınırı benzersiz bir şekilde tanımlanmamıştır. Örneğin, F(N) = 0, herhangi bir negatif fonksiyon gibi her zaman bir alt sınırdır. Bulunan alt sınır ne kadar büyükse, o kadar önemsiz ve değerlidir. Şundan daha büyük bir alt sınır oluşturamayacağımıza dair bir sinyal:


    İLE 4. Bölüm Optimum Algoritmalar

    zaten sahip olduğumuz alt sınır F(N), örneğin mevcudiyet olarak hizmet edebilir A e .s4, hangisi için T A (n) = f(n). Bir önceki paragrafta Örnek 14.1 ve 14.3'te böyle bir durumla karşılaşıyoruz. Bildiğimiz en küçük elemanı bulma algoritması ve bir elemanın sıralı bir dizideki yerini ikili bulma algoritmasının her biri, bulunan alt sınırla çakışan bir karmaşıklığa sahiptir. Bu algoritmalar, aşağıdaki tanım anlamında optimaldir.

    Tanım 15.1.İzin vermek .s4- bazı problemleri çözmek için bir algoritma sınıfı. Algoritmaların maliyetlerinin nasıl ölçüldüğü ve girdi boyutunun ne olduğu konusunda bir anlaşmaya varılsın ve N- girişin boyutunun belirlenmesi. algoritma A e .s4 isminde en uygun V j4, Eğer TA(n) algoritmaların karmaşıklığının alt sınırıdır. j4.

    Örnek 15.1. Karmaşıklıkta bir alt sınır elde ederken ve optimalliği kanıtlarken, algoritmanın yürütülmesi sırasında ortaya çıkan değerlerin kümelerinde, örneğin tarafından kullanılan değişkenlerin değer kümelerinde işlevleri çağırmak bazen yararlıdır. algoritma.

    Önerme 15.1.fonksiyon f(N) = - 2 N 1 - 2 n uzunluğundaki bir dizinin en büyük ve en küçük elemanlarının karşılaştırmalar kullanılarak eş zamanlı seçimi için algoritmaların karmaşıklığının alt sınırıdır.

    Kanıt. Keyfi bir algoritmanın yürütülmesinin her aşaması V, karşılaştırmalara dayalı ve bir dizinin en büyük ve en küçük öğelerini bulmak için tasarlanmış, dörtlü ( A, B, C, D) ilk elemanlar kümesinin alt kümeleri (x g, x 2, ■ ■ ■, x n ), Nerede

    A hiç karşılaştırılmayan tüm unsurlardan oluşur;

    B bazı karşılaştırmalara katılan ve her zaman büyük olduğu ortaya çıkan tüm unsurlardan oluşur;

    C bazı karşılaştırmalara katılan ve her zaman daha küçük olduğu ortaya çıkan tüm unsurlardan oluşur;

    D bazı karşılaştırmalara katılan, bazen daha büyük, bazen daha küçük olan tüm unsurlardan oluşur.

    İzin vermek bir, b, c, d- kümelerin eleman sayısı A, B, C, D sırasıyla. İlk durum eşitliklerle karakterize edilir a = n, b = = c = d = 0. Algoritmanın tamamlanmasından sonra, eşit-


    § 15 . Optimum Algoritmalar

    stva A = 0, b = c = 1, d = n-2.İlk karşılaştırmadan sonra, algoritmanın tüm çalışması boyunca, eşitsizlikler b^1,c^1.



    Algoritma yürütülürken yapılan tüm karşılaştırmalar V, belirtilen türlere ayrılabilir AA,AB,AC,AD,BB,BC,BD,CC,CD,DD,ör: karşılaştırma türe aittir AB , karşılaştırılan öğelerden biri alınırsa A , diğer İÇİNDE , vb. Buna dayanarak, dörtlü (a, B, İle, D) farklı türlerin karşılaştırmalarının etkisi altında.

    Bu nedenle, bellek yöneticisinin en sorumlu eylemi, içinde bulunan sanal bir sayfaya yerleştirmek için bir RAM çerçevesi tahsis etmektir. harici bellek. Her işlem için sanal bellek boyutunun ana belleğin boyutunu önemli ölçüde aşabileceği bir durumu düşündüğümüzü hatırlayın. Bu, bir ana bellek sayfası tahsis edildiğinde, boş sayfa çerçevesi bulunmama olasılığının yüksek olduğu anlamına gelir. Bu durumda işletim sistemi belirtilen kriterlere uygun olarak:

    • dolu bir ana bellek sayfası bulun;
    • gerekirse içeriğini harici belleğe taşıyın;
    • istenen sanal sayfanın içeriğini harici bellekten bu sayfa çerçevesine yeniden yazın;
    • karşılık gelen sayfa tablosunun gerekli öğesini uygun şekilde değiştirin;
    • bu işlemin yürütülmesine devam etmek sanal sayfa gerekli.

    Değiştirirken, sayfayı ana ve ikincil bellek arasında iki kez aktarmanız gerektiğini unutmayın. İkame işlemi kullanılarak optimize edilebilir değişiklik biti(sayfa tablosundaki sayfa niteliklerinden biri). Sayfaya en az bir bayt yazılmışsa, değişiklik biti bilgisayar tarafından ayarlanır. Bir yedek aday seçildiğinde, değişiklik biti kontrol edilir. Bit ayarlanmamışsa yeniden yazmaya gerek yoktur bu sayfa diske, bir kopyası zaten diskte. Benzer bir yöntem salt okunur sayfalar için de geçerlidir, asla değiştirilmezler. Bu şema, sayfa hataları için işlem süresini azaltır.

    var çok sayıdaçeşitli sayfa değiştirme algoritmaları. Hepsi yerel ve küresel olarak ayrılmıştır. Yerel algoritmalar, genel algoritmalardan farklı olarak, her işleme sabit veya dinamik olarak ayarlanabilen sayıda sayfa tahsis eder. Bir işlem tüm sayfalarını tükettiğinde, sistem sayfalarından birini diğer işlemlerin sayfalarından değil, fiziksel bellekten kaldıracaktır. Küresel değiştirme algoritması, bir istisna durumunda, hangi sürece ait olduğuna bakılmaksızın herhangi bir fiziksel sayfanın serbest bırakılmasıyla yetinecektir.

    Küresel algoritmaların bir takım dezavantajları vardır. İlk olarak, bazı süreçleri diğer süreçlerin davranışlarına duyarlı hale getirirler. Örneğin, sistemdeki bir işlem aynı anda çok sayıda bellek sayfası kullanıyorsa, diğer tüm uygulamalar, çalışmaları için bellek çerçevesi eksikliği nedeniyle ciddi yavaşlama yaşayacaktır. İkinci olarak, yanlış davranan bir uygulama, (tabii ki, sistemin sürece ayrılan bellek boyutu üzerinde bir sınırı yoksa) tüm sistemi baltalayabilir. daha fazla hafıza. Bu nedenle, çoklu görev sisteminde bazen daha karmaşık yerel algoritmalar kullanmak gerekir. Yerel algoritmaların kullanılması, işletim sisteminin her işleme ayrılmış fiziksel çerçevelerin bir listesini saklamasını gerektirir. Bu sayfa listesi bazen yerleşik set işlem. Aşağıdaki bölümlerden birinde, yerleşik kümeyi sözde uyumlu hale getirmeye dayalı, takas algoritmasının bir çeşidi ele alınmaktadır. çalışma seti işlem.

    Algoritma Verimliliği genellikle meydana gelen sayfa hatalarının sayısının sayıldığı belirli bir bellek referansları dizisi üzerinde değerlendirilir. Bu sıra denir isabet çizgisi(referans dizesi ). Bir sensör kullanarak yapay olarak bir dizi isabet üretebiliriz. rastgele numaralar veya belirli bir sistemi izlemek. Son yöntem çok fazla referans üretiyor, referans sayısını azaltmak için iki şey yapılabilir:

    • belirli bir sayfa boyutu için, bağlantının gittiği adresleri değil, yalnızca numaralarını hatırlayabilirsiniz;
    • bir sayfaya birkaç ardışık bağlantı bir kez düzeltilebilir.

    Daha önce de belirtildiği gibi, çoğu işlemci en basitine sahiptir. donanım, bazı bellek erişim istatistiklerini toplamanıza izin verir. Bu araçlar genellikle sayfa tablosu girişi başına iki özel bayrak içerir. Referans bayrağı (referans biti), bu sayfaya herhangi bir erişim gerçekleştiğinde otomatik olarak ayarlanır ve yukarıda tartışılan değişiklik bayrağı (modifiye biti), bu sayfaya bir yazma yapıldığında ayarlanır. işletim sistemi aktif olarak kullanılan sayfaları vurgulamak için bu bayrakları periyodik olarak kontrol eder ve ardından bu bayrakların değerleri sıfırlanır.

    Bir dizi sayfa değiştirme algoritması düşünün.

    FIFO algoritması. İlk gelen sayfanın çıkarılması

    En basit algoritma. Her sayfaya bir zaman damgası atanır. Bu, basitçe, yüklendiğinde sayfaların sonunda düştüğü bir sayfa kuyruğu oluşturarak uygulanır. fiziksel hafıza ve hafızanın boşaltılması gerektiğinde baştan alınır. Değiştirmek için seçildi en eski sayfa. Ne yazık ki, bu stratejinin kod sayfaları gibi yoğun olarak kullanılan sayfaların yerini alması oldukça olasıdır. kelime işlemci bir dosyayı düzenlerken. Etkin sayfaları değiştirirken her şeyin düzgün çalıştığını ancak hemen bir sayfa hatası oluştuğunu unutmayın.

    Gecikmeli Anomali

    İlk bakışta, bellekte ne kadar çok sayfa çerçevesi varsa, sayfa hatalarının o kadar az meydana geleceği açıktır. Şaşırtıcı bir şekilde, bu her zaman böyle değildir. Bilady ve meslektaşlarının bulduğu gibi, belirli sayfa erişim dizileri aslında sayfa sayısında artışa yol açıyor. sayfa ihlalleri sürece ayrılan çerçeveleri artırırken. Bu fenomen denir "Bilady anomalileri" veya "FIFO anomalileri".

    FIFO stratejisini seçerken bellek erişim dizisi 012301401234 için üç çerçeveli (9 hata) bir sistem dört çerçeveli (10 hata) sistemden daha verimlidir.


    Pirinç. 10.1.

    Optimal Algoritma (OPT)

    Bilady anomalisinin keşfinin sonuçlarından biri, belirli bir erişim dizisi için diğer tüm algoritmalar arasında minimum sayfa hatası sıklığına sahip olacak en uygun algoritmanın araştırılmasıydı. Böyle bir algoritma bulundu. Çok basit: Uzun süre kullanılmayacak olan sayfayı değiştirin.

    Her sayfa, o sayfaya ilk bağlantı yapılmadan önce yürütülecek talimatların sayısı ile etiketlenmelidir. Bu sayının en yüksek olduğu sayfa dışarı itilmelidir.

    Bu algoritmanın tanımlanması kolaydır, ancak uygulanması imkansızdır. İşletim sistemi bir sonraki sayfaya hangi sayfanın erişileceğini bilmiyor. (Daha önce bu tür problemler, süreç planlama - SJF algoritması sırasında ortaya çıktı).

    Öte yandan, değiştirme algoritmasının ideal algoritmaya olabildiğince yakın olması için, sistemin süreçlerin bellek erişimlerini mümkün olduğunca doğru bir şekilde tahmin etmesi gerektiği sonucuna varabiliriz. Bu algoritma Uygulanan algoritmaların kalitesini değerlendirmek için kullanılır.

    En uzun kullanılmayan sayfayı itmek. LRU algoritması

    OPT algoritmasına yaklaşımlardan biri, buluşsal kural yakın geçmişin, yakın geleceği tahmin etmek için iyi bir kıstas olduğunu.

    FIFO ve optimal algoritma arasındaki temel fark, birinin geriye, diğerinin ileriye bakmasıdır. Geleceği tahmin etmek için geçmişi kullanırsanız, en uzun süredir kullanılmayan sayfayı değiştirmek mantıklıdır. Bu yaklaşım denir en son kullanılan algoritma (LRU). Algoritmanın çalışması, Şek. pirinç. 10.2. Şekil karşılaştırması 10.1 b ve 10.2, LRU algoritmasının kullanılmasının sayısını azalttığı görülebilir. sayfa ihlalleri.


    Pirinç. 10.2.

    LRU iyi ama uygulaması zor bir algoritmadır. olmalı bağlantılı liste başında en son kullanılan sayfaların saklanacağı bellekteki tüm sayfaların sayısı. Ayrıca, bu liste her bellek erişiminde güncellenmelidir. Böyle bir listedeki sayfaları aramak için çok zaman gerekir.

    [Tanenbaum, 2002]'de, her talimatın yürütülmesinden sonra otomatik olarak bir artırılan özel bir 64 bitlik işaretçiye sahip LRU algoritması uygulamasının bir varyantı dikkate alınır ve sayfa tablosunda işaretçi değerinin gösterildiği karşılık gelen bir alan bulunur. sayfaya verilen her bağlantı için girilir. Bir sayfa hatası oluştuğunda, bu alanın en küçük değerine sahip sayfa kaldırılır.

    Hem optimal algoritma hem de LRU, Bilady anomalisinden muzdarip değildir. Aynı erişim satırı verildiğinde, n çerçeve için bellekteki sayfa kümesinin her zaman n + 1 çerçeve için sayfaların bir alt kümesi olduğu bir algoritma sınıfı vardır. Bu algoritmalar Bilady anomalileri göstermezler ve yığın algoritmaları olarak adlandırılırlar.

    Nadiren kullanılan bir sayfayı zorlamak. NFU algoritması

    çoğunluktan beri modern işlemciler algoritmayı uygulamak için uygun donanım desteği sağlamaz

    Geliştirilen programın algoritmasının optimizasyonu
    Uygulamanızın algoritmasını geliştirme aşaması, tüm zincirdeki en zor aşamadır. yaşam döngüsü programlar. Şeklinde uygulanmasının başarısı program kodu. Genel olarak, programın yapısındaki değişikliklerin etkisi çok daha fazladır. ince ayar program kodu. İdeal Çözümler olmaz ve bir uygulama algoritmasının geliştirilmesine her zaman hatalar ve eksiklikler eşlik eder. Burada önemli olan uygulamanın performansını en çok etkileyen algoritmadaki darboğazları bulmaktır.

    Ek olarak, uygulamanın gösterdiği gibi, zaten geliştirilmiş program algoritmasını iyileştirmenin bir yolunu bulmak neredeyse her zaman mümkündür. Elbette, gelecekte kod parçalarının kısa sürede iyileştirilmesiyle ilgili pek çok hoş olmayan sonuçtan kaçınmak için algoritmayı tasarımın başında dikkatlice geliştirmek en iyisidir. Uygulama algoritmasını geliştirmek için zaman ayırın - bu sizi programda hata ayıklama ve test etme zahmetinden kurtaracak ve zamandan tasarruf sağlayacaktır.

    Unutulmamalıdır ki, program performansı açısından verimli olan bir algoritma, problem bildiriminin gereksinimlerini hiçbir zaman %100 karşılamaz ve bunun tersi de geçerlidir. Kural olarak yapı ve okunabilirlik açısından fena olmayan algoritmalar, program kodunu uygulama açısından verimli değildir. Bunun nedenlerinden biri, geliştiricinin, mümkün olan yerlerde hesaplamalar için üst düzey iç içe yapılar kullanarak programın genel yapısını basitleştirme arzusudur. Bu durumda algoritmanın basitleştirilmesi, kaçınılmaz olarak program performansında bir düşüşe yol açar.

    Algoritma geliştirmenin başlangıcında, uygulama kodunun ne olacağını tahmin etmek oldukça zordur. Bir program algoritmasını düzgün bir şekilde geliştirmek için birkaç basit kurala uymalısınız:
    1. Programın geliştirileceği sorunu dikkatlice inceleyin.
    2. Program için temel gereksinimleri belirleyin ve bunları resmi bir biçimde sunun.
    3. Sunum şeklini belirleyin. girdi ve çıktı verileri ve bunların yapısı ile olası kısıtlamalar.
    4. Bu verilere dayanarak, görev uygulamasının program sürümünü (veya modelini) belirleyin.
    5. Görevi uygulamak için bir yöntem seçin.
    6. Program kodunu uygulamak için bir algoritma geliştirin. Bir problemi çözmek için bir algoritma, bir program kodunu uygulamak için bir algoritma ile karıştırılmamalıdır.
    Genel olarak, asla eşleşmezler. Bu, gelişimin en kritik aşamasıdır. yazılım!
    7. Programın kaynak kodunu, program kodunu uygulama algoritmasına uygun olarak geliştirin.
    8. Geliştirilen uygulamanın program kodunda hata ayıklayın ve test edin.

    Bu kurallar harfi harfine alınmamalıdır. Her özel durumda, programcı program geliştirme metodolojisini kendisi seçer. Uygulama geliştirmenin bazı aşamaları daha ayrıntılı olabilir ve bazıları hiç mevcut olmayabilir. Küçük problemler için, bir algoritma geliştirmek, program kodunu uygulamak için biraz değiştirmek ve ardından hata ayıklamak yeterlidir.

    oluştururken büyük uygulamalar, program algoritmasının ek detaylandırmasını gerektirebilecek program kodunun ayrı parçalarını geliştirmek ve test etmek gerekli olabilir.
    Görevlerin doğru algoritmalaştırılması için, programcıya çok sayıda edebi kaynak yardımcı olabilir. Verimli algoritmalar oluşturmak için ilkeler iyi geliştirilmiştir. D. Knuth'un The Art of Programming adlı kitabı gibi bu konuda pek çok iyi literatür var.

    Bilgisayar donanımınız için optimize etme
    Tipik olarak, bir yazılım geliştiricisi, uygulamanın performansının bilgisayar donanımına mümkün olduğunca az bağlı olmasını sağlamaya çalışır. Bu durumda, programınızın kullanıcısının en iyi deneyimi yaşamayacağı en kötü durum senaryosunu dikkate almalısınız. son model bilgisayar. Bu durumda, donanımın "revizyonu" genellikle uygulamayı iyileştirmek için yedekler bulmanızı sağlar.
    Yapılacak ilk şey, programın çalışacağı bilgisayar çevre birimlerinin performansını analiz etmektir. Her durumda, neyin daha hızlı neyin daha yavaş olduğunu bilmek bir program geliştirirken yardımcı olacaktır. Analiz Bant genişliği sistem, darboğazları belirlemenizi ve doğru karar vermenizi sağlar. Farklı bilgisayar cihazları farklı bant genişliğine sahiptir. Bunların en hızlısı işlemci ve Veri deposu, nispeten yavaş - HDD ve CD sürücüsü. En yavaş olanlar yazıcılar, çiziciler ve tarayıcılardır.

    Kanaldaki tüm distorsiyonların kesin olarak belirlendiğini ve sadece Gauss toplamsal gürültüsünün rastgele olduğunu varsayalım, bunun ilk önce beyaz olduğunu varsayalım. spektral yoğunluk Bu, bir sinyal (sembol) iletildiğinde, gelen sinyalin model (3.28) ile tanımlanabileceği anlamına gelir:

    herkesin bilindiği yer. Karar devresi tarafından belirlenmesi gereken, yalnızca girişimin uygulanması ve gerçekte iletilen sinyalin indeksi bilinmemektedir.

    Ayrıca tümünün süresi gerçekleşen sonlu sinyaller olduğunu varsayacağız.Bu, iletilen sinyaller sonluysa ve aynı süreye sahipse (senkronize sistem) ve ne çok yollu yayılma ne de doğrusal bozulma, sinyalin uzamasına neden olur (veya düzeltilir).

    Gelecekte, her yerde sistemde güvenilir saat senkronizasyonunun sağlandığını, yani sinyalin geldiği saat aralığının sınırlarının tam olarak bilindiğini varsayacağız. Senkronizasyon konuları, genel olarak optimal demodülatörlerin ve senkron iletişim sistemlerinin uygulanmasında çok önemlidir, ancak bunlar bu dersin kapsamı dışındadır. Göndermenin başlama zamanını sıfır olarak alalım.

    Bu koşullar altında, sinyali bir saat aralığında analiz eden optimal (yani maksimum olabilirlik kuralına dayalı) bir demodülatörün çalışması için algoritmayı belirliyoruz.Bu amaçla, olası tüm sinyaller için olabilirlik oranlarını bulmak gerekir. sıfır hipotezi ile ilgili olarak

    Sorun, sinyal spektrumunun genişliğinin sonsuz olması (çünkü sonludur) ve dolayısıyla sinyallerin uzayının sonsuz boyutlu olması gerçeğiyle karmaşıklaşır. Bu tür sinyaller (veya sonsuz boyutlu vektörler) için, daha önce belirtildiği gibi, vardır olasılık yoğunluğu yok. Ancak, sinyalin herhangi bir bölümü için -r olasılık yoğunlukları vardır (bakınız § 2.1).

    Önce beyaz gürültüyü değiştirelim. yarı beyaz, aynı tek taraflı güç spektral yoğunluğuna sahip, ancak yalnızca 1 olan belirli bir frekans bandında. Önce sıfır hipotezini ele alalım, yani bunun gürültü olduğunu varsayacağız. Bu bölümlerdeki yarı beyaz Gauss gürültüsü için okumalar (2.49)'a göre bağımsızdır. Dolayısıyla alınan numuneler için -boyutlu olasılık yoğunluğu

    yarı beyaz gürültünün varyansı (gücü) nerede.

    Bu nedenle sembolünün iletildiği hipotezi altında, bölümlerin koşullu boyutsal olasılık yoğunluğu (4.18) ile aynı formülle belirlenir, eğer farkla değiştirirsek

    Kesitler için hesaplanan (sıfır hipotezine göre) sinyal için olabilirlik oranı:

    Varyansı ifadesiyle değiştiriyoruz:

    Maksimum olabilirlik kuralına göre, yarı beyaz gürültü durumunda, karar devresi maksimumu sağlayan bir değer seçmelidir.Maksimum yerine, logaritmasının maksimumunu bulabilirsiniz:

    (4.22)'deki ikinci terimin bağımlı olmadığına ve karşılaştırmada göz ardı edilebileceğine dikkat edin. Daha sonra, bir sinyalin iletildiği karar kuralı aşağıdaki gibi formüle edilebilir:

    Boyutlu Öklid uzayı, vektörlerin farkının normunu veya aralarındaki mesafeyi tanımlar. Bu nedenle, algoritma (4.23) şu şekilde yazılabilir:

    ve basit bir geometrik yorum verin: optimal demodülatör sinyallerden birini kaydetmelidir (alınan dalga formuna "daha yakın" olan sembole karşılık gelir) ikili sinyaller iletilirken sinyaller.Semboller lehine karar alanları, sinyalin her iki tarafında bulunur.

    Pirinç. 4.2. Alınan salınımların alanının en uygun şekilde bölümlenmesi ikili kod ve iyi bilinen sinyaller

    (4.22)'yi köşeli parantezleri genişleterek ve indirgemeler yaparak dönüştürüyoruz:

    Şimdi beyaz gürültü için orijinal soruna geri dönelim. Bunun için bandı genişleteceğiz, sonra bölüm sayısı sonsuza, sıfıra meyledecek. (4.24)'deki toplamlar integrale dönüşür ve olabilirlik oranının logaritması şu şekilde tanımlanır:

    ve iletim karar algoritması şu şekli alır:

    beklenen sinyalin enerjisi nerede

    Nokta çarpımı doğrudan hesaplayan bir cihaz,

    isminde aktif filtre veya bir ilişkilendirici, bu nedenle algoritmayı (4.26) uygulayan alıcıya bir korelasyon alıcısı denir.

    Şek. 4.3 gösterilen yapısal şema(4.26) uyarınca çalışan alıcı cihaz. Burada X blokları çarpanlardır; A - referans sinyal üreteçleri - entegratörler, çıkarma cihazları; çözücü, katları olan zamanlarda (anahtar kapalıyken), maksimum sinyale sahip dalın sayısını belirleyen.

    Sinyaller, tüm uygulamaları (ve sonuç olarak, tüm uygulamaları aynı enerjiye sahip olacak şekilde seçilirse, algoritma

    Pirinç. 4.3. Kesin olarak bilinen sinyallere sahip optimum demodülatör

    alım (4.26) (ve buna göre uygulanması) basitleştirilmiştir (çıkarıcılara gerek yoktur) ve alır

    (4.29)'dan görüldüğü gibi demodülatör girişine gelen sinyal herhangi bir sayı ile çarpılırsa karar kuralı değişmeyecektir. Bu nedenle, tüm sinyal gerçekleştirmelerinin eşit enerjiye sahip olduğu bir sistem, içindeki optimum alım algoritmasının gelen sinyalin "ölçeği" bilgisini veya başka bir deyişle kanal kazancı bilgisini gerektirmemesi bakımından farklılık gösterir. Bu önemli özellik, genellikle aktif duraklatma sistemleri olarak adlandırılan eşit enerjili sinyal sistemlerinin yaygın olarak kullanılmasına yol açmıştır. Bu özellik, kazancın dalgalandığı solma kanalları için özellikle önemlidir (aşağıdaki § 4.7'ye bakın).

    Parsel sınırlarının tespiti için doğru saat senkronizasyonunun (birim çıkışındaki sinyallerin katları olan zamanlarda alınması ve karar verildikten sonra entegratörden voltajın sıfırlanması) pratikte uygulanması için vazgeçilmez bir koşul olduğu vurgulanmalıdır. Şekil l'deki şemaya göre dikkate alınan algoritmalar. 4.3.

    En yaygın ikili eşitsizlik sistemi (4.26) için yalnızca bir tane kalır ve alım algoritması daha fazla temsil edilebilir. basit biçim:

    fark sinyali nerede; eşik seviyesi. Optimal şemanın uygulanmasını büyük ölçüde kolaylaştıran aktif duraklamalı bir sistem için.

    Eşitsizlik (4.30) sağlanırsa, sembol 1 kaydedilir, aksi takdirde - 0. (4.30)'u Şekil 2'deki devrede uygulamak için. 4.3 yalnızca bir dal gerektirir.

    Şek. Şekil 4.4, tek kutuplu darbelere (pasif bir duraklama ile) sahip bir ikili iletim sistemi için algoritmayı (4.30) uygulayan bir devreyi gösterir:

    Pirinç. 4.4. İkili dikdörtgen video darbelerinin optimum alımının uygulanması

    Bu sinyaller için kural (4.30) aşağıdaki formu alacaktır:

    Şek. 4.4, devre tarafından yeterli doğrulukla gerçekleştirilir. Aynı zamanda, şu anda kapasitör C üzerindeki voltaj şuna eşittir - Bu nedenle, kural, bu voltajın eşik seviyesini aşması gerektiği gerçeğine kadar kaynar. Bu eşitsizlik sağlanırsa 1, değilse - 0 yazılır. Bu kayıttan sonra (anahtar kapatıldığında meydana gelir, bir sonraki sinyal elemanının alınabilmesi için entegratörden gelen voltajın sıfırlanması gerekir. Sıfırlama kondansatörü boşaltan anahtarın kapatılmasıyla gerçekleştirilir.

    Aynı devre, küçük bir değişiklikle, demodülasyon için kullanılabilir. İkili sistem iki kutuplu impulslarla iletim (aktif bir duraklama ile): Bu durumda, dolayısıyla, Bu durumda, azaltmadan sonraki kural (4.30) şeklini alır

    Şekil l'deki diyagram tarafından uygulanır. 4.4, X eşik seviyesi sıfıra eşitse. Aynı zamanda girişindeki voltaj pozitif olduğunda 1 sembolü üreten bir polarite ayırıcıya dönüşür, aksi halde.

    Ele alınan iki sistem en basit cihazlarda kullanılır kablolu bağlantı. Hem radyo kanallarında hem de modern kablo kanalları yüksek frekanslı sinyaller kullanılır. En basit ikili sistemler harmonik sinyaller genlik (AM), faz (PM) ve frekans kaydırmalı anahtarlamaya sahip sistemlerdir.

    İkili olarak Bu bölümde görünen tüm sabitlerin bilindiği varsayılır. Burada kural (4.30) aşağıdaki gibi yazılabilir:

    Şekil l'deki diyagram tarafından uygulanır. 4.5, Şek. 4.4. gelen sinyalin referans sinyali ile çarpılması bloğu Bu durumda eşik seviyesi şuna eşittir:

    Pirinç. 4.5. Kesin olarak bilinen bir sinyalle ikili sistem AM, PM'de optimum alımın uygulanması

    İkili bir FM sistemi ile

    Bu, aktif bir duraklamaya sahip bir sistemdir ve bu nedenle karar kuralının aşağıdakilere indirgendiğini görmek kolaydır: ve

    Şekil 1'deki aynı şema tarafından gerçekleştirilir. 4.5 at Bu durumda, bir polarite ayırıcı rolünü oynar. Görünüşü, spektral yoğunluğa sahip beyaz gürültünün arka planına karşı bilinerek belirlenebilir.Filtre çıkışının sinyallere sahip olacağını ve gürültünün spektral yoğunlukla, yani hayali bir optimalin girişiyle renklendirileceğini görmek kolaydır. demodülatör tam olarak bu sinyalleri ve hesaplandığı gürültüyü alacaktır. Böylece, Şekil l'deki diyagram. Şekil 4.66, Şekil 4.66'daki badanalı filtrenin çıkışına bağlanan optimal demodülatörden daha az hata olasılığına sahip bir beyaz gürültü demodülatörüdür. 4.6a. Bu çelişki, renkli gürültü arka planına karşı sinyaller için Şekil 1'dekinden daha iyi bir demodülatör olamayacağını kanıtlıyor. 4.6a.

    Badanalı filtreli böyle bir demodülatörü uygularken, sinyallerin filtreden geçerken genellikle gerilmesi ve sinyal öğelerinde karşılıklı örtüşme olması nedeniyle zorlukların ortaya çıktığını unutmayın. Bu zorluğun üstesinden gelmek için, ancak bunların ayrıntılı bir analizi kursun kapsamı dışındadır.

    Şek. 4.5'te, referans sinyali, beklenen gelen sinyallerle aynı başlangıç ​​fazlarına sahip olmalı veya başka bir deyişle, gelen sinyallerle uyumlu olmalıdır. Bu gereklilik genellikle demodülatörün uygulanmasını zorlaştırır ve Şekil 1'de belirtilenlere ek olarak buna giriş yapılmasını gerektirir. 4.5 blok ek cihazlar, referans sinyallerinin fazlarını ayarlamak için tasarlanmıştır.

    Uygulaması, gelen sinyallerin ilk aşamaları hakkında doğru önsel bilgi gerektiren tüm alım yöntemlerine tutarlı denir. Beklenen sinyallerin ilk fazları hakkındaki bilgilerin alınan sinyalin kendisinden çıkarıldığı durumlarda (örneğin, faz dalgalanıyorsa, ancak önceki sinyal öğelerinden tahmin edilebilecek kadar yavaşsa), alım yarı uyumlu olarak adlandırılır. Gelen sinyallerin ilk aşamaları hakkında bilgi yoksa veya herhangi bir nedenle kullanılmazsa, alım tutarsız olarak adlandırılır (aşağıdaki § 4.6'ya bakın).