?? deqam8.m
字號:
%該程序用來完成對輸入信號進行8PSK解調,屬于《鏈路級仿真軟件設計》程序二的8PSK解調模塊
function [llr]=deqam8(x,h,SNR_db)
%[llr]=de8psk(x)
%x是復向量,其中向量元素表示輸入到解調器中的信號
%h為信道估值向量,是復向量,其中向量元素表示對應采樣時刻的信道狀態。
%SNR_db為信道噪比。
%llr為x通過解調器后的輸出信號,是實向量,表示經過相關解調后的數據“似然比“信息。
%SNR_db為信道信噪比,信號功率為1,噪聲功率為n_power
% |
% 4
% 3 | 2
% ----7--------1---
% 8 | 5
% 6
% |
%
%wdy
%編程日期:2006-7-7
%8psk符號對應的二進制比特數
const_qam8=3;
%以二進制比特數來表示所有8psk符號
%計算8psk相應符號位0或1到相應符號位為1或0的符號的距離,所采用的表(三個比特位)
const_num=[1 2 3 4];
%計算1/2/3位比特時,相對于被解調星座位置的偏差(十進制表示)
const_num_1=[4 4 4 4;2 2 4 4;1 2 3 4];
%const_num_0=[0 0 0 0;0 0 2 2;0 1 2 3];
%星座圖表
constel_diagram=[sqrt(2),1+j,-1+j,sqrt(2)*j,1-j,-j*sqrt(2),-sqrt(2),-1-j]/sqrt(2);%[1 2 3 4 5 6 7 8]
%mapping=[1,sqrt(2)/2+sqrt(2)/2*j,-sqrt(2)/2+sqrt(2)/2*j,j,sqrt(2)/2-sqrt(2)/2*j,-j,-1,-sqrt(2)/2-sqrt(2)/2*j];
%SNR_db為信道信噪比,信號功率為1
SNR_linr=exp(SNR_db*log(10)/10);
%SNR_linr=exp(SNR*log(10)/10);
%噪聲方差
%len為輸入信號的長度
len=length(x);
h_square=abs(h).^2;
llr=zeros(1,const_qam8*len);
temp=[];
for k=1:2^const_qam8
temp=[temp,abs(x-constel_diagram(k)).^2];
end
for m=1:len
temp2=temp(m:len:2^const_qam8*len);
for n=1:const_qam8
%計算第n位比特為1的星座圖到被解調星座的最小距離
pad_num_1=const_num+const_num_1(n,:);
dist_square_1=min(temp2(pad_num_1));
%計算第n位比特為0的星座圖到被解調星座的最小距離
pad_num_0=const_num+const_num_1(n,:)-2^(const_qam8-n);
dist_square_0=min(temp2(pad_num_0));
%得到釋然比信息
llr(const_qam8*(m-1)+n)=h_square(m)*(dist_square_1-dist_square_0);
end
end
llr=llr*SNR_linr;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -