Question: How to correct the following error in MATLAB? MATLAB code follows: Error using horzcat Dimensions of arrays being concatenated are not consistent. Error in Rev
How to correct the following error in MATLAB? MATLAB code follows: Error using horzcat
Dimensions of arrays being concatenated are not consistent.
Error in Revline
generatorMatrix eye parityMatrix'; clc;
clear all;
Load the lenna image
lenna imreadlennapng;
Convert image to grayscale
lennagray rgbgraylenna;
Convert pixel values to bits
lennabits reshapedebilennagray;
BPSK modulation
EbNolow ; Low SNR
EbNohigh ; High SNR
SNRlow EbNolow;
SNRhigh EbNohigh;
Transmit and receive at low SNR
receivedlow awgndoublelennabits SNRlow, 'measured';
Demodulation
decodedlow receivedlow ;
Reshape decoded bits to original image size
decodedimagelow reshapedecodedlow, sizelennagray, ;
Plot original and received image at low SNR
figure;
subplot; imshowlennagray; titleOriginal Image';
subplot; imshowdecodedimagelow; titleReceived Image dB SNR;
Transmit and receive at high SNR
receivedhigh awgndoublelennabits SNRhigh, 'measured';
Demodulation
decodedhigh receivedhigh ;
Reshape decoded bits to original image size
decodedimagehigh reshapedecodedhigh, sizelennagray, ;
Plot original and received image at high SNR
figure;
subplot; imshowlennagray; titleOriginal Image';
subplot; imshowdecodedimagehigh; titleReceived Image dB SNR;
Linear error detection code
Example: Hamming code
parityMatrix ; ; ;
generatorMatrix eye parityMatrix';
Encode the data
encodeddata modlennabits generatorMatrix, ;
Add noise for linear error detection code
receiveddata awgndoubleencodeddata EbNolow, 'measured';
Syndrome lookup table for error detection
syndrometable syndtableparityMatrix;
Decoding with error detection
decodeddata zerossizeencodeddata;
errors zerossizeencodeddata, ;
for i :sizeencodeddata,
syndrome modreceiveddatai :) parityMatrix', ;
if sumsyndrome ~ Error detected
errorsi;
else
decodeddatai :) receiveddatai :;
end
end
Count number of retransmission requests at different SNRs
SNRs ;
retransmissions zerossizeSNRs;
for i :lengthSNRs
SNR SNRsi;
receiveddata awgnencodeddata, SNR 'measured';
errors zerossizeencodeddata, ;
for j :sizeencodeddata,
syndrome modreceiveddataj :) parityMatrix', ;
if sumsyndrome ~ Error detected
errorsj;
retransmissionsi retransmissionsi;
end
end
end
Plot number of retransmissions against SNR values
figure;
plotSNRs retransmissions, o;
xlabelSNR dB;
ylabelNumber of Retransmissions';
titleNumber of Retransmissions vs SNR;
Error correction code
Example: ReedSolomon code
n ;
k ;
t ;
rsencoder comm.RSEncodern k;
rsdecoder comm.RSDecodern k;
Encode data
encodedrs steprsencoder, doublelennabits;
Add noise for ReedSolomon code
receivedrslow awgndoubleencodedrs EbNolow, 'measured';
receivedrshigh awgndoubleencodedrs EbNohigh, 'measured';
Decode received data
decodedrslow steprsdecoder, receivedrslow;
decodedrshigh steprsdecoder, receivedrshigh;
Reshape decoded bits to original image size
decodedimagerslow reshapedecodedrslow, sizelennagray;
decodedimagershigh reshapedecodedrshigh, sizelennagray;
Plot original and received images with error correction
figure;
subplot; imshowdecodedimagelow; titleReceived Image dB SNR No Error Correction;
subplot; imshowdecodedimagerslow; titleReceived Image dB SNR Error Correction;
figure;
subplot; imshowdecodedimagehigh; titleReceived Image dB SNR No Error Correction;
subplot; imshowdecodedimagershigh; titleReceived Image dB SNR Error Correction;
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
