⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gmskdemod6_j.m

📁 matlab仿真用的32采样点,GMSK调制解调代码
💻 M
字号:

function x=gmskdemod6_j(y,slen,kind)


T_space=32;
fs=64000*8;
fc=64000;
fb=16000;
sout=y;
sout2=sout(slen+1+1:end);
sout3=sout(1:length(sout2));

sout4=sout2.*sout3;
sout4=sout4(1:floor(length(sout4)/slen)*slen);

Hd = fir;
sout5=filter(Hd.Numerator,1,sout4);


sd=floor((length(Hd.Numerator))/2)+slen/2-1;
sout6=sout5(sd+1:end-slen+sd);
sout6=round(sout6./max(sout6)*255);
save GMSKsingal4.mat sout6 T_space fb fc fs;


%Gardener
%clear
load('GMSKsingaldongtai2.mat','sout6','T_space','fs','fc','fb');
%sout6:
%T_space:
%fs

if 0%
samp=fs/(fb*8);
sout6_2=sout6(1:samp:end);%

sout6_3=zeros(1,length(sout6_2)*8);
sout6_3(1:8:end)=sout6_2;%

%
Hd = fir_Gardener;
sout6_4=filter(Hd.Numerator,1,sout6_3);%

%
mytest(sout6);
mytest(sout6_2);
mytest(sout6_3);
mytest(sout6_4);

%
sout6=sout6_4;
sout6=round(sout6./max(sout6)*256);%
T_space=64;
end

step=floor(T_space/2);%
sp=0;%
lbcnt=3;%
tbuf=[255 255 255];isT=0;%
isTBcnt=0;%
space=randint(1,1,[1 17]);
sout6=sout6(space:end);
i=1;%i

%
cnt=0;outsp=0;outi=0;

%Gardener
while(1)
   if i>=length(sout6)-T_space%
       break;
   end
   
   cnt=cnt+1;outi(cnt)=i;%
   
   a=sout6(i);b=sout6(i+T_space-1);c=sout6(i+step);%a:
   
   if (a>0 && b<0) || (a<0 && b>0)%
        if b-a>0
            sp=-c;%
        else
            sp=c;%
        end

        %
        if isT==2 %
            if sp>0
                lbcnt=lbcnt+1;
            elseif sp<0
                    lbcnt=lbcnt-1;
            end
            if lbcnt==0 || lbcnt==6%lbcnt
                sp2=floor(sp/256*step*0.5);
                lbcnt=3;
            else
                sp2=0;
            end
        elseif isT==1%
                sp2=floor(sp/256*step*0.2);
                lbcnt=3;
            else%
                sp2=floor(sp/256*step/0.65);
                lbcnt=3;
        end

        %
        tbuf=[tbuf(2:3) abs(sp2)];
        if min(tbuf)<20 && isT==0
            isT=1;isTBcnt=cnt;
        elseif min(tbuf)<10 && isT==1
                isT=2;
        end

        i=i+T_space+sp2;%
        outsp(cnt)=sp2;%
else
       i=i+T_space;%        
   end    
end


outi2=zeros(1,length(outi));
outi2(isTBcnt+1:end)=outi(isTBcnt+1:end);
cnt=outi(isTBcnt+1);
for i=isTBcnt:-1:1
    cnt=cnt-T_space;
    outi2(i)=cnt;
end

%
figure
%subplot(2,1,1);
stem (outsp); %
grid

%subplot(2,1,2);
%plot (sout6,'r');%
%hold on
%plot(outi+step,zeros(1,length(outi)),'o');%
%plot(outi2+step,10*ones(1,length(outi2)),'go');%
%hold off
%grid


sout7=reshape(sout6,slen,length(sout6)/slen);

%sel=1;
outsum=0;
switch kind
    case 0%
        
    for i=1:size(sout7,2)
        outsum(i)=sum(sout7(:,i));
    end

    x=outsum<0;
    x=double(x);
    
    case 1%
    for i=1:size(sout7,2)
        outsum(i)=sum(sout7(:,i));
    end

    x=outsum/6800;       
        
end
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -