亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ber_ofdm_64s_1e4_withclipping_snr20_differcr_1_2_3_nofilter.m

?? 限幅方法降低OFDM系統誤碼率
?? M
?? 第 1 頁 / 共 2 頁
字號:
echo  off;clear all;close all;clc;
fprintf( 'OFDM仿真\n') ;
tic
%無限幅
% --------------------------------------------- %
%                   參數定義                     %
% --------------------------------------------- %
% Initialize the parameters
NumLoop = 10000;
NumSubc = 64;
NumCP = 8;
SyncDelay = 0;
%-----------------------------------------------

%-----------------------------------------------
% Generate the random binary stream for transmit test
%-----------------------------------------------
BitsTx = floor(rand(1,NumLoop*NumSubc)*2);%用rand產生0:1的隨機數,不會產生負值,如果用randn會產生負值;乘以2是為了使用floor函數

% --------------------------------------------- %
%                   QAM MODULATION              %
% --------------------------------------------- %
% Modulate (Generates QAM symbols)
% input: BitsTx(1,NumLoop*NumSubc); output:SymQAM(NumLoop,NumSubc/2)
SymQAMtmp = reshape(BitsTx,2,NumLoop*NumSubc/2).';
SymQAMtmptmp = bi2de(SymQAMtmp,2,'left-msb');%/?????(bi2de)
QAMTable = [-1-i -1+i 1-i 1+i];
SymQAM = QAMTable(SymQAMtmptmp+1);

% --------------------------------------------- %
%                   IFFT   input: SymQAM(NumLoop,NumSubc/2); output: SymIFFT(NumSubc,NumLoop)
% --------------------------------------------- %
SymIFFT = zeros(NumSubc,NumLoop);
SymIFFTtmp = reshape(SymQAM,NumSubc/2,NumLoop)
SymIFFTtmptmp = zeros(NumSubc,NumLoop);
SymIFFTtmptmp(1,:) = real(SymIFFTtmp(1,:)); % 實數
SymIFFTtmptmp(NumSubc/2+1,:) = imag(SymIFFTtmp(1,:)); % 實數
SymIFFTtmptmp(2:NumSubc/2,:) = SymIFFTtmp(2:NumSubc/2,:);
SymIFFTtmptmp((NumSubc/2+2):NumSubc,:) = flipdim(conj(SymIFFTtmp(2:NumSubc/2,:)),1);

SymIFFT = ifft(SymIFFTtmp,NumSubc,1);%(后邊這個1是干什么的?)

% --------------------------------------------- %
%             Add cyclic prefix                 %
% --------------------------------------------- %
% input: SymIFFT(NumSubc,NumLoop); output: SymCP(NumSubc + NumCP,NumLoop)
NumAddPrefix = NumSubc + NumCP;
SymCP = zeros(NumAddPrefix,NumLoop);
RowPrefix = (NumSubc - NumCP + 1):NumSubc;
SymCP = [SymIFFT(RowPrefix,:);SymIFFT];%(把保護間隔放在符號的前面)

% --------------------------------------------- %
%             Go through the channel            %
% --------------------------------------------- %
% input: SymCP(NumSubc + NumCP,NumLoop); output: SymCh(1,(NumSubc + NumCP)*NumLoop)
SymChtmp = zeros(1,(NumSubc + NumCP)*NumLoop);
SymChtmp = SymCP(:).';   % 進行這個轉置操作之后就成了一個矢量;       并串變換
% 相當于把矩陣的列向量依次排列 改變為一個行向量

%--------------------------------------------------
% Add the AWGN
%--------------------------------------------------
snrIndex = 0;
BerSnrTable_NOCP = zeros(7,2);
for snr=0:2:13;  % = SNR + 10*log10(log2(2));
    snrIndex = snrIndex+1;
    BerSnrTable_NOCP(snrIndex,1) = snr;
    SymCh = awgn(SymChtmp,snr,'measured');

    % --------------------------------------------- %
    %            Remove Guard Intervals             %
    % --------------------------------------------- %
    % input: SymCh(1,(NumSubc + NumCP)*NumLoop); output: SymDeCP(NumSubc,NumLoop)
    SymDeCP = zeros(NumSubc,NumLoop);
    SymDeCPtmp = reshape(SymCh,NumSubc + NumCP,NumLoop);
    SymDeCP = SymDeCPtmp((NumCP+1+SyncDelay):NumAddPrefix+SyncDelay,:);

    % --------------------------------------------- %
    %                     FFT                       %
    % --------------------------------------------- %
    % input: SymDeCP(NumSubc,NumLoop); output: SymFFT(NumSubc,NumLoop)
    SymFFT = fft(SymDeCP,NumSubc,1);

    % --------------------------------------------- %
    %        Make Decision(Include DeQAM)           %
    % --------------------------------------------- %
    % SymFFT(NumSubc,NumLoop); output: SymDec(NumSubc,NumLoop)
    SymDec = zeros(NumSubc,NumLoop);
    SymEqtmp(1,:) = SymFFT(1,:)+i*SymFFT(NumSubc/2+1,:);
    SymEqtmp(2:NumSubc/2,:) = SymFFT(2:NumSubc/2,:);%???????????(SymEqtmp是哪里來的?)
    for m = 1:NumLoop
        for n = 1:NumSubc/2
            Real = real(SymEqtmp(n,m));
            Imag = imag(SymEqtmp(n,m));
            if( abs((Real -1)) < abs((Real +1)))%????????每個點到坐標軸上1和-1的距離,哪個離1近就把1付給它,同理得-1
                SymDec(2*n-1,m) = 1;
            else
                SymDec(2*n-1,m) = 0;%把實部放在奇數行
            end

            if( abs((Imag -1)) < abs((Imag +1  )) )
                SymDec(2*n,m) = 1;

            else
                SymDec(2*n,m) = 0;%把虛部放在偶數行
            end
        end
    end
    
    %----------------------------------------------------------------------
    % Bit Error
    %----------------------------------------------------------------------
    BitsRx = zeros(1,NumSubc*NumLoop);
    BitsRx = SymDec(:).';
    [Num,Ber] = symerr(BitsTx,BitsRx)%(BitsTx是原始數據符號)
    %BerSnrTable(snr+1,2) = Num ;
    BerSnrTable_NOCP(snrIndex,2) = Ber ;%BerSnrTable(snr+1,3) = Ber ;
end;
BerSnrTable_NOCP_plot=zeros(7,1);
BerSnrTable_NOCP_plot=BerSnrTable_NOCP(:,2);
save('NO_CR','BerSnrTable_NOCP_plot');
    semilogy(BerSnrTable_NOCP(:,1),BerSnrTable_NOCP_plot,'o-');
    legend('orignal');
    xlabel('SNR');
    ylabel('BER');
    grid on;
    hold on;
    % -------------------------------------------------------CR-----------------
    time_of_sim = toc
% end;




% %CR=1.2
% % --------------------------------------------- %
% %                   參數定義                     %
% % --------------------------------------------- %
% % Initialize the parameters
% % NumLoop = 10000;
% % NumSubc = 64;
% % NumCP = 8;
% % SyncDelay = 0;
% %-----------------------------------------------

%-----------------------------------------------
% Generate the random binary stream for transmit test
%-----------------------------------------------
BitsTx = floor(rand(1,NumLoop*NumSubc)*2);%用rand產生0:1的隨機數,不會產生負值,如果用randn會產生負值;乘以2是為了使用floor函數

% --------------------------------------------- %
%                   QAM MODULATION              %
% --------------------------------------------- %
% Modulate (Generates QAM symbols)
% input: BitsTx(1,NumLoop*NumSubc); output:SymQAM(NumLoop,NumSubc/2)
SymQAMtmp = reshape(BitsTx,2,NumLoop*NumSubc/2).';
SymQAMtmptmp = bi2de(SymQAMtmp,2,'left-msb');%/?????(bi2de)
%--------------------------------------------------------------------------

QAMTable = [-1-i -1+i 1-i 1+i];
SymQAM = QAMTable(SymQAMtmptmp+1);

% --------------------------------------------- %
%                 IFFT   input: SymQAM(NumLoop,NumSubc/2); output: SymIFFT(NumSubc,NumLoop)
% --------------------------------------------- %

SymIFFT = zeros(NumSubc,NumLoop);
SymIFFTtmp = reshape(SymQAM,NumSubc/2,NumLoop);%(為什么載波數除以2)
SymIFFTtmptmp = zeros(NumSubc,NumLoop);
SymIFFTtmptmp(1,:) = real(SymIFFTtmp(1,:)); % 實數
SymIFFTtmptmp(NumSubc/2+1,:) = imag(SymIFFTtmp(1,:)); % 實數

SymIFFTtmptmp(2:NumSubc/2,:) = SymIFFTtmp(2:NumSubc/2,:);
SymIFFTtmptmp((NumSubc/2+2):NumSubc,:) = flipdim(conj(SymIFFTtmp(2:NumSubc/2,:)),1);

SymIFFT = ifft(SymIFFTtmp,NumSubc,1);%(后邊這個1是干什么的?)

% --------------------------------------------- %
%             Add cyclic prefix                 %
% --------------------------------------------- %
% input: SymIFFT(NumSubc,NumLoop); output: SymCP(NumSubc + NumCP,NumLoop)
NumAddPrefix = NumSubc + NumCP;
SymCP = zeros(NumAddPrefix,NumLoop);
RowPrefix = (NumSubc - NumCP + 1):NumSubc;
SymCP = [SymIFFT(RowPrefix,:);SymIFFT];%(把保護間隔放在符號的前面)

% --------------------------------------------- %
%                  限幅                         %
% --------------------------------------------- %
CR = 1.2;
SymCP_Clip_last =  zeros(NumAddPrefix,NumLoop);
SymCP_Clip_temp3 = zeros(NumAddPrefix,1);
%SymCP_Clip_temp2 = zeros()

for nSymbol = 1:NumLoop
    Signal_Power = abs(SymCP(:,nSymbol).^2);
    Peak_Power = max(Signal_Power); %Peak_Power = max(Signal_Power,[],2);
    Mean_Power = mean(Signal_Power);%Mean_Power = mean(Signal_Power,2);
    
    A = CR*sqrt(Mean_Power);
    SymCP_Clip_temp1 = SymCP(:,nSymbol)';%把第nSymbol列的值轉換成行向量并付給一個向量
    SymCP_Clip_temp2 = SymCP_Clip_temp1(Signal_Power>A);
    SymCP_Clip = A*SymCP_Clip_temp2./abs(SymCP_Clip_temp2);
    SymCP_Clip_temp1(Signal_Power>A) = SymCP_Clip;
    
    SymCP_Clip_temp3 = SymCP_Clip_temp1'
    SymCP_Clip_last(:,nSymbol) = SymCP_Clip_temp3;
end
    
    
% --------------------------------------------- %
%             Go through the channel            %
% --------------------------------------------- %
% input: SymCP(NumSubc + NumCP,NumLoop); output: SymCh(1,(NumSubc + NumCP)*NumLoop)
SymChtmp = zeros(1,(NumSubc + NumCP)*NumLoop);
SymChtmp = SymCP_Clip_last(:).';   % 進行這個轉置操作之后就成了一個矢量;       并串變換
% 相當于把矩陣的列向量依次排列 改變為一個行向量

% % --------------------------------------------- %
% %濾波
% % --------------------------------------------- %
% Ch = [1 1/2 1/4];
% SymChtmptmp = filter(Ch,1,SymChtmp);%濾波
snrIndex4 = 0;
BerSnrTable_CR1P2 = zeros(7,2);%?????
for snr=0:2:13;  % = SNR + 10*log10(log2(2));
    snrIndex4=snrIndex4+1;
    BerSnrTable_CR1P2(snrIndex4,1) = snr;
    SymCh = awgn(SymChtmp,snr,'measured');

    % --------------------------------------------- %
    %            Remove Guard Intervals             %
    % --------------------------------------------- %
    % input: SymCh(1,(NumSubc + NumCP)*NumLoop); output: SymDeCP(NumSubc,NumLoop)
    SymDeCP = zeros(NumSubc,NumLoop);
    SymDeCPtmp = reshape(SymCh,NumSubc + NumCP,NumLoop);
    SymDeCP = SymDeCPtmp((NumCP+1+SyncDelay):NumAddPrefix+SyncDelay,:);

    % --------------------------------------------- %
    %                     FFT                       %
    % --------------------------------------------- %
    % input: SymDeCP(NumSubc,NumLoop); output: SymFFT(NumSubc,NumLoop)
    SymFFT = fft(SymDeCP,NumSubc,1);

    % --------------------------------------------- %
    %        Make Decision(Include DeQAM)           %
    % --------------------------------------------- %
    % SymFFT(NumSubc,NumLoop); output: SymDec(NumSubc,NumLoop)
    SymDec = zeros(NumSubc,NumLoop);
    SymEqtmp(1,:) = SymFFT(1,:)+i*SymFFT(NumSubc/2+1,:);
    SymEqtmp(2:NumSubc/2,:) = SymFFT(2:NumSubc/2,:);%???????????(SymEqtmp是哪里來的?)
    for m = 1:NumLoop
        for n = 1:NumSubc/2
            Real = real(SymEqtmp(n,m));
            Imag = imag(SymEqtmp(n,m));
            if( abs((Real -1)) < abs((Real +1)))%????????每個點到坐標軸上1和-1的距離,哪個離1近就把1付給它,同理得-1
                SymDec(2*n-1,m) = 1;
            else
                SymDec(2*n-1,m) = 0;%把實部放在奇數行
            end

            if( abs((Imag -1)) < abs((Imag +1  )) )
                SymDec(2*n,m) = 1;

            else
                SymDec(2*n,m) = 0;%把虛部放在偶數行
            end
        end
    end
    %----------------------------------------------------------------------
    % Bit Error
    %----------------------------------------------------------------------
    BitsRx = zeros(1,NumSubc*NumLoop);
    BitsRx = SymDec(:).';
    [Num,Ber] = symerr(BitsTx,BitsRx)%(BitsTx是原始數據符號)
    %BerSnrTable(snr+1,2) = Num ;
    BerSnrTable_CR1P2 (snrIndex4,2) = Ber ;%BerSnrTable(snr+1,3) = Ber ;
end;
BerSnrTable_CR1P2_plot = zeros(7,1);
BerSnrTable_CR1P2_plot=BerSnrTable_CR1P2(:,2);
save('CR_1P2','BerSnrTable_CR1P2_plot');
    semilogy(BerSnrTable_CR1P2(:,1),BerSnrTable_CR1P2_plot,'+-r');
    legend('CR=3');
%     xlabel('SNR');
%     ylabel('BER');
    grid on;
    hold on;
    % ------------------------------------------------------------------------
    time_of_sim = toc



%CR=0.8
% --------------------------------------------- %
%                   參數定義                     %
% --------------------------------------------- %
% Initialize the parameters
% NumLoop = 10000;
% NumSubc = 64;
% NumCP = 8;
% SyncDelay = 0;
%-----------------------------------------------

%-----------------------------------------------
% Generate the random binary stream for transmit test
%-----------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区不卡视频| av在线播放成人| 高清成人在线观看| 欧美日韩国产综合久久| 国产精品美女久久久久av爽李琼 | 欧美一区二区三区色| 欧美韩国日本不卡| 九色|91porny| 欧美区一区二区三区| 亚洲精品五月天| 成人黄页在线观看| 久久一区二区三区四区| 日韩福利视频导航| 欧美日本韩国一区| 亚洲成人激情av| 欧美成人精品福利| 亚洲国产视频一区| 色综合天天狠狠| 中文字幕一区二区三区不卡| 国产精品一区二区x88av| 精品国产一区二区三区四区四 | 99在线视频精品| 欧美精品一区二区三区在线播放| 天天影视色香欲综合网老头| 在线观看国产一区二区| 亚洲日本va在线观看| 日本韩国一区二区三区视频| 国产精品国产馆在线真实露脸 | 欧美肥妇free| 日韩和欧美一区二区三区| 欧美日韩精品高清| 日韩不卡一区二区三区| 日韩一区二区在线观看视频播放| 琪琪久久久久日韩精品| 日韩欧美色电影| 韩国av一区二区三区四区 | 67194成人在线观看| 午夜av一区二区| 日韩免费观看高清完整版| 久久国产麻豆精品| 国产色一区二区| 91在线免费播放| 亚洲一区二区在线免费观看视频| 91福利精品第一导航| 亚洲成精国产精品女| 日韩一区二区精品葵司在线| 国产精品中文有码| 综合中文字幕亚洲| 欧美综合久久久| 久草在线在线精品观看| 国产女人18毛片水真多成人如厕| 99久久婷婷国产| 丝袜亚洲精品中文字幕一区| 久久尤物电影视频在线观看| 成人av在线影院| 午夜精品久久久久久久99水蜜桃| 日韩一卡二卡三卡四卡| 成人美女视频在线看| 亚洲五月六月丁香激情| 精品久久久久av影院| 成a人片亚洲日本久久| 香蕉成人伊视频在线观看| 久久综合久久综合九色| 一本久久综合亚洲鲁鲁五月天| 高清久久久久久| 亚洲一区电影777| 精品对白一区国产伦| 色噜噜夜夜夜综合网| 激情综合网av| 亚洲一二三四在线观看| 精品免费国产一区二区三区四区| 色综合久久天天| 91丝袜高跟美女视频| 成人做爰69片免费看网站| 亚洲综合视频在线| 久久久久久久网| 欧美日韩一区二区三区四区| 艳妇臀荡乳欲伦亚洲一区| 国产人成亚洲第一网站在线播放 | 国产精品一品二品| 国产九九视频一区二区三区| 国产乱人伦偷精品视频不卡| 国产成人精品亚洲午夜麻豆| 成人免费黄色在线| 91小视频在线免费看| 欧美亚洲国产一区二区三区va| 欧美日韩亚洲综合在线 | 国产东北露脸精品视频| 高清视频一区二区| 一本一道综合狠狠老| 欧美日韩精品一区二区三区蜜桃 | 在线成人午夜影院| 欧美不卡视频一区| 国产精品精品国产色婷婷| 亚洲素人一区二区| 日韩有码一区二区三区| 久久国产生活片100| 成人丝袜高跟foot| 精品视频在线看| 欧美刺激午夜性久久久久久久| 国产性色一区二区| 亚洲综合男人的天堂| 麻豆精品一区二区av白丝在线| 精品一区二区在线播放| 91丨九色丨尤物| 91精品国产色综合久久不卡电影| 亚洲精品在线免费观看视频| 亚洲欧洲另类国产综合| 香蕉成人啪国产精品视频综合网| 狠狠色丁香婷婷综合| 95精品视频在线| 欧美电视剧免费全集观看| 国产精品福利av| 日韩av一区二区三区| 成人福利电影精品一区二区在线观看| 日本韩国欧美在线| 国产三级久久久| 午夜影院在线观看欧美| 岛国精品在线观看| 在线不卡一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲一区二区三区四区五区中文| 国产在线精品一区二区三区不卡 | 91精品欧美一区二区三区综合在 | 日韩成人av影视| av男人天堂一区| 精品欧美乱码久久久久久 | 日日摸夜夜添夜夜添亚洲女人| 国产美女一区二区三区| 欧美色图片你懂的| 国产亚洲欧美一级| 免费在线观看视频一区| 91久久久免费一区二区| 国产免费成人在线视频| 日韩av在线免费观看不卡| 色综合久久综合网| 国产精品色眯眯| 国产麻豆成人精品| 欧美va在线播放| 日韩精品久久久久久| 91论坛在线播放| 国产精品福利影院| 国产69精品久久久久毛片| 精品久久久久久久久久久久久久久| 一区二区免费在线播放| 99久久国产免费看| 国产精品久久久久久福利一牛影视 | 日本韩国一区二区三区视频| 国产欧美精品一区aⅴ影院| 麻豆91在线观看| 日韩欧美三级在线| 麻豆精品一区二区av白丝在线| 在线综合视频播放| 日韩激情在线观看| 欧美顶级少妇做爰| 日韩国产在线一| 在线综合视频播放| 中文字幕乱码日本亚洲一区二区| 国产一区二区网址| 国产蜜臀av在线一区二区三区| 国产精品一区二区视频| 久久综合久久综合亚洲| 国内外精品视频| 国产日韩欧美a| 成人白浆超碰人人人人| |精品福利一区二区三区| 不卡一卡二卡三乱码免费网站| 国产欧美日产一区| 91免费看视频| 亚洲资源在线观看| 欧美日本在线播放| 久久精品噜噜噜成人88aⅴ| 日韩欧美一级二级三级久久久| 另类小说综合欧美亚洲| 久久久久高清精品| av在线不卡电影| 亚洲一区欧美一区| 欧美一二三区精品| 国产伦精品一区二区三区免费迷| 国产日韩欧美不卡在线| 97久久超碰国产精品| 亚洲一区二区在线视频| 欧美麻豆精品久久久久久| 欧美日韩在线播放三区| 日本sm残虐另类| 久久久久国产精品麻豆| 91浏览器入口在线观看| 午夜视频在线观看一区二区| 日韩欧美激情一区| www.日本不卡| 日韩中文字幕不卡| 国产女主播在线一区二区| 欧美综合一区二区| 久久aⅴ国产欧美74aaa| 中文字幕亚洲精品在线观看| 欧美日韩综合一区| 国产成人啪午夜精品网站男同| 亚洲精品国产视频| 日韩美女一区二区三区四区| 成人高清视频在线|