Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- warning('off','comm:obsolete:randint')
- close all;
- clear
- clc
- %% Generate Data
- % msg=[0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0];
- SNR=0:2:20;
- for j=1:length(SNR)
- m = randint(4000,1,2,139);
- msg=m';
- trellisStructure = poly2trellis(3,[6 7]); % Define 4 State trellis.
- trellisEncoded = convenc(msg,trellisStructure); % Encode the data.
- %% QPSK Modulation
- x=trellisEncoded;
- x_matrix=reshape(x.',2,length(x)/2);
- SymbolIndices=bi2de(fliplr(x_matrix.'));
- qpskModObj = modem.dpskmod('M', 4) ; % Modulator object
- qpskDemodObj = modem.dpskdemod(qpskModObj) ; % Demodulator object
- modSignal = modulate(qpskModObj,SymbolIndices) ; % Modulated signal
- % the above signal is sent to a MIMO channel, which is a rayleigh fading
- % channel
- %% Passing Through Rayleigh Fading Channel
- chan = rayleighchan(1/10000,100);% Create Rayleigh fading channel object.
- fadedSig = filter(chan,modSignal); % Effect of channel
- rxSig1 = awgn(fadedSig,SNR(j));%faded signal with noise
- rx1 = demodulate(qpskDemodObj, rxSig1); % Demodulate.
- x_Demod=rx1;
- x_Demod_bin=fliplr(de2bi(x_Demod));
- ax=x_Demod_bin';
- for i=1:length(x_Demod)*2
- a2(1,i)=ax(i);
- end
- a2;
- %%
- dcode = vitdec(a2,trellisStructure,2,'trunc','hard'); % Decode
- biterr(x,a2);
- biterr(SymbolIndices,rx1);
- [nErr(j),BERR(j)]=biterr(msg,dcode);
- sum(msg~=dcode);
- end
- avgBer4=sum(BERR)/length(BERR)
- %%
- clear
- %% Generate Data
- % msg=[0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0];
- SNR=0:2:20;
- for j=1:length(SNR)
- m = randint(4000,1,2,139);
- msg=m';
- trellisStructure2 = poly2trellis(4,[15 16]); % Define 8 State trellis.
- trellisEncoded = convenc(msg,trellisStructure2); % Encode the data.
- %% QPSK Modulation
- x=trellisEncoded;
- x_matrix=reshape(x.',2,length(x)/2);
- SymbolIndices=bi2de(fliplr(x_matrix.'));
- qpskModObj = modem.dpskmod('M', 4) ; % Modulator object
- qpskDemodObj = modem.dpskdemod(qpskModObj) ; % Demodulator object
- modSignal = modulate(qpskModObj,SymbolIndices) ; % Modulated signal
- % the above signal is sent to a MIMO channel, which is a rayleigh fading
- % channel
- %% Passing Through Rayleigh Fading Channel
- chan = rayleighchan(1/10000,100);% Create Rayleigh fading channel object.
- fadedSig = filter(chan,modSignal); % Effect of channel
- rxSig1 = awgn(fadedSig,SNR(j));%faded signal with noise
- rx1 = demodulate(qpskDemodObj, rxSig1); % Demodulate.
- x_Demod=rx1;
- x_Demod_bin=fliplr(de2bi(x_Demod));
- ax=x_Demod_bin';
- for i=1:length(x_Demod)*2
- a2(1,i)=ax(i);
- end
- a2;
- %%
- dcode = vitdec(a2,trellisStructure2,50,'trunc','hard'); % Decode
- % biterr(x,a2)
- % biterr(SymbolIndices,rx1)
- [nErr(j),BERR(j)]=biterr(msg,dcode);
- sum(msg~=dcode);
- %%
- end
- avgBer8=sum(BERR)/length(BERR)
- %%
- clear
- %% Generate Data
- % msg=[0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0];
- SNR=0:2:20;
- for j=1:length(SNR)
- m = randint(4000,1,2,139);
- msg=m';
- trellisStructure3 = poly2trellis(5,[35 32]); % Define 16 State trellis.
- trellisEncoded = convenc(msg,trellisStructure3); % Encode the data.
- %% QPSK Modulation
- x=trellisEncoded;
- x_matrix=reshape(x.',2,length(x)/2);
- SymbolIndices=bi2de(fliplr(x_matrix.'));
- qpskModObj = modem.dpskmod('M', 4) ; % Modulator object
- qpskDemodObj = modem.dpskdemod(qpskModObj) ; % Demodulator object
- modSignal = modulate(qpskModObj,SymbolIndices) ; % Modulated signal
- % the above signal is sent to a MIMO channel, which is a rayleigh fading
- % channel
- %% Passing Through Rayleigh Fading Channel
- chan = rayleighchan(1/10000,100);% Create Rayleigh fading channel object.
- fadedSig = filter(chan,modSignal); % Effect of channel
- rxSig1 = awgn(fadedSig,SNR(j));%faded signal with noise
- rx1 = demodulate(qpskDemodObj, rxSig1); % Demodulate.
- x_Demod=rx1;
- x_Demod_bin=fliplr(de2bi(x_Demod));
- ax=x_Demod_bin';
- for i=1:length(x_Demod)*2
- a2(1,i)=ax(i);
- end
- a2;
- %%
- dcode = vitdec(a2,trellisStructure3,25,'trunc','hard'); % Decode
- % biterr(x,a2)
- % biterr(SymbolIndices,rx1)
- [nErr(j),BERR(j)]=biterr(msg,dcode);
- sum(msg~=dcode);
- %%
- end
- avgBer16=sum(BERR)/length(BERR)
- %%
- clear
- %% Generate Data
- % msg=[0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0];
- SNR=0:2:20;
- for j=1:length(SNR)
- m = randint(4000,1,2,139);
- msg=m';
- trellisStructure4 = poly2trellis(6,[65 73]); % Define 32 State trellis.
- trellisEncoded = convenc(msg,trellisStructure4); % Encode the data.
- %% QPSK Modulation
- x=trellisEncoded;
- x_matrix=reshape(x.',2,length(x)/2);
- SymbolIndices=bi2de(fliplr(x_matrix.'));
- qpskModObj = modem.dpskmod('M', 4) ; % Modulator object
- qpskDemodObj = modem.dpskdemod(qpskModObj) ; % Demodulator object
- modSignal = modulate(qpskModObj,SymbolIndices) ; % Modulated signal
- % the above signal is sent to a MIMO channel, which is a rayleigh fading
- % channel
- %% Passing Through Rayleigh Fading Channel
- chan = rayleighchan(1/10000,100);% Create Rayleigh fading channel object.
- fadedSig = filter(chan,modSignal); % Effect of channel
- rxSig1 = awgn(fadedSig,SNR(j));%faded signal with noise
- rx1 = demodulate(qpskDemodObj, rxSig1); % Demodulate.
- x_Demod=rx1;
- x_Demod_bin=fliplr(de2bi(x_Demod));
- ax=x_Demod_bin';
- for i=1:length(x_Demod)*2
- a2(1,i)=ax(i);
- end
- a2;
- %%
- dcode = vitdec(a2,trellisStructure4,30,'trunc','hard'); % Decode
- % biterr(x,a2)
- % biterr(SymbolIndices,rx1)
- [nErr(j),BERR(j)]=biterr(msg,dcode);
- sum(msg~=dcode);
- %%
- end
- avgBer32=sum(BERR)/length(BERR)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement