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

📄 stcc_ofdm_freq.m

📁 STTC和OFDM编程
💻 M
字号:
function Pb=stcc_ofdm_freq(SNR_dB)
% clc
% clear all
% SNR_dB=24;
%------------------------------------------------------采用QPSK调制
Cons=sqrt(1/2)*[1 j -1 -j];
%------------------------------------------------------采用指数衰落信道
 atten_power = exp(-[0:5]);%功率时延谱 0us~5us
 path_delay = [0:5]*20;  
 aver_power=atten_power/sum(atten_power);% 进行功率归一化
%------------------------------------------------------信噪比,这里定义的信噪比是接收天线上每个子载波上的信噪比,把每个子载波上的信号功率归一。
Eb=1;
SNR=10^(SNR_dB/10);
NoisePower=Eb/(2*SNR);
%-----------------------------------------------------
N=128;  % OFDM的子载波数
Frame=400; % 仿真的OFDM符号数
ErrorNum=0; %误码统计
for i=1:1:Frame
%------------------------------------------------------- 产生信道的频域响应
    len=length(path_delay);
    for k=1:1:len
        h1(k)=sqrt(1/2*aver_power(k))*(randn(1)+j*randn(1)); %产生时域的信道,6条径
        h2(k)=sqrt(1/2*aver_power(k))*(randn(1)+j*randn(1));
    end
    H1=zeros(1,N);
    H2=zeros(1,N);
    for k=1:1:len
     H1(path_delay(k)+1)=h1(k);
     H2(path_delay(k)+1)=h2(k);
    end
    H1_freq=fft(H1); %时域的信道进行FFT,转化为频域的形式
    H2_freq=fft(H2);
%---------------------------------------------------------产生发送的OFDM符号
 send=STTC_code(N-1); %进行空时网格编码
 send1=send(1,:);
 send2=send(2,:);
 Noise=sqrt(NoisePower)*(randn(1,N)+randn(1,N));
 r=H1_freq.*send1+H2_freq.*send2+Noise; %在两个天线上发送
 R=decode(r,H1_freq,H2_freq);%运用维特比译码
 ErrorNum=ErrorNum+sum(send(2,1:1:N)~=R);%统计总的误码个数
end
Pb=ErrorNum/(Frame*N) %解出误码率
 


⌨️ 快捷键说明

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