Welcome & Happy Holidays!
Kết quả 1 đến 1 của 1

Chủ đề: code matlab

  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    code matlab

    không biết cộng đồng mình có quan tâm tới matlab trong viễn thông không nhỉ. nếu có em nhờ các anh (chị) sửa giúp em đoạn code em sưu tầm được vê TC (phân tập thu trong mimo). em xin cảm ơn
    lỗi khi chạy :
    Undefined function or method 'Transmit_Generator' for input arguments of type 'double'.
    có file txt đính kèm bên dưới cho anh em dễ test!
    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

 

 

Quyền viết bài

  • 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
  •  
Múi giờ GMT +7. Bây giờ là 08:24 AM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2024 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.