資源簡介
FSK調制解調程序程序,原創程序,呢能幫到大家,謝謝,
代碼片段和文件信息
clear?all;
close?all;
n=8;%隨機碼元個數
N=100;%模擬一個碼元的點數
K=3;%figure1畫三個小圖
a=round(rand(1n));%碼元生成
bita=[];%定義空數組,存放基帶信號
for?i=1:length(a)
????if?a(i)==0
????????bit1=zeros(1N);
????else?
????????bit1=ones(1N);
????end
end
figure(1);
bitRate=1000;%每一個碼元中采樣點的間隔寬度0.001s
fc=1000;%載頻1KHZ
t=linspace(01/bitRateN);
sign=[];
????c1=sin(2*pi*t*fc);%載波
????c2=sin(2*pi*t*fc*2);%載波
????for?i=1:length(a)
???????if?a(i)==1
??????????sign=[signc1];
???????else
?????????sign=[signc2];
???????end
????end
subplot(K11);plot(sign‘LineWidth‘1.5);title(‘2FSK已調信號‘);grid?on;
signal=awgn(sign20‘measured‘);%加噪
subplot(K12);plot(signal‘LineWidth‘1.5)grid?on;title(‘信號混疊噪聲‘);
pinpu=spectrum(sign);
subplot(K13);plot(pinpu‘LineWidth‘1.5)grid?on;title(‘頻譜圖‘);
h=waitbar(0‘請等待‘);%創建進度條
rs=1000;%時間軸頻率步進
fc=100;%載波頻率100HZ
tzd=100;
j=0;%進度條計數
N=10;%設置循環次數
t=0:1/rs:(tzd-1/rs);
for?snrb=0:1:10?%不同信噪比
????ratio=0;%初始誤碼數設為0,累計十次得到總誤碼數
????for?k=1:N?%N次循環每次循環產生1000個碼元
????????n=1000;%一次產生碼元數
????????g=round(rand(1n));%產生1000個碼元
????????tz1=g(ceil(10*t+(1/rs))).*cos(2*pi*fc*t);%載]波頻率為100HZ
????????tz2=~g(ceil(10*t+(1/rs))).*cos(2*pi*2*fc*t);%載波頻率為200HZ
????????tz=tz1+tz2;%得到調制信號tz,100個點表示1個碼元
????????waitbar(j/(10*N));
????????signal=awgn(tzsnrb);
????????%======解調過程==========%
??
- 上一篇:d-s證據理論程序
- 下一篇:傳遞矩陣法matlab程序
評論
共有 條評論