kết quả từ 1 tới 4 trên 4

Ðề tài: code matlab

  1. #1
    Tham gia
    Oct 2014
    Nơi Cư Ngụ
    tphcm
    Bài viết
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Mặc định code matlab

    chào anh (chị)!
    em có sưu tầm đoạn code về TC (kĩ thuật phân tập thu trong mimo). không biết bị lỗi gì, nay đăng lên đây nhờ các pro xem giúp. em xin cảm ơn
    lỗi khi chạy ( Undefined function or method 'Transmit_Generator' for input arguments of type 'double'.)


    Code:
    N_datapacket=600; %number of data packet
    for m = 0:4:4;
    N_receive=2;% number of receive antenna
    N_transmit=1;% number of transmit antenna
    SNR = [2:2:30].'; % signal noise ratio
    N_datasymbol = 30; % number of data symbol
    N_fft =128; % size of FFT
    N_cp = 10;% CP length in normal mode
    Powersignal= N_transmit*1; % power of noise-free received signal N_symOFDM =N_fft + N_cp; % OFDM symbol length after CP insertion
    L = 5;% number of resolvable multipaths
    PDP = exp(-(0:L-1)/4)/sum( exp(-(0:L-1)/4) ); % function of Power Delay Profile
    M_QAM =64; % MQAM modulation level used
    length_subcarrier = log2(M_QAM); % number of bits per 1 subcarrier
    BER = zeros(1,length(SNR));
    tic
    for SNR_index = 1:length(SNR)
    No = Powersignal/(10^(SNR(SNR_index)/10)); % power of AWGN
    for p = 1:N_datapacket
    disp(['SNR=', num2str(SNR(SNR_index)), '; dataPacket=', num2str(p)]);
    [x,data_bit_seq,data_sym] = Transmit_Generator(length_subcarrier,N_fft,N_datas ymbol,L);
    h = zeros(L,N_transmit,N_receive);
    H = zeros(N_fft, 1, N_receive);
    for nr = 1:N_receive
    h(:,1,nr) = sqrt(PDP.'/2).*( randn(L,1) + 1j*randn(L,1) );
    [y,Y_FFT] = Receive_Generator(N_transmit,N_receive,L,N_fft,No, h,x);
    for k = 1:N_fft
    H(k, 1, nr) = exp(-2j*pi*(k-1)*[0:L-1]/N_fft)*h(:,1,nr);
    end
    end
    %--------------------------
    recoverbit = zeros(1,length_subcarrier*N_fft*N_datasymbol);
    for j = 1:N_datasymbol
    recoversymbol = zeros(N_fft,1);
    for i =1:N_fft %go through all subcarrier
    y1=0;
    h1=0;
    if m == 0 % No Diversity
    y1=Y_FFT(i,nr,j);
    h1=H(i,1,nr);
    x1=y1/h1;
    recoversymbol(i)=[x1];
    elseif m == 4 % Threshold Combining
    Powersignal = N_transmit*1;
    threshold = Powersignal; nr = 1;
    count = 0;
    while ((abs(H(i,1,nr)) < threshold) && (count < N_receive))
    nr = mod(nr,N_receive)+1;
    count = count + 1;
    end
    recoversymbol(i) = Y_FFT(i,nr,j)/H(i,1,nr);

    end
    end
    recoverbit((length_subcarrier*N_fft*(j-1)+1):length_subcarrier*N_fft*j) = MQAM_Demodulator(recoversymbol,2^length_subcarrier );
    end
    %-----------------------------
    BER(SNR_index) = BER(SNR_index) + sum( abs(data_bit_seq - recoverbit) );
    end
    end
    BER = BER/(N_datapacket*length_subcarrier*N_fft*N_datasymbol ); switch(m)
    case 0
    figure(1)
    semilogy(SNR,BER,'b-','LineWidth',2);
    hold on;
    case 4
    semilogy(SNR,BER,'r-','LineWidth',2);
    hold on; otherwise
    end
    title('Receive diversity technique TC'); xlabel('Signal noise ratio (SNR) (dB)'); ylabel('Bit error rate (BER)');
    legend( 'No diversity',...
    'TC '); grid on
    end

  2. #2
    Tham gia
    Aug 2014
    Nơi Cư Ngụ
    Hà nội
    Bài viết
    15
    Thanks
    7
    Thanked 1 Time in 1 Post

    Mặc định

    Lỗi ở đây là chưa có định nghĩa cho function " Transmit_Generator " mà vẫn sử dụng
    Cách khắc phục : Tìm trên trang bạn sưu tầm cái function này.
    Lần sửa cuối bởi vnqbao; 08/12/2014 lúc 09:51

  3. #3
    Tham gia
    Oct 2014
    Nơi Cư Ngụ
    tphcm
    Bài viết
    9
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Mặc định

    Cảm ơn bạn!

  4. #4
    Tham gia
    Jan 2016
    Nơi Cư Ngụ
    hà nội
    Bài viết
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Mặc định

    Bạn có code này hoàn chỉnh chưa ? mail giúp mình vào mail alialichau@yahoo.com cho mình xin
    Cám ơn bạn.

Tags for this Thread

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •