博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MIMO系统ML检测(最大似然检测)
阅读量:6114 次
发布时间:2019-06-21

本文共 2201 字,大约阅读时间需要 7 分钟。

  hot3.png

 
Nt = 2 ;Nr = 2 ;Len = 10000 ;M= 4 ;bitsPerSymbol = log2(M) ;bitsTotal = bitsPerSymbol * Nt * Len ;ALP = [-1+1i  ;-1-1* 1i ;1+1i ;1-1i] * sqrt(3/(2*(M-1)))  ; %QAM符号%ALPbin = dec2bin( 0:M-1 , log2(M))  ; %QAM的二进制编码SNRVect = 0:2:20 ;SER = zeros( 1 ,length(SNRVect) )  ;for snrLoop =  1: length (SNRVect)    fprintf(' snrLoop = %d \n',snrLoop) ;    %计算信噪比    SNRdB = SNRVect(snrLoop) ;    SNR  = 10^(SNRdB/10) ;    %此处我们假设每根天线发送的信号能量为1       %N0 表示噪声的能量    N0 = Nt * 1 / SNR ;       %产生随机比特流    send = round(rand(1,bitsTotal)) ;    sendReshape = reshape(send , Nt * bitsPerSymbol , Len ) ;    symbols = zeros(Nt, Len) ;    symbolsModulation = zeros(Nt ,Len) ;    %发送端 4QAM调制    fprintf('\n正在调制并发送 \n') ;    for sendLoop = 1 :Len        for antennaLoop = 1: Nt            twoBits = sendReshape ( 2* antennaLoop-1 :2* antennaLoop, sendLoop) ;            symbols  ( antennaLoop ,sendLoop)  = 2 * twoBits(1) + 1 * twoBits(2) +1 ;            symbolsModulation ( antennaLoop ,sendLoop) = ALP(symbols  ( antennaLoop ,sendLoop) ) ;        end    end    %经过信道    H = (randn(Nr, Nt) + sqrt(-1) * randn(Nr , Nt))/ sqrt(2)  ; % 除以sqrt(2) 保证信道的能量为1    n = (randn(Nr , Len) + sqrt(-1)*randn(Nr, Len )) * sqrt(N0) /sqrt(2) ; %保证噪声 n ~N(0,N0)    y = H* symbolsModulation + n ;    %接收端    fprintf('\n正在译码 \n') ;    symbolsDetect = zeros(2 , Len) ;    for sendLoop = 1 :Len         fprintf('%d %d \n',snrLoop ,sendLoop) ;        %得到M*M种组合        dml = zeros(M ,M ,Len) ;        for i1 = 1:M            for i2 = 1:M                dml(i1, i2, sendLoop) = (norm (  y(: , sendLoop) - H * [ALP(i1) ; ALP(i2)] ) )  .^2 ; % 共16种组合            end        end        dml_min = min( reshape(dml( :, :, sendLoop ) .' , 1, M*M)  ) ;        %找到最合适的  然后译码        for j1 = 1: M ;            for j2 = 1:M                if dml(j1 , j2, sendLoop) ==dml_min ;                    symbolsDetect(1, sendLoop) = j1 ;                    symbolsDetect(2, sendLoop) = j2 ;                end            end        end    end    % 一个信噪比结束  统计SER    SER(snrLoop)  = sum ( reshape(symbolsDetect , 1, Len * Nt) ~= reshape (symbols , 1, Len *Nt) )/ (Len * Nt) ;endsemilogy( 0: 2 : 20 , SER)
  L=1000时,仿真结果如下:

转载于:https://my.oschina.net/itfanr/blog/358465

你可能感兴趣的文章
Google最新截屏案例详解
查看>>
2015第31周一
查看>>
2015第31周日
查看>>
在使用EF开发时候,遇到 using 语句中使用的类型必须可隐式转换为“System.IDisposable“ 这个问题。...
查看>>
PHP使用DES进行加密和解密
查看>>
Oracle 如何提交手册Cluster Table事务
查看>>
BeagleBone Black第八课板:建立Eclipse编程环境
查看>>
在服务器上用Fiddler抓取HTTPS流量
查看>>
文件类似的推理 -- 超级本征值(super feature)
查看>>
【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用...
查看>>
各大公司容器云的技术栈对比
查看>>
记一次eclipse无法启动的排查过程
查看>>
【转】jmeter 进行java request测试
查看>>
读书笔记--MapReduce 适用场景 及 常见应用
查看>>
SignalR在Xamarin Android中的使用
查看>>
走过电竞之路的程序员
查看>>
Eclipse和MyEclipse使用技巧--Eclipse中使用Git-让版本管理更简单
查看>>
[转]响应式表格jQuery插件 – Responsive tables
查看>>
8个3D视觉效果的HTML5动画欣赏
查看>>
C#如何在DataGridViewCell中自定义脚本编辑器
查看>>