資源簡介
主要是msk調(diào)制的MATLAB仿真程序,并畫出調(diào)制波形的時(shí)域波形和頻域波形
代碼片段和文件信息
%E6_7_MskModem.m程序清單
?
ps=1*10^6;??%碼速率為1MHz
Fs=16*10^6;?%采樣速率為16MHz
fc=3*10^6;??%載波頻率為3MHz
N=100;????????%數(shù)據(jù)碼元個(gè)數(shù)
Len=N*Fs/ps;??%仿真數(shù)據(jù)的長度
x?=?randint(N12)‘;?%?產(chǎn)生隨機(jī)數(shù)據(jù)做為數(shù)據(jù)碼元
%x=ones(1N);
dx=ones(1N);
for?i=1:N
????if?x(i)==0
????????x(i)=-1;
????end
end
%求原碼的相對(duì)碼dx
for?i=2:N
????if?x(i)==1
????????dx(i)=-dx(i-1);
????else
????????dx(i)=dx(i-1);
????end
end
%將相對(duì)碼按奇偶序號(hào)分成兩路數(shù)據(jù),形成Ik\Qk
di=ones(1N);
dq=ones(1N);
%取dx的偶數(shù)位,并列兩位為di
for?i=2:2:N
????di(i:i+1)=dx(i);
end
%取dx的奇數(shù)位,并列兩位為dq
for?i=1:2:N-1
????dq(i:i+1)=dx(i);
end
%對(duì)原始BIT數(shù)據(jù)進(jìn)行Fs/ps倍重采樣
udi=ones(1N*Fs/ps);
udq=ones(1N*Fs/ps);
for?i=1:N
????udi(Fs/ps*(i-1)+1:Fs/ps*i)=di(i);
????udq(Fs/ps*(i-1)+1:Fs/ps*i)=dq(i);
end
%?udi=rectpulse(diFs/ps);
%?udq=rectpulse(dqFs/ps);
%產(chǎn)生MSK信號(hào)所需的載波信號(hào)
t=0:1/Fs:(Len-1)/Fs;
cf0c=cos(2*pi*fc.*t);
sf0c=sin(2*pi*fc.*t);
cfps=cos(pi*ps/2.*t);
sfps=sin(pi*ps/2.*t);
%正交調(diào)制法產(chǎn)生msk信號(hào)
msk=udi.*cfps.*cf0c-udq.*sfps.*sf0c;
?
%MSK?解調(diào)
%第一種相干解調(diào),需要同時(shí)獲取fcfb的載波頻率
%?demod_i=msk.*cf0c.*cfps;
%?demod_q=msk.*sf0c.*sfps;
%平方環(huán)相干解調(diào),只需獲取fL、fH的載波頻率
fL=cos(2*pi*fc.*t-2*pi*ps/4.*t);%cos(2*pi*ps/4.*t)
fH=cos(2*pi*fc.*t+2*pi*ps/4.*t);
demod_i=msk.*(fH+fL);
demod_q=msk.*(fH-fL);
%低通濾波后,獲取I、Q支路基帶波形
b=fir1(300.5*ps*2/Fs);%設(shè)計(jì)低通濾波器
f_i=filter(b1demod_i);
f_q=filter(b1demod_q);
%求Tb/2的時(shí)鐘信號(hào)波形
%?fL2=cos(4*pi
評(píng)論
共有 條評(píng)論