資源簡(jiǎn)介
cmi、miller、雙相碼
matlab 編碼、解碼
simulink 仿真

代碼片段和文件信息
data=double(rand(110)>0.5);?%原始信號(hào)這里用長(zhǎng)度為10的隨機(jī)01串
%以下是雙相碼
code2=[];????%初始編碼
for?i=1:length(data)
????if?data(i)==0???%如果信號(hào)為0
????????temp=[0?1];??%信號(hào)0的極性交替
????else?
????????temp=[1?0];
????end
?????code2=[code2?temp];?%加入新的兩位編碼
end
???
?
%以下是雙相碼解碼
decode2=[];
r=0;
for?i=1:2:length(code2)
???
????if?code2(i)==0
????????r=0;?%信號(hào)0輸出
????else?
????????r=1;
????end
????decode2=[decode2?r];
end
%以下是畫圖
subplot(711)stairs(0:length(data)[data?data(end)]‘linewidth‘2);
title(‘隨機(jī)信號(hào)‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(data))-0.60.5*ones(length(data)1)cellstr(num2str(data‘)));
subplot(712)stairs(0:length(code2)[code2?code2(end)]‘linewidth‘2);
title(‘雙相碼編碼‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code2))-0.60.5*ones(length(code2)1)cellstr(num2str(code2‘)));
subplot(713)stairs(0:length(decode2)[decode2?decode2(end)]‘linewidth‘2);
title(‘雙相碼解碼信號(hào)‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(decode2))-0.60.5*ones(length(decode2)1)cellstr(num2str(decode2‘)));
%以下是密勒編碼
code=[];????%初始編碼
precode=0;??%初始前一個(gè)編碼
predata=1;??%初始前一個(gè)信號(hào)
for?ii=1:length(data)
????if?data(ii)==1???%如果信號(hào)為1
????????temp=[0?1];??%中間跳變
????elseif?predata==0?%如果信號(hào)為0且前信號(hào)為0
????????temp=[1?1];???%中間不跳變
????else??????????????%如果信號(hào)為0且前信號(hào)為1
????????temp=[0?0];???%中間不跳變
????end
????if?precode==1????%如果前一個(gè)編碼是1
????????temp=1-temp;?%將temp取反
????end
????code=[code?temp];?%加入新的兩位編碼
????predata=data(ii);?%更新前一個(gè)信號(hào)
????precode=code(end);%更新前一個(gè)編碼
end
?
%以下是密勒解碼
decode=[];
for?ii=1:2:length(code)?%兩個(gè)兩個(gè)編碼進(jìn)行解碼
????if?code(ii)==code(ii+1)
????????temp=0;
????else
????????temp=1;
????end?
????decode=[decode?temp];
end
?
?
%以下是畫圖
subplot(714)stairs(0:length(code)[code?code(end)]‘linewidth‘2);
title(‘密勒編碼‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code))-0.60.5*ones(length(code)1)cellstr(num2str(code‘)));
subplot(715)stairs(0:length(decode)[decode?decode(end)]‘linewidth‘2);
title(‘密勒解碼信號(hào)‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(decode))-0.60.5*ones(length(decode)1)cellstr(num2str(decode‘)));
%以下是CMI
code1=[];????%初始編碼
cun=0;?%碼里1的個(gè)數(shù)
for?i=1:length(data)
????if?data(i)==1???%如果信號(hào)為1
????????cun=cun+1;
????????if?rem(cun2)==0
????????temp=[0?0];??%信號(hào)1的極性交替
????????else?
????????temp=[1?1];
????????end
????else??????????????%如果信號(hào)為0
????????temp=[0?1];???%中間不跳變
????end
?????code1=[code1?temp];?%加入新的兩位編碼
end
???
?
%以下是CMI解碼
decode1=[];
r=0;
for?i=1:2:length(code1)
????temp=code1(i)+code1(i+1);
????if?temp==1
????????r=0;?%信號(hào)0輸出
????else?
????????r=1;
????end
????decode1=[decode1?r];
end
%以下是畫圖
subplot(716)stairs(0:length(code1)[code1?code1(end)]‘linewidth‘2);
title(‘CMI編碼‘);set(gca‘YLim‘[-0.2?1.2]);set(gca‘XGrid‘‘on‘);
text((1:length(code1))-0.60.5*ones(length(code1)1)cellstr(num2str(code1‘)));
subplot(717)stairs(0:length(dec
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-15?18:43??基本碼型\
?????文件????????3469??2018-12-23?18:19??基本碼型\m1.m
?????文件???????20734??2019-01-15?18:43??基本碼型\smi.slx
評(píng)論
共有 條評(píng)論