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

📄 smart_antenna2.m

📁 matlab信道模型
💻 M
字号:
% OFDM 建模

clear; % 清除内存/command窗口/图形窗口

SubCarNum=64;
OFDMSymbolNum=100;
SymbolNum=SubCarNum*OFDMSymbolNum;

snr=20;
NOISE_EN = 0; ZorM = 1; % 0:ZF=zero force  1:MMSE=最小均方误差
modsch='qask';M_ary=16; Power=5;

%噪声功率
snr_d = 10^(snr/10);
sigma=sqrt(Power/(2*snr_d));
% 信道延时
A=1;
B=[1 -0.25 0.1 -0.05 0.02]; % 延时扩展到第5个符号

symbol = zeros(SubCarNum,1);  % OFDM符号
SYMBOL = zeros(SubCarNum,1);  % OFDM符号 ==> ifft
rSYMBOL = zeros(SubCarNum,1); % H*SYMBOL + noise
rsymbol = zeros(SubCarNum,1); % eSYMBOL ==> fft
SYMBOL1 = zeros(SubCarNum,1);  % OFDM符号 =X=> ifft
rSYMBOL1 = zeros(SubCarNum,1); % H*SYMBOL + noise
rsymbol1 = zeros(SubCarNum,1); % eSYMBOL =X=> fft
b = zeros(SymbolNum,1);    % 发送数据
sig = zeros(SymbolNum,1);  % 发送符号
rsig = zeros(SymbolNum,1);  % 接收符号
rb = zeros(SymbolNum,1);    % 接收数据
rsig1 = zeros(SymbolNum,1);  % 接收符号
rb1 = zeros(SymbolNum,1);    % 接收数据


b = randint(SymbolNum,1,M_ary);   % 数据
sig = dmodce(b,1,1,modsch,M_ary); % 调制
%分组fft
for ii=1:SubCarNum:SymbolNum-1
    for jj=1:1:SubCarNum    % 分组
        symbol(jj) = sig(ii+jj-1);
    end
    SYMBOL=ifft([symbol;conj(symbol(SubCarNum:-1:1))],2*SubCarNum)*sqrt(2*SubCarNum);  % ifft
    nr = normrnd(0,sigma,SubCarNum,1); % 噪声
    ni = normrnd(0,sigma,SubCarNum,1);
    noise(ii:ii-1+SubCarNum,1)=nr+i*ni;
    rSYMBOL = filter(B,A,SYMBOL);
    % rSYMBOL = H * SYMBOL;
    if NOISE_EN == 1    % 使用噪声
        rSYMBOL = rSYMBOL + [noise(ii:ii-1+SubCarNum); noise(ii:ii-1+SubCarNum)];
    end
    rsymbol = fft(rSYMBOL,SubCarNum*2)/sqrt(2*SubCarNum); % fft
    rsymbol(SubCarNum+1:SubCarNum*2)=[];
    rsig(ii:ii-1+SubCarNum) = rsymbol; 
end
rb = ddemodce(rsig,1,1,modsch,M_ary); % 调制

rsig1=filter(B,A,sig);
if NOISE_EN==1
    rsig1 = rsig1 + noise;
end
rb1 = ddemodce(rsig1,1,1,modsch,M_ary); % 调制

[errnum,errrat] = symerr(b,rb,'overall');
[errnum1,errrat1] = symerr(b,rb1,'overall');
OFDMerr_Normalerr=[errnum,errrat; errnum1,errrat1]

plot([1:SymbolNum],abs(rb-b),'o',[1:SymbolNum],abs(rb1-b),'*');grid

⌨️ 快捷键说明

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