Where is the error in the code using "rayleighchan" function?

3 views (last 30 days)
Hi everyone,
I want to use "rayleighchan" function to simulate frequency selective fading channel. I also want to use OFDM technique to mitigate ISI. Now, I'm just trying to mitigate multipath delay caused by rayleighchan function as specified in Matlab Help (Using fading channels, working with delays section) on a very basic code, but my received signal is very different. Channel delay is 4 but received signal is not delayed by 4. Other datas in received signal is received wrong. Could you please help me on this topic?
clc;
clear all;
ts = 1/16; % sample time of the input signal (in seconds)
fd = 0; % maximum Doppler shift (in Hz)
tau = [0 1/160 1/260]; % vector of path delays (in seconds)
pdb = [0 -8 -17]; % average path gains (in dB)
%Rayleigh Fading Channel
chan = rayleighchan (ts,fd,tau,pdb);
delay = chan.ChannelFilterDelay;
% Data to be transmitted
data = [0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1];
% DPSK Modulation
moda = dpskmod(data,2);
% IFFT Operation
moda_fft = (16/sqrt(16))*ifft(fftshift(moda.')).';
% Channel effect + AWGN
xt = zeros(1,16);
xt = filter(chan,moda_fft);
awgn_moda = awgn(xt,12);
%FFT and Demodulation
demoda_fft =(sqrt(16)/16)*fftshift(fft(awgn_moda.')).';
demoda = dpskdemod(demoda_fft,2);
% Truncating channel delay with DPSK initial condition together
demoda = demoda(delay+1:end)
data_out = data(1:end-delay)
%Error calculation
sum_error = sum(sum(data_out~=demoda))

Answers (0)

Categories

Find more on Propagation and Channel Models in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!