4 research outputs found
Haberleşme Sistemlerinde Turbo Kodlama ve Turbo İlkesinin Bazı Pratik Uygulamaları
söz etmiştir. Shannon, veri iletim hızı içi teorik bir sınır tanımlamış ve Shannon’dan günümüze kadar bu sınıra yaklaşma çabaları sürmüştür. Shannon’dan sonra çok sayıda etkin kodlama ve kod çözme teknikleri bulunmuş olmasına rağmen, 90’lı yılların başlarında turbo kodların bulunmasına kadar, kanal kapasite sınırına ciddi bir düzeyde yaklaşan kodlama ve kod çözme yöntemleri bulunamamıştır. Başka bir ifade ile, turbo kodlar kodlama kazancı ile kanal kapasite sınırı arasındaki önemli boşluğu uygun kodlama ve kod çözme yöntemlerinin kullanımı sayesinde kapatmıştır denilebilir. 1993 yılında Berrou, Glavieux ve Thitimajshima [2,3] tarafından turbo kodların bulunmasından sonra, sayısal haberleşme ve veri kayıt sistemleri alanında performans analizi, tasarım, gerçekleme ve uygulamaya yönelik olarak birçok araştırma yapılmıştır. Temelde turbo kodlama kod çözme mimarisi, aralarında serpiştiricilerin de yer aldığı özyineli sistematik katlamalı kodlayıcıların (Recursive Systematic Convolutional Encoder, RSC) paralel sıralanması (concatenation), SISO (soft input, soft output – yumuşak giriş, yumuşak çıkış) kod çözücüler arasında döngülü (iterative) bilgi değişimine dayalı kod çözme yaklaşımı sunan bir yapı içermektedir. Bu yapı, zamanla başka alanlarda da uygulanmış ve bir ‘ilke’ olarak kabul edilerek “turbo ilkesi” olarak literatüre girmiştir [4,5]. II. T URBO K ODLAR Turbo kodların bulunması ile 1948’de Shannon’un belirlemiş olduğu sınıra daha önce hiç olmadığı kadar yaklaşılarak, hata düzelten kodlar alanında çok büyük bir gelişme sağlanmıştır. Turbo kodların hata başarımı açısından Shannon sınırının hemen hemen bitişiğinde bir başarım sağladığı yapılan çalışmalarda gösterilmiştir. Bu döngülü kodlayıcıda katlamalı veya blok kodların paralel sıralanması (concatenation) ve turbo motor ilkesine benzer bir kod çözme tekniğinin kullanılması ile mümkün olmuştur. Ş ekil 1. Mekanikte turbo motor ve haberleşmede turbo kod çözücü Ş ekil 1’de basit bir turbo motor ile basit bir turbo kod çözücü yer almaktadır [6]. Temelde turbo motorlar tüm sistemin başarımını artırmak için bir geri besleme döngüsü kullanırlar. Turbo kod çözücüler de benzer şekilde çalışırlar. Turbo kod çözücünün bileşen kod çözücüleri (component decoders) arasında geri besleme ile döngü (iteration) sağlanarak başarım arttırılır. Deneysel sonuçlar göstermektedir ki, yeterince büyük blok uzunluğu ile döngülü turbo-kod çözme, sinyal/gürültü oranı açısından ençok-olabilirlik (maximum-likelihood) kod çözme eşik değerine yaklaşmada en iyi (optimal) başarımı sağlayabilmektedir [4]. Sıralı kodların kod çözülmesinin önceden kullanılmış olmasına rağmen, turbo kodların bulunması ile birlikte SISO algoritmaları daha önce hiç olmadığı kadar popülerlik kazanmıştır. SISO algoritmalarının iki ana kategorisi vardır: Sembol (bit) hata olasılığını en küçükleştiren MAP (maximum a posteriori) algoritması ve sözcük (dizi) hata olasılığını en küçükleştiren Yumuşak Çıkış Viterbi Algoritmasıdır (SOVA). 1967’de A. J. Viterbi [7] yayınladığı makalesinde katlamalı kodların kod çözümünde kullanılan bir algoritmayı anlatmıştır. Bu algoritma, bulunduğu yıllarda, optimumluğu (sözcük hatasını en küçükleştirme bakımından optimum) ve düşük hesap karmaşıklığı sayesinde kısa sürede yaygın bir ş ekilde kullanılmaya başlanmıştır. Ancak, bu algoritma ile kod çözülen dizideki sözcük (word) hatası en küçükleştirilirken, bu algoritmanın “sert çıkışlı (hard output)” bir algoritma olması ve kod çözülmüş bitlerin her birinin ayrı ayrı kestirimindeki doğruluk için “yumuşak bilgi (soft information)” veya “güvenilirlik değerleri (reliability values)” sunmaması, “yumuşak çıkış” elde edilen algoritmalara yönelim sağlamıştır. 1974’te Bahl, Cocke, Jelinek ve Raviv [8] bir gürültülü kesikli hafızasız kanal (DMC, discrete memoryless channel) üzerinden gözlemlenen Markov kaynağın durumlarının ve geçişlerinin, sonsal olasılıklarını (a posteriori probabilities) özyineli olarak tahmin eden bir algoritma sunmuşlardır. Sözü edilen makalede yazarlar, bu problemin özel bir durumu olarak doğrusal kodların (katlamalı ve blok) kod çözümünü ve bu algoritmanın doğrusal katlamalı ve doğrusal blok kodların kod çözümünde kullanılabilir bir algoritma olduğunu göstermişlerdir. BCJR algoritması katlamalı ve blok kodlara doğrudan uygulanabilir olmasına rağmen, artan karmaşıklık nedeni ile Viterbi algoritmasına gör
FPGA IMPLEMENTATION OF TURBO DECODERS USING BCJR ALGORITHM
The most difficult design issue for turbo codes, which is the most recent and successful channel coding method to approach the channel capacity limit, is the design of the iterative decoders which perform calculations for all possible states of the encoders. BCJR (MAP) algorithm, which is used for turbo decoders, embodies complex mathematical operations such as division, exponential and logarithm calculations. Therefore, BCJR algorithm was avoided and the sub-optimal derivatives of this algorithm such as Log-MAP and Max-Log-MAP were preferred for turbo decoder implementations. BCJR algorithm was reformulated and wrapped into a suitable structure for FPGA implementations at previous works [1]. Reformulated BCJR algorithm is implemented in this work. Complex mathematical operations which run slowly on hardware (division, exponential and logarithm calculations) are read from look-up-tables and high performance calculation structures are established. Implemented system is verified through simulations. It is observed that the BER performance obtained is better than the Log-MAP algorithm as expected
Haberleşme Sistemlerinde Turbo Kodlama ve Turbo İlkesinin Bazı Pratik Uygulamaları
söz etmiştir. Shannon, veri iletim hızı içi teorik bir sınır tanımlamış ve Shannon’dan günümüze kadar bu sınıra yaklaşma çabaları sürmüştür. Shannon’dan sonra çok sayıda etkin kodlama ve kod çözme teknikleri bulunmuş olmasına rağmen, 90’lı yılların başlarında turbo kodların bulunmasına kadar, kanal kapasite sınırına ciddi bir düzeyde yaklaşan kodlama ve kod çözme yöntemleri bulunamamıştır. Başka bir ifade ile, turbo kodlar kodlama kazancı ile kanal kapasite sınırı arasındaki önemli boşluğu uygun kodlama ve kod çözme yöntemlerinin kullanımı sayesinde kapatmıştır denilebilir. 1993 yılında Berrou, Glavieux ve Thitimajshima [2,3] tarafından turbo kodların bulunmasından sonra, sayısal haberleşme ve veri kayıt sistemleri alanında performans analizi, tasarım, gerçekleme ve uygulamaya yönelik olarak birçok araştırma yapılmıştır. Temelde turbo kodlama kod çözme mimarisi, aralarında serpiştiricilerin de yer aldığı özyineli sistematik katlamalı kodlayıcıların (Recursive Systematic Convolutional Encoder, RSC) paralel sıralanması (concatenation), SISO (soft input, soft output – yumuşak giriş, yumuşak çıkış) kod çözücüler arasında döngülü (iterative) bilgi değişimine dayalı kod çözme yaklaşımı sunan bir yapı içermektedir. Bu yapı, zamanla başka alanlarda da uygulanmış ve bir ‘ilke’ olarak kabul edilerek “turbo ilkesi” olarak literatüre girmiştir [4,5]. II. T URBO K ODLAR Turbo kodların bulunması ile 1948’de Shannon’un belirlemiş olduğu sınıra daha önce hiç olmadığı kadar yaklaşılarak, hata düzelten kodlar alanında çok büyük bir gelişme sağlanmıştır. Turbo kodların hata başarımı açısından Shannon sınırının hemen hemen bitişiğinde bir başarım sağladığı yapılan çalışmalarda gösterilmiştir. Bu döngülü kodlayıcıda katlamalı veya blok kodların paralel sıralanması (concatenation) ve turbo motor ilkesine benzer bir kod çözme tekniğinin kullanılması ile mümkün olmuştur. Ş ekil 1. Mekanikte turbo motor ve haberleşmede turbo kod çözücü Ş ekil 1’de basit bir turbo motor ile basit bir turbo kod çözücü yer almaktadır [6]. Temelde turbo motorlar tüm sistemin başarımını artırmak için bir geri besleme döngüsü kullanırlar. Turbo kod çözücüler de benzer şekilde çalışırlar. Turbo kod çözücünün bileşen kod çözücüleri (component decoders) arasında geri besleme ile döngü (iteration) sağlanarak başarım arttırılır. Deneysel sonuçlar göstermektedir ki, yeterince büyük blok uzunluğu ile döngülü turbo-kod çözme, sinyal/gürültü oranı açısından ençok-olabilirlik (maximum-likelihood) kod çözme eşik değerine yaklaşmada en iyi (optimal) başarımı sağlayabilmektedir [4]. Sıralı kodların kod çözülmesinin önceden kullanılmış olmasına rağmen, turbo kodların bulunması ile birlikte SISO algoritmaları daha önce hiç olmadığı kadar popülerlik kazanmıştır. SISO algoritmalarının iki ana kategorisi vardır: Sembol (bit) hata olasılığını en küçükleştiren MAP (maximum a posteriori) algoritması ve sözcük (dizi) hata olasılığını en küçükleştiren Yumuşak Çıkış Viterbi Algoritmasıdır (SOVA). 1967’de A. J. Viterbi [7] yayınladığı makalesinde katlamalı kodların kod çözümünde kullanılan bir algoritmayı anlatmıştır. Bu algoritma, bulunduğu yıllarda, optimumluğu (sözcük hatasını en küçükleştirme bakımından optimum) ve düşük hesap karmaşıklığı sayesinde kısa sürede yaygın bir ş ekilde kullanılmaya başlanmıştır. Ancak, bu algoritma ile kod çözülen dizideki sözcük (word) hatası en küçükleştirilirken, bu algoritmanın “sert çıkışlı (hard output)” bir algoritma olması ve kod çözülmüş bitlerin her birinin ayrı ayrı kestirimindeki doğruluk için “yumuşak bilgi (soft information)” veya “güvenilirlik değerleri (reliability values)” sunmaması, “yumuşak çıkış” elde edilen algoritmalara yönelim sağlamıştır. 1974’te Bahl, Cocke, Jelinek ve Raviv [8] bir gürültülü kesikli hafızasız kanal (DMC, discrete memoryless channel) üzerinden gözlemlenen Markov kaynağın durumlarının ve geçişlerinin, sonsal olasılıklarını (a posteriori probabilities) özyineli olarak tahmin eden bir algoritma sunmuşlardır. Sözü edilen makalede yazarlar, bu problemin özel bir durumu olarak doğrusal kodların (katlamalı ve blok) kod çözümünü ve bu algoritmanın doğrusal katlamalı ve doğrusal blok kodların kod çözümünde kullanılabilir bir algoritma olduğunu göstermişlerdir. BCJR algoritması katlamalı ve blok kodlara doğrudan uygulanabilir olmasına rağmen, artan karmaşıklık nedeni ile Viterbi algoritmasına gör