資源簡介
通信原理課程代碼僅供參考,歡迎建議意見。
代碼片段和文件信息
%%FileName:signal_test1.m
%%DesignedBy:
%%Date:10.22.2018
%%O_data?:原始數(shù)據(jù)
%%N_sample?:采樣次數(shù)
function?[]?=?signal_test1(power)
%%?生成偽隨機(jī)序列(原碼)
pngen?=?commsrc.pn(‘NumBitsOut‘2^power);????????%?產(chǎn)生?PN?(偽隨機(jī)噪聲)信號包
data?=?generate(pngen);???????????%?產(chǎn)生?2^power?PRBS?隨機(jī)序列
fs?=?1e6;???????%?信號頻率為?1MHz
Ts=1/fs;????????%?信號周期
N_sample?=?128;???????%?采樣次數(shù)為128個
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%?生成NRZ?RZ碼
NRZ?=?[];???????%?NRZ波形存放
RZ?=?[];????????%?RZ波形存放
for?i=1:length(data)??????%?采樣的同時也是對信號進(jìn)行NRZ與RZ變換?????????
????for?j=1:N_sample????????%?NRZ變換
????????NRZ((i-1)*N_sample+j)=data(i);
????end
????for?j=1:(N_sample/2)????????%?RZ變換
????????RZ((i-1)*N_sample+j)=data(i);
????????RZ((i-1)*N_sample+j+N_sample/2)=0;
????end????
end?
figure(1)???????%?繪制NRZ,RZ波形圖
subplot(2?2?1);plot((0:1:N_sample*length(data)-1)*Ts/N_sample?RZ);grid?on;axis([0?length(data)*Ts?-2?2]);title(‘RZ波形‘);xlabel(‘S‘)
subplot(2?2?2);plot((0:1:N_sample*length(data)-1)*Ts/N_sample?NRZ);grid?on;axis([0?length(data)*Ts?-2?2]);title(‘NRZ波形‘);xlabel(‘S‘)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%?生成AMI碼
AMI?=?zeros(size(data));
%?number1記錄原碼中1的數(shù)量
number1?=?0;
%?number0記錄原碼中0的數(shù)量
number0?=?0;
%?生成AMI碼
for?i=1:length(data)
????if?data(i)==1
????????number1?=?number1+1;
????????if?mod(number12)==0
????????????AMI(i)?=?+1;????????%?原碼中偶數(shù)個1為-1
????????end
????????if?mod(number12)==1
????????????AMI(i)?=?-1;????????%?原碼中奇數(shù)個1為+1
????????end
????end
????if?data(i)==0
????????number0?=?number0+1;????????%?原碼中的0保持不變
????????AMI(i)?=?0;
????end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%?生成并繪制HDB3碼
HDB?=?zeros(size(data));
%?給每個0000小節(jié)加V
for?i=?1:length(data)
????%?AMI中的-1和+1保持不變
????????if?abs(AMI(i))==1
????????????HDB(i)?=?AMI(i);
????????end
????%
end
for?j=?1:?(length(data)-3)??????%連續(xù)的四個0第三個0設(shè)為V,V用2表示
????????if??((AMI(j)?==?0)?&&?(AMI(j+1)?==?0)?&&?(AMI(j+2)?==?0)?&&?(AMI(j+3)?==?0))
????????????HDB(j+3)?=?2;
????????????HDB(j+2)?=?0;
????????????HDB(j+1)?=?0;
????????????HDB(j)?=?0;
????????????j?=?j+3;
????????end
end
%?每兩個V極性相反
number2?=?0;
for?i=1:length(data)
????if?HDB(i)==2
????????number2?=?number2+1;
????????if?mod(number22)==0
????????????HDB(i)?=?+2;
????????end
????????if?mod(number22)==1
????????????HDB(i)?=?-2;
????????end
????end
end
%?統(tǒng)計(jì)每2個V之間非零脈沖個數(shù),若偶數(shù),則第2個V所在小節(jié)的第1個0變?yōu)锽
firstV=0;
secondV=0;
number3=0;
for?i=1:length(data)
????%?找到第一個V
????if?abs(HDB(i))?==?2
????????firstV?=?i;
?????
評論
共有 條評論