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

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

?? cooperativediversity.m

?? 瑞利信道下的AAF,DAF協作分集的實現主函數源碼
?? M
?? 第 1 頁 / 共 2 頁
字號:
%A.1 Main Sequence - main.m
%Cooperative Diversity - Main Sequencetic
% --------------
% Set Parametersnr_of_iterations = 10^3;
SNR = [-10:2.5:15];
use_direct_link = 1;
use_relay = 1;

global statistic;
%statistic = generate_statistic_structure;
global signal;
signal = generate_signal_structure;
signal(1).nr_of_bits = 2^10;
signal.modulation_type = 'QPSK'; % 'BPSK', 'QPSK'
calculate_signal_parameter;

channel = generate_channel_structure;
channel(1).attenuation(1).pattern = 'Rayleigh';% ’no’,’Rayleigh’
channel.attenuation.block_length = 1;
channel(2) = channel(1);
channel(3) = channel(1);
channel(1).attenuation.distance = 1;
channel(2).attenuation.distance = 1;
channel(3).attenuation.distance = 1;

rx = generate_rx_structure;
rx(1).combining_type = 'ESNRC'; %'ERC','FRC','SNRC','ESNRC','MRC'
rx(1).sd_weight = 3;

global relay;
relay = generate_relay_structure;
relay(1).mode = 'AAF'; %'AAF', 'DAF'
relay.magic_genie = 0;
relay(1).rx(1) = rx(1); % same beahaviour

% ----------------
% Start Simulation
BER = zeros(size(SNR));

for iSNR = 1:size(SNR,2)
    channel(1).noise(1).SNR = SNR(iSNR);
    channel(2).noise(1).SNR = SNR(iSNR);
    channel(3).noise(1).SNR = SNR(iSNR);
    
    disp(['progress: ',int2str(iSNR),'/',int2str(size(SNR,2))])
    
    for it = 1:nr_of_iterations;
        % --------------
        % Reset receiver
        rx = rx_reset(rx);
        relay.rx = rx_reset(relay.rx);
        % -----------
        % Direct link
        if (use_direct_link == 1)
            [channel(1), rx] = add_channel_effect(channel(1), rx,...
                signal.symbol_sequence);
            rx = rx_correct_phaseshift(rx, channel(1).attenuation.phi);
        end
        
        % ---------
        % Multi-hop
        if (use_relay == 1)
            % Sender to relay
            [channel(2), relay.rx] = add_channel_effect(channel(2),...
                relay.rx, signal.symbol_sequence);
                relay = prepare_relay2send(relay,channel(2));
                % Relay to destination
                [channel(3), rx] = add_channel_effect(channel(3), rx,...
                    relay.signal2send);
                
                switch relay.mode
                    % Correct phaseshift
                    case 'AAF'
                        rx = rx_correct_phaseshift(rx,...
                            channel(3).attenuation.phi + channel(2).attenuation.phi);
                    case 'DAF'
                        rx = rx_correct_phaseshift(rx,channel(3).attenuation.phi);
                end
            end
            
            % Receiver
            [received_symbol, signal.received_bit_sequence] = ...
                rx_combine(rx, channel, use_relay);
            
            BER(iSNR) = BER(iSNR) + sum(not(...
                signal.received_bit_sequence == signal.bit_sequence));
            
            if (BER(iSNR) > 10000)
                % Stop iterate
                break;
            end
        end % Iteration
        
        if (BER(iSNR)<100)
            warning(['Result might not be precise when SNR equal ',...
                    num2str(SNR(iSNR))])
        end
        BER(iSNR) = BER(iSNR) ./ it ./ signal.nr_of_bits;
    end
    % ------------------------------------
    % Present the result of the simulation
    txt_distance = [' - distance: ',...
            num2str(channel(1).attenuation.distance), ':',...
            num2str(channel(2).attenuation.distance), ':',...
            num2str(channel(3).attenuation.distance)];
    txt_distance='';
    if (use_relay == 1)
        if (relay.magic_genie == 1)
            txt_genie = ' - Magic Genie';
            elsetxt_genie = '';
        end
        
        txt_combining = [' - combining: ', rx(1).combining_type];
        switch rx(1).combining_type
            case 'FRC'
                txt_combining = [txt_combining, ' ',...
                        num2str(rx(1).sd_weight),':1'];
        end
        add2statistic(SNR,BER,[signal.modulation_type, ' - ',...
                relay.mode, txt_combining, txt_distance, txt_genie])
    else
        switch channel(1).attenuation.pattern
            case 'no'
                txt_fading = ' - no fading';
            otherwise
                txt_fading = ' - Rayleigh fading';
                enda
                dd2statistic(SNR,BER,[signal.modulation_type,txt_fading])
        end
        
        % % -----------------
        % % Graphs to compare
        SNR_linear = 10.^(SNR/10);
        % add2statistic(SNR,ber(SNR_linear,’BPSK’, ’Rayleigh’),’BPSK - single link transmission’)
        % add2statistic(SNR,ber_2_senders(SNR_linear, ’QPSK’),’QPSK - 2 senders’)
        show_statistic;
        toc
        
        %A.2 Initialise
        %A.2.1 Signal Parameter - calculate signal parameter.m
        %function calculate_signal_parameter
        % Calculates some additional signal parameters
        global signal;
        % Bits per symbol
        switch signal.modulation_type
            case 'BPSK'
                signal.bits_per_symbol = 1;
                
            case 'QPSK'
                signal.bits_per_symbol = 2;
                if (signal.nr_of_bits/2 ~= ceil(signal.nr_of_bits/2))
                    error(['Using QPSK, number of bits must be a multiple of 2'])
                end
            otherwise
                error(['Modulation-type unknown: ', signal.modulation_type])
        end
        
        % Number of symbols to transfer
        signal.nr_of_symbols = signal.nr_of_bits/signal.bits_per_symbol;
        
        % Bit sequence (random sequence of -1 and 1)
        signal.bit_sequence = floor(rand(1,signal.nr_of_bits)*2)*2-1;
        
        % Symbol sequence
        signal.symbol_sequence = bit2symbol(signal.bit_sequence);
        
        %A.2.2 Reset Receiver - rx reset.m
        function [rx] = rx_reset(rx);
        % Reset the receiver
        
        rx.signal2analyse = [];
        
        %A.3 Channel - add_channel_effect.m
        function [channel, rx] = add_channel_effect(channel,rx,signal_sequence)
        % Add noise fading and path loss
        
        global signal;
        %---------------------
        % Fading and path loss
        
        channel.attenuation.d = 1 / (channel.attenuation.distance ^ 2);
        
        % Path loss is constant for the whole transmission
        
        switch channel.attenuation.pattern
            case 'no'
                % No fading at all (only path loss)
                channel.attenuation.phi = zeros(size(signal_sequence));
                channel.attenuation.h = ones(size(signal_sequence)) * ...
                    channel.attenuation.d;
                channel.attenuation.h_mag = channel.attenuation.h;
                
            case 'Rayleigh'
                % Rayleigh fading and path loss
                nr_of_blocks = ceil(size(signal_sequence,2) /...
                    channel.attenuation.block_length);
                h_block = (randn(nr_of_blocks,1) + j * randn(nr_of_blocks...
                    ,1)) * channel.attenuation.d;
                
                h = reshape((h_block * ...
                    ones(1, channel.attenuation.block_length)), 1,...
                    channel.attenuation.block_length * nr_of_blocks);
                channel.attenuation.h = h(1:(size(signal_sequence,2)));
                
                [channel.attenuation.phi, channel.attenuation.h_mag] =...
                    cart2pol(real(channel.attenuation.h),...
                    imag(channel.attenuation.h));
                
                channel.attenuation.phi = -channel.attenuation.phi;
                
            otherwise
                error(['Fading-pattern unknown: ',...
                        channel.attenuation.pattern])
        end
        
        % ------------
        % Noise (AVGN)
        
        S = mean(abs(signal_sequence).^2);
        SNR_linear = 10^(channel.noise.SNR/10);
        
        %SNR = a^2/(2*sigma^2)
        channel.noise.sigma = sqrt(S / (2 * SNR_linear));
        noise_vector = (randn(size(signal_sequence)) +...
            j * randn(size(signal_sequence))) * channel.noise.sigma;
        % Add fading, path loss and noise to the signal
        rx.received_signal = signal_sequence .* channel.attenuation.h...
            + noise_vector;
        
        %A.4 Receiver
        %A.4.1 Correct Phase Shift - rx correct phaseshift.m
        function [rx] = rx_correct_phaseshift(rx, phi);
        % Correct phaseshift of the received signal
        
        switch rx.combining_type
            case 'MRC'
                % No phaseshift correction in MRC mode.
                % Phaseshift will be corrected when the received signal are
                % combinedrx.signal2analyse = [rx.signal2analyse; rx.received_signal];
                
            otherwise
                % Assuming that perfect phaseshift estimation possible
                rx.signal2analyse = [rx.signal2analyse;...
                        rx.received_signal .* exp(j * (phi))];
        end
        
        %A.4.2 Combine Received Signals - rx combine.m
        function [symbol_sequence, bit_sequence] = rx_combine(rx, channel, use_relay);
        % Combine all received signals
        global signal;
        global relay;
        values2analyse = rx.signal2analyse;
        if (use_relay == 1) & (relay.magic_genie == 1)
            switch relay.mode
                case 'DAF'
                    values2analyse(2,:) = (signal.symbol_sequence ==...
                        relay.symbol_sequence) .* values2analyse(2,:);
                otherwise
                    error(['Magic Genie works only with "DAF"'])
            end
        end
        switch rx.combining_type
            case 'MRC'
                switch relay.mode
                    case 'DAF'
                        if (use_relay == 0)
                            h = conj(channel(1).attenuation.h);
                        else
                            h = conj([channel(1).attenuation.h; 
                                channel(3).attenuation.h]);
                        end
                        bit_sequence = (mean(symbol2bit(h .*...
                            values2analyse),1)>=0)*2-1;
                        
                    otherwise
                        error('Maximum ratio combining works only with DAF')
                end
                
            case {'ERC', 'FRC', 'SNRC', 'ESNRC'}
                % The received values are already in phase
                values2analyse = symbol2bit(values2analyse);
                
                switch rx.combining_type
                    case 'ERC'
                        % Equal Ratio Combining
                        bit_sequence = (mean(values2analyse,1)>=0)*2-1;
                    case 'FRC'
                        % Fixed Ratio Combining
                        if (use_relay == 0)
                            bit_sequence = (mean(values2analyse,1)>=0)*2-1;
                        else
                            bit_sequence = (mean([rx.sd_weight;1] *...
                                ones(1,size(values2analyse,2)) .*...
                                values2analyse,1)>=0)*2-1;
                        end
                        
                    case {'SNRC', 'ESNRC'}
                        % Ratio depending on the SNR
                        if (use_relay == 0)
                            bit_sequence = (mean(values2analyse,1)>=0)*2-1;
                        else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩久久精品| 亚洲精品免费播放| 欧美日韩日日摸| 欧美吻胸吃奶大尺度电影| 99精品国产91久久久久久 | 欧美日韩在线直播| 91福利精品视频| 日本高清不卡视频| 欧美理论电影在线| 欧美日韩国产综合久久| 欧美一区二区播放| 久久综合色8888| 国产精品网曝门| 一区二区三区 在线观看视频| 亚洲一区二区在线播放相泽| 日韩av一级电影| 国产在线麻豆精品观看| 成人动漫一区二区三区| 在线看日本不卡| 日韩欧美国产午夜精品| 欧美国产日韩一二三区| 一区二区三区在线看| 日本中文在线一区| 国产成人免费视频网站| 在线观看成人小视频| 日韩免费视频线观看| 国产精品视频九色porn| 午夜电影久久久| 国产盗摄一区二区三区| 91福利在线观看| 精品国产免费一区二区三区香蕉| 国产精品久久久久一区二区三区| 亚洲一区二区三区四区五区黄 | 久久久精品综合| 亚洲人妖av一区二区| 日韩高清欧美激情| 丁香婷婷综合色啪| 欧美另类一区二区三区| 久久精品视频在线看| 亚洲成人久久影院| 国产精品一二三四| 欧美日韩二区三区| 1区2区3区国产精品| 精品一区二区三区不卡| 欧美亚洲自拍偷拍| 国产欧美日韩一区二区三区在线观看| 夜夜嗨av一区二区三区| 成人国产在线观看| 日韩三级视频中文字幕| 亚洲一区二区成人在线观看| 国产成人在线视频免费播放| 欧美一区二区成人| 亚洲网友自拍偷拍| 91色porny在线视频| 国产欧美精品日韩区二区麻豆天美| 亚洲成年人影院| 色激情天天射综合网| 国产精品视频线看| 国产美女视频一区| 日韩精品中文字幕在线一区| 亚洲高清视频中文字幕| 日本高清视频一区二区| 亚洲欧美在线观看| 成人av在线看| 国产欧美一区二区精品忘忧草 | 视频一区中文字幕国产| 色婷婷久久久久swag精品| 国产精品美女久久久久高潮| 国产一区二区三区免费| 久久综合色婷婷| 国产一区二区伦理片| 日韩欧美久久一区| 极品瑜伽女神91| 久久综合九色欧美综合狠狠| 美女诱惑一区二区| 日韩视频在线一区二区| 美国三级日本三级久久99 | 欧美激情一区二区| 国产乱码字幕精品高清av| 久久综合久久综合九色| 国产一区中文字幕| 久久久久9999亚洲精品| 国产99久久久国产精品潘金| 国产欧美一区二区三区在线看蜜臀| 国产成人欧美日韩在线电影| 国产婷婷一区二区| 国产·精品毛片| 亚洲视频1区2区| 欧美日韩一卡二卡| 免费不卡在线观看| 久久久久久久一区| 波多野结衣亚洲一区| 亚洲精品国产成人久久av盗摄 | 国产成人亚洲综合a∨婷婷| 久久精品一区二区三区不卡牛牛| 国产福利不卡视频| 日韩一区在线播放| 欧美男生操女生| 国产做a爰片久久毛片| 国产欧美一区视频| 欧美亚洲综合色| 国产露脸91国语对白| 亚洲少妇最新在线视频| 欧美一区二区视频免费观看| 国产乱码精品一区二区三区五月婷| 国产精品久久久久久久岛一牛影视| 91成人在线免费观看| 久久99国产精品成人| 日韩理论片在线| 精品国产一区久久| 91搞黄在线观看| 韩国成人福利片在线播放| 亚洲人吸女人奶水| 精品成人a区在线观看| 91久久免费观看| 国产精品资源站在线| 激情综合色综合久久综合| 91亚洲精品乱码久久久久久蜜桃 | 91在线免费播放| 香蕉久久夜色精品国产使用方法| 欧美精品一区二区不卡 | 国产真实精品久久二三区| 亚洲精品一二三| 久久精品视频网| 这里只有精品视频在线观看| 成人黄色免费短视频| 麻豆精品国产传媒mv男同| 亚洲日本乱码在线观看| 久久久久亚洲综合| 日韩一区二区免费高清| 欧美色综合网站| 91玉足脚交白嫩脚丫在线播放| 黄一区二区三区| 日本亚洲视频在线| 一区二区三区小说| 日韩一区中文字幕| 亚洲国产电影在线观看| 日韩一卡二卡三卡| 91麻豆精品久久久久蜜臀 | 久久国产精品99精品国产| 亚洲一区二区三区不卡国产欧美 | 欧美日韩亚洲综合一区| 成人小视频在线观看| 国产精品538一区二区在线| 久久99热这里只有精品| 日韩电影在线一区二区三区| 亚洲动漫第一页| 夜夜夜精品看看| 亚洲风情在线资源站| 亚洲一区二区精品久久av| 亚洲一区二区三区中文字幕 | 久久精品欧美日韩精品| 欧美成人一区二区三区片免费| 欧美日韩高清一区二区| 欧美高清精品3d| 91精品国产黑色紧身裤美女| 欧美一区二区三区免费在线看 | 色偷偷成人一区二区三区91| 99国产欧美另类久久久精品| 99久精品国产| 一本到一区二区三区| 91极品美女在线| 在线不卡一区二区| 欧美r级电影在线观看| 精品久久久三级丝袜| 精品国产伦理网| 国产欧美日韩三区| 亚洲美女精品一区| 午夜视黄欧洲亚洲| 久久精品久久综合| 成人性视频免费网站| 91麻豆精东视频| 制服丝袜成人动漫| 久久亚洲春色中文字幕久久久| 亚洲国产精品成人综合| 亚洲精品自拍动漫在线| 青椒成人免费视频| 国产69精品一区二区亚洲孕妇| av一区二区不卡| 欧美狂野另类xxxxoooo| 久久久久久免费网| 一区二区免费看| 久久国产日韩欧美精品| a在线播放不卡| 日韩欧美一级特黄在线播放| 国产精品色呦呦| 午夜天堂影视香蕉久久| 精品一区二区三区在线观看 | 国产色一区二区| 亚洲午夜精品17c| 国产电影精品久久禁18| 欧美色倩网站大全免费| 久久久国产午夜精品| 午夜精品在线看| 成人app下载| 精品国产百合女同互慰| 亚洲午夜国产一区99re久久| 成人做爰69片免费看网站| 911精品国产一区二区在线| 1024成人网|