-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrecieveImage.m
29 lines (24 loc) · 907 Bytes
/
recieveImage.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
close all;
clear;
signal = R.stripZeros(R.readDATFile('demo.dat'));
[packets, c] = R.getPacketNum(signal, 8);
allBits = [];
for i = 1:length(packets)
[freqOffsets, correctedSignal, actual] = R.removeFreqOffsetChunkSized(packets{i},1000);
pulseWidth = 10;
sampledBits = R.sigToBits(actual,floor(pulseWidth/2),pulseWidth);
packetSize = 50000;
sampledBits = R.cutOrPadPacket(sampledBits,packetSize);
allBits = [allBits; sampledBits];
end
recoveredBits = R.removeCheckBits(R.flipCheckBits(allBits));
%Convolutional decoder, comment out to disable
genPolys = [[1,1,0,1];[1,0,1,0];[1,0,0,1];[0,1,1,0]];
windowSize = 4;
[trellis,decoded] = C.convDecode(recoveredBits, windowSize, genPolys);
res = decoded';
originalBits = T.imageToBitVector('face.bmp');
disp('Number of incorrect bits: ');
disp(sum(abs(originalBits-res)));
img = T.bitsToImage(res,[100 100]);
imshow(img, [0 255]);