Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

[SOLVED] who can help me? how can I learn cooperative communication

Status
Not open for further replies.

liuyong19820

Newbie level 3
Joined
Jul 30, 2009
Messages
4
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
USA
Activity points
1,344
cooperative communication

dears, now I am learning network coding in MARC(multiple access relay channel), do you familiar with this field? could you give me some matlab code to study, some codes about AF, DF, and network coding . thank you
--- bless you all


my email is sunonface@hotmail.com
 

cooperative learn

Hi,
I am working on comparison of cooperative strategies. currently considering AF, DF mainly and will extend my study to others if possible. i have done some coding bt dont know if i m doing right so far. hope to hear from u soon.
 

comparison of decode forward

Blue_Angel said:
Hi,
I am working on comparison of cooperative strategies. currently considering AF, DF mainly and will extend my study to others if possible. i have done some coding bt dont know if i m doing right so far. hope to hear from u soon.


Hi, dear, maybe we can exchange our ideas and deal with our problems together, Now I havnt seen any codes about MARC, can you give me your codes to have a look, my email is liuyong19820@hotmail.com , hope to hear from u soon
 

snr ber viterbi erfc

Hello,
im also working on comparison of cooperative strategies...currently, i m considering AF and DF and will extend to others later..

aizaz(DOT)shah(AT)gmail(DOT)com

hope to listen from you guys soon...
 

cooperative relay network coding +2009

what parameters have you taken for comparison purpose ?
 
Re: who can help me? how can I learn cooperative communicati

does anybody know what is the difference between partial decode-and-forward and compress-and-forward
 

Re: who can help me? how can I learn cooperative communicati

currently, i m considering BER, but i intend to expand the comparison to outage probability. as for now i have developed a basic frame work and just want to know if it is correct.
 

Re: who can help me? how can I learn cooperative communicati

As for as I know outage probability is the lower bound on error probability, hence these are proportional to each other.

why don't you take some other parameter for your comparison purpose, like energy, achievable rates, delay etc
 

Re: who can help me? how can I learn cooperative communicati

hmm... i have achievable rates in my mind. im not sure abt energy and delay. i wud like to consider them. bt i dont have enough insight into energy and delay esp with the kind of framework i m using(matlab).
here is my code. plz feel free to comment/correct.


%Comparison of Decode and F,Detect and F and Amplify and Forward
%BPSK in flat fading with WGN:
%plot simulation results of BER and theoratical results for it.
%combining the two signals using MRC
%using averaged BER

%%%%%%%%%house hold instuctions%%%%%%%%%%%%%%%%%%
clc
clear all
close all

sum_dcf = 0;
sum_dtf = 0;
sum_af = 0;
%%%%%%%%%%%%%%%%%%%User1:Source%%%%%%%%%%%%%%
N_bits = 15000; %Number of data bits

%number of iterations over which the results are going to be averaged
N_iter = 15;
for iter = 1:N_iter

data = round(rand(N_bits,1));%random data bits
%channel coding using rate 1/2 convolutional code:
trellis = poly2trellis(3,[5 7]); %trellis structure
c_data = convenc(data,trellis);

%BPSK modulation
tx = 2*c_data - 1;

%%%%%%%%%Channel characteristics%%%%%%%%%%%%%%%%
SNRdB = -3:20; %Range of SNR for which BER is investigated.

%additive noise and channel response for the relay channel:
%Source uplink channel:
noise_d = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_d = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));

%interuser channel:
noise_r1 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_r1 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));

%for Relay uplink:
noise_r2 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));
h_r2 = 1/sqrt(2) * (randn(2 * N_bits,1) + j * randn(2 * N_bits,1));

for k = 1:length(SNRdB)

SNR = 10^(SNRdB(k)/10); %convert SNRdB to linear value SNR

ftx_r1 = sqrt(SNR) * h_r1 .* tx + noise_r1;

%%%%%%%%%%%%%%%%% At the Relay %%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%Decode n F%%%%%%
%equalizing at relay
eq_rx1 = ftx_r1 .* conj(h_r1);
%hard decision and converting from bipolar to bits
r_bits = (sign(real(eq_rx1)) + 1)/2;
%channel decoding:
dec_dcf_r1 = vitdec(r_bits,trellis,3,'term','hard');
%re-encoding using the same procedure as Source:
c_data2 = convenc(dec_dcf_r1,trellis);
%BPSK signal for the relay coded data:
tx2_dcf = 2 * c_data2 - 1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%Detect n F%%%

dec_dtf_r1 = sign(real(eq_rx1));
tx2_dtf = dec_dtf_r1;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%Apmlify n F%%

beta = sqrt(1./((SNR * abs(h_r1).^2) + 1));
%amplification:
ftx_amp = ftx_r1 .* beta;

%%%%%%%%%%%%%%%%%%%%%%%%%%Relay to Destination%
%DCF
ftx_dcf_r2 = sqrt(SNR) * tx2_dcf .* h_r2 + noise_r2 ;
%DTF
ftx_dtf_r2 = sqrt(SNR) * tx2_dtf .* h_r2 + noise_r2 ;
%AF
ftx_af_r2 = sqrt(SNR) * ftx_amp .* h_r2 + noise_r2 ;


%%%%%%%%%%%%%%%%% At the Destination%%%%%%%%%%%
ftx_d = sqrt(SNR)* tx .* h_d + noise_d;

%%%%%%%%%%%%%%%%%%%%%%%%DCF%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%MRC%%%%%%%%%%%%%%%
R_dcf = ftx_dcf_r2 .* conj(h_r2) + ftx_d .* conj(h_d);
%hard decisioning
dec_com_dcf = sign(real(R_dcf));

%%%%%%%%%%%BER calculations%%%%%%%%%%%%%%%%%%
%at destination:
err_com1(k) = sum(abs(dec_com_dcf - tx)/2);
simber_com1(k) = err_com1(k) / (2 * N_bits);

%%%%%%%%%%%%%%%%%%%%%%%%DTF%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%MRC%%%%%%%%%%%%%%%
R_dtf = ftx_dtf_r2 .* conj(h_r2) + ftx_d .* conj(h_d);
%hard decision
dec_com_dtf = sign(real(R_dtf));
%%%%%%%%%%%BER calculations%%%%%%%%%%%%%%%%%%
%at destination:
err_com2(k) = sum(abs(dec_com_dtf - tx)/2);
simber_com2(k) = err_com2(k) / (2 * N_bits);

%%%%%%%%%%%%%%%%%%%%%%%%AF%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%MRC%%%%%%%%%%%%%%%
R_af = ftx_af_r2 .* conj(h_r2) .* conj(h_r1) + ftx_d .* conj(h_d);
dec_com_af = sign(real(R_af));
%%%%%%%%%%%BER calculations%%%%%%%%%%%%%%%%%%
%at destination:
err_com3(k) = sum(abs(dec_com_af - tx)/2);
simber_com3(k) = err_com3(k) / (2 * N_bits);

theberawgn(k) = 0.5 * erfc (sqrt(SNR));%theoratical BER for AWGN
theberrayleigh(k) = 0.5 * (1 - sqrt(SNR./(1 + SNR))); %theoratical rayleigh

mue = sqrt(SNR/(1+SNR));
mrcth(k) = 0.25 * (2 + mue) * (1-mue)^2;%theoratical 2Rx MRC

end

sum_dcf = sum_dcf + simber_com1;
sum_dtf = sum_dtf + simber_com2;
sum_af = sum_af + simber_com3;
end

%average BER:
avgber_dcf = sum_dcf/N_iter;
avgber_dtf = sum_dtf/N_iter;
avgber_af = sum_af/N_iter;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%BER plots%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

figure
semilogy(SNRdB,avgber_dcf,SNRdB,avgber_dtf,SNRdB,avgber_af,SNRdB,theberawgn,SNRdB,theberrayleigh,SNRdB,mrcth);
axis([SNRdB(1) max(SNRdB) 10^-5 0.5]);
grid on
legend('DCF','DTF','AF','AWGN','Rayleigh','MRC 2 senders');
xlabel('SNR dB');
ylabel('BER');
title(['BER curves for comparison,(averaged for ',num2str(N_iter),' iterations)']);
 
Re: who can help me? how can I learn cooperative communicati

Just a lilttle help, as asha19800 has given differnt parameter to compare, they are discussed by Goldsmith in her paper on Energy-efficiency of MIMO and cooperative MIMO techniques in sensor networks. A very good paper to read.

Added after 3 minutes:

I m not very clear about Decode and Forward and Detect and forward schemes. can any one plz give some thoughts on it. Also it would be great to see the algo rather then the whole code to explain the difference.
 

Re: who can help me? how can I learn cooperative communicati

Detect-and-Forward and Decode-and-Forward terms come from channel coding.

In the first, relay only detects symbol-by-symbol and re-sends the same to destination. In the second, relay decodes the complete message, re-encodes it and then sends it to destination i,e they relay uses channel codes.

Added after 1 minutes:


attached file may be of some help
 

Re: who can help me? how can I learn cooperative communicati

Dear liuyong19820

what is your system model and how does your decoder work ?
 

Re: who can help me? how can I learn cooperative communicati

Normally the protocols are classified as Amplify and Forward and Detect/Decode and Forward.

in my code, i have used the logic of Detect and Forward as explained by aliazmat.
I m pretty confused about the Decode and Forward. in the code i have used channel coding. but i have discussed with somebody and was told that decode n forward means using soft decisioning.
 

Re: who can help me? how can I learn cooperative communicati

I think, some channel codes require soft decision like LDPC and some not like Single Parity check codes.

In any case, the message needs to be decoded at the relay.
 

Re: who can help me? how can I learn cooperative communicati

Blue-Angel
I wonder what is the channel model you used ?
Is it a no fading model or Rayleigh fading .
 

Re: who can help me? how can I learn cooperative communicati

Hi,

the model i have used for channel is flat-fading Rayleigh.
the under lying assumption is of narrowband communication where many unresolvable multipath signals are received. when all the multipath signals are unresolvable then the channel reduces to a single multiplicative component. and if the number of multipaths is too large, the its is modeled using gaussian distribution.
[this is to the best of my understanding. any correction is more than welcome]
 

Re: who can help me? how can I learn cooperative communicati

hi,all. i am focusing on the mimo relaying recently. about the decode-and-forward scheme, it usually add CRC to the transmit signal. can anyone talk about that, and give me some matlab codes which use the CRC.
thanks.
 

Re: who can help me? how can I learn cooperative communicati

Hi blue angle,

cooperative sensing also can be assumed as cooperative communication which using such protocol, but detection probability (Pd) and false alarm rate (Pfa) are used as performance evaluation in destination while cooperative communication is BER.

Can u explain us the differences among them? and how could we modify your code in order that we get Pd and Pfa? or anyone of you can explain them, it will be great help of us

Thank you in advace
 

Re: who can help me? how can I learn cooperative communicati

Blue Angel, I have checked your code, it looks like good ! and simple.

Decode and Forward decodes the BPSK signal with viterbi decoding and re-encode with conv. encoding. Rigth, also AAF is true, but I am not sure about Detect and Forward.

In my opinin Detect and Forward gives lower BER then AAF .

farewell.
 

Re: who can help me? how can I learn cooperative communicati

Hi,
Armie: sorry i m not familier with the sensing stuff..cant help in that regard.
lapolm:
thanks for review. actually detect and forward n decode and forward are same class,broadly speaking. in literature detect and forward is often referred to as fixed decode and forward and it is shown to achieve diversity order of 1. unless u use selective DF which forwards only if decoding is successful.it implies u use some error detection code like CRC. DF can also b improved if u use adaptive DF, which means u use some feedback in the form of Acknowledgement. again it will also need some means of error detection like CRC. it also improves and attain diversity order of 2 at high SNRs if u use error forward correction correction code like i have used.
detect n forward is just a terminology tht i have used to differtiate.
in my opinion,DF improves with the degree of authority u invest in the relay node. e.g if u allow it only to demodulate(detect) and then modulate, it wont b able to help much. but if u allow it to actually decode,extract the info bits, then re-encode n modulate it will b more beneficial. actually the term DF is not very clearly defined in literature. so it depends how u define it.
moreover, i have used MRC for combining. MRC is optimal for AF bt not for DF. that's y in the code i have provided, DF doesnt outperform AF.

well, guys this the summary of my knowledge i have gained so far.
any comments/corrections are more than welcome. i m writing my thesis n have to complete it in a couple of days.ur views can b very helpful.

cheers
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top