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.

How to model multipath propagation in matlab?

Status
Not open for further replies.

shlomyss

Junior Member level 2
Joined
May 17, 2009
Messages
20
Helped
1
Reputation
2
Reaction score
0
Trophy points
1,281
Activity points
1,450
Hey all

Does anyone knows how to model a Digital modulation suppose QPSK or 16QAM with multipath propagation?
I need to create this kind of communication system, and plot it's BER.

and then I need to simulate the same system with higher Bit Rate and to see how the BER changes.
 

first of all, create your modulation then pass it through the channel, this must be done in steps as follows:

1. create you multipath channel object using this command (rayleighchan).

2. use the filter function to add your signal to the channel using this command (filter(x,channel))

3. create a loop for your noise such as from 0 to 20 dB step (1 or 2 as you like).

4. inside the loop, add the noise to the channel using the command awgn(s,SNR,....).

end the loop and plot your results.

regards
 

    shlomyss

    Points: 2
    Helpful Answer Positive Rating
That exactly what I did but for some reason I do not get the proper BER values,
I tryed to change all the parameters, ts, Rsym, Modulation methhod, BER range, gain vector, all the parameters and I allways get a graph of BER which is far from the theory.

If you can, please kindly look at my code and tell me what I done wrong.


i=sqrt(-1);
M = 32; % Modulation order
k=log2(M);

hModem = modem.qammod('M',M,'SymbolOrder','Gray','InputType', 'bit'); % 8-PSK modulator object
hDemod=modem.qamdemod(hModem);
Rsym = 960; % Input symbol rate
Rbit = Rsym * log2(M); % Input bit rate
Nos = 4; % Oversampling factor
ts = (1/Rbit) / Nos; % Input sample period
v = 120 * 1e3/3600; % Mobile speed (m/s)
fc = 1800e6; % Carrier frequency
c = 3e8; % Speed of light in free space
fd = v*fc/c; % Maximum Doppler shift of diffuse component

maxDopplerShift = 1; % Maximum Doppler shift of diffuse components (Hz)
delayVector = 1.0e-004 * [0 0.0400 0.0800 0.1200]; % Discrete delay vector gainVector = [0 -3 -6 -9]; % Average path gains (dB)
specDopplerShift = 10; % Doppler shift of specular component (Hz)

rayChanObj = rayleighchan(ts, fd , delayVector,gainVector) ;
rayChanObj.StoreHistory = 1;
rayChanObj.ResetBeforeFiltering = 0;
rayChanObj.NormalizePathGains = 1;

SNR = 0:2:20; % Range of SNR values, in dB.
numSNR = length(SNR);
BER = zeros(1, numSNR);


[chan chanprof]= stdchan(ts, fd, 'gsmRAx6c1');


Nsamples = 1e4;
Nframes = 6;

msg = randi([0 1],10000,1); % Create data

qamsig=modulate(hModem, msg);
fadedSig=filter(rayChanObj,qamsig);


for n = 1:numSNR

rxSig = awgn(fadedSig,SNR(n)); % Add Gaussian noise

rx = demodulate(hDemod, rxSig); % Demodulate
reset(hDemod);
% Compute error rate.
[nErrors(n), BER(n)] = biterr(msg,rx);

end

semilogy(SNR,BER);



 

I think you are right.

I did a simulation for a CDMA system and i have faced the same problem.

by the way:

I changed the following lines:

at the first I added
clc;
close all;
clear all;

the signal to noise ratio become

SNR = 0:.2:20; % Range of SNR values, in dB.
to make the figure more smoth.

and the reset was canceled as %reset(hDemod);

and the plot is
plot(SNR,BER),grid;
I got the following result:

 

10^-0.3 ~= 0.5
so we got almost the same BER

0.5 is the worst case for BER, and the meaning of it is that there is no way at all to recover the signal.

I also tryed deferent channels of matlab and all of them yealds the same BER.
I even tryed:
delayVector = 0
gainVector = 1 % or higher
and still got a bad BER..
 

yes you are right, am also tried to change these parameters but always i get the same results.

but if i use only awgn i got a better results. try it alone.
 

Re: plz send whole code for dscdma using jade ica algorithm

hey ,i runned the matlab code for dscdma using jade ica algorithm but it giving different BER values for same program while running several times
 

Re: plz send whole code for dscdma using jade ica algorithm

venkatesh519 said:
hey ,i runned the matlab code for dscdma using jade ica algorithm but it giving different BER values for same program while running several times

could you provide me some information about the jade ica algorithm?

thanks
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top