📄 mskde.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 + -