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

📄 mskde.m

📁 msk调制
💻 M
字号:
%******************** Modulation **********************

modinphase=outinphase.*cos(2*pi*fc*t); 
modquadrature=outquadrature.*sin(2*pi*fc*t); %Complex envelope
mod=modinphase+modquadrature;

%******************** Attenuation calculation **********

snr=10^(snr_in_dB/10);
psymbol=sum(mod.^2)/(length(mod)*bitrate);
np=(psymbol/snr)*fs;
attn=sqrt(0.5*np);

%******************** Add White Gaussian Noise ******

inoise=randn(1,length(mod)).*attn;
modawgn=mod+inoise;

%******************** Demodualtion **********************

demodinphase=modawgn.*cos(2*pi*fc*t);% Without AWGN
demodquadrature=modawgn.*sin(2*pi*fc*t);

%demodd=modawgn.*cos(2*pi*fc*t);
%demodi=modawgn.*sin(2*pi*fc*t);

%******************** Output data *******************
outputinphase=zeros(1,nb);
outputquadrature=zeros(1,nb);
output1=zeros(1,nb*m);
output=zeros(1,nb*m);
output1inphase=zeros(1,fs/symbolrate);
output1quadrature=zeros(1,fs/symbolrate);
for i=1:nb                                                                                                                                      
    for j=1:fs/symbolrate
        output1inphase(j)=demodinphase(j+(i-1)*fs/symbolrate);
        outputinphase(i)=mean(output1inphase)>0;
        output1quadrature(j)=demodquadrature(j+(i-1)*fs/symbolrate);
        outputquadrature(i)=mean(output1quadrature)>0;
    end
end

for i=1:nb
    output1(2*i-1)=outputinphase(i);
    output1(2*i)=outputquadrature(i);
end

outputsymbol= bi2de(reshape(output1,m,nb)','right-msb');
%Mapping the input symbol sequence to Gray code
outputgray = bitxor(outputsymbol,bitshift(outputsymbol,-1));
output = reshape((de2bi(outputgray))',1,nb*m);  

%******************** Bit Error Rate **********************
[number, ratio]=symerr(inputsymbol, outputsymbol);
%******************** End of file **********************

⌨️ 快捷键说明

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