Kết quả 1 đến 1 của 1
Chủ đề: code matlab
-
12-08-2014, 06:47 AM #1Junior Member
- 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
endView more random threads:
Phân tích đặc điểm của máy rung...
Hôm qua, 08:41 PM in Rao vặt tổng hợp