⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cs_origin.m

📁 是一个根据最新LTE标准写的一个链路实现程序和信道估计程序
💻 M
字号:
function [estchan_one_one,estchan_two_one,estchan_one_two,estchan_two_two]=channelestimation(polit_re_p1,polit_re_p2,daopin1,daopin2)
x1 = polit_re_p1;
x2 = polit_re_p2;
%利用发射和接收到的导频进行信道估计
for i=1:13
    for j=1:180
        if daopin1(j,i)~=0
            d_channel_one_one(j,i)=daochannel_one_one(j,i)/daopin1(j,i);
            d_channel_one_two(j,i)=daochannel_one_two(j,i)/daopin1(j,i);
        else
            d_channel_one_one(j,i)=0;
            d_channel_one_two(j,i)=0;
        end
        if daopin2(j,i)~=0
           d_channel_two_one(j,i)=daochannel_two_one(j,i)/daopin2(j,i);
           d_channel_two_two(j,i)=daochannel_two_two(j,i)/daopin2(j,i);
        else
            d_channel_two_one(j,i)=0;
            d_channel_two_two(j,i)=0;
        end
        
    end
end
%实现导频处信道的估计
channel_one_one=d_channel_one_one;
channel_one_two=d_channel_one_two;
channel_two_one=d_channel_two_one;
channel_two_two=d_channel_two_two;
%接下来实现内插估计一列的其他导频;
m=1;
n=1;
for i=1:13
    for j=1:180
        if channel_one_one(j,i)~=0
            chan11(m)=channel_one_one(j,i);
            chan12(m)=channel_one_two(j,i);
            m=m+1;
        end
        if channel_two_one(j,i)~=0
            chan21(n)=channel_two_one(j,i);
            chan22(n)=channel_two_two(j,i);
            n=n+1;
        end
    end
end
chan11_1=chan11(1:30);
chan11_2=chan11(31:60);
chan11_3=chan11(61:90);
chan11_4=chan11(91:120);
%将导频处理用于插值,天线一到一的
chan12_1=chan12(1:30);
chan12_2=chan12(31:60);
chan12_3=chan12(61:90);
chan12_4=chan12(91:120);
%天线一到天线二的
chan21_1=chan21(1:30);
chan21_2=chan21(31:60);
chan21_3=chan21(61:90);
chan21_4=chan21(91:120);
%天线二到天线一的
chan22_1=chan22(1:30);
chan22_2=chan22(31:60);
chan22_3=chan22(61:90);
chan22_4=chan22(91:120);
%天线二到天线二的
    x1=3:6:180;
    x2=1:180;
    chan_one_one1=interp1(x1,chan11_1,x2,'linear','extrap');
    chan_one_one3=interp1(x1,chan11_3,x2,'linear','extrap');
    chan_one_two1=interp1(x1,chan12_1,x2,'linear','extrap');
    chan_one_two3=interp1(x1,chan12_3,x2,'linear','extrap');
    chan_two_one2=interp1(x1,chan21_2,x2,'linear','extrap');
    chan_two_one4=interp1(x1,chan21_4,x2,'linear','extrap');
    chan_two_two2=interp1(x1,chan22_2,x2,'linear','extrap');
    chan_two_two4=interp1(x1,chan22_4,x2,'linear','extrap');
    x3=6:6:180;
    chan_one_one2=interp1(x3,chan11_2,x2,'linear','extrap');
    chan_one_one4=interp1(x3,chan11_4,x2,'linear','extrap');
    chan_one_two2=interp1(x3,chan12_2,x2,'linear','extrap');
    chan_one_two4=interp1(x3,chan12_4,x2,'linear','extrap');
    chan_two_one1=interp1(x3,chan21_1,x2,'linear','extrap');
    chan_two_one3=interp1(x3,chan21_3,x2,'linear','extrap');
    chan_two_two1=interp1(x3,chan22_1,x2,'linear','extrap');
    chan_two_two3=interp1(x3,chan22_3,x2,'linear','extrap');
%实现每列导频的插值
    chan_one_one_s1=cat(2,chan_one_one1',chan_one_one2');
    chan_one_two_s1=cat(2,chan_one_two1',chan_one_two2');
    chan_two_one_s1=cat(2,chan_two_one1',chan_two_one2');
    chan_two_two_s1=cat(2,chan_two_two1',chan_two_two2');
    for j=1:180
        x0=1:4:5;
        x1=1:7;
        chan_one_one_slot1(j,:)=interp1(x0,chan_one_one_s1(j,:),x1,'linear','extrap');
        chan_one_two_slot1(j,:)=interp1(x0,chan_one_two_s1(j,:),x1,'linear','extrap');
        chan_two_one_slot1(j,:)=interp1(x0,chan_two_one_s1(j,:),x1,'linear','extrap');
        chan_two_two_slot1(j,:)=interp1(x0,chan_two_two_s1(j,:),x1,'linear','extrap');
    end
    chan_one_one_s2=cat(2,chan_one_one3',chan_one_one4');
    chan_one_two_s2=cat(2,chan_one_two3',chan_one_two4');
    chan_two_one_s2=cat(2,chan_two_one3',chan_two_one4');
    chan_two_two_s2=cat(2,chan_two_two3',chan_two_two4');
    for j=1:180
        x0=1:3:5;
        x1=1:6;
        chan_one_one_slot2(j,:)=interp1(x0,chan_one_one_s2(j,:),x1,'linear','extrap');
        chan_one_two_slot2(j,:)=interp1(x0,chan_one_two_s2(j,:),x1,'linear','extrap');
        chan_two_one_slot2(j,:)=interp1(x0,chan_two_one_s2(j,:),x1,'linear','extrap');
        chan_two_two_slot2(j,:)=interp1(x0,chan_two_two_s2(j,:),x1,'linear','extrap');
    end   
%实现每时隙的导频插值
estchan_one_one=cat(2,chan_one_one_slot1,chan_one_one_slot2);
estchan_one_two=cat(2,chan_one_two_slot1,chan_one_two_slot2);
estchan_two_one=cat(2,chan_two_one_slot1,chan_two_one_slot2);        
estchan_two_two=cat(2,chan_two_two_slot1,chan_two_two_slot2);        
%得到整个的导频矩阵

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -