• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: Matlab
  • 标签: xjt  

资源简介

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);
        %======解调过程==========%
  

评论

共有 条评论