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

📄 send.m

📁 8状态8PSK TCM系统(频带+噪声)
💻 M
字号:
function Pb=Send(N,Source,SNR_in_dB);

Es=1;	%符号能量
snr=10^(SNR_in_dB/10); %信噪比
sgma=sqrt(Es/snr)/2;   %噪声标准方差
Ts=1;	%符号间隔
fc=2;	%载波频率
dt=1/32;%时域分辨率
seg=20;	%每seg位为一组

for cycle0=1:N/seg,
    S=Source(((cycle0-1)*seg+1):cycle0*seg);

            %下面为编码部分
    cycle2=1;
    state=[0,0,0];
    for cycle1=1:(seg/2+2)
        temp2=state(3);
        state(3)=xor(S(cycle2),state(2));
        state(2)=xor(S(cycle2+1),state(1));
        state(1)=temp2;

        z0=state(3);
        z1=S(cycle2);
        z2=S(cycle2+1);

        cycle2=cycle2+2;
	%每个分组后加入四个冗余比特使返回到000状态
        if(cycle1==seg/2)
	        if(state==[0,0,0]),
    	        	S=[S,0,0,0,0];
	        elseif(state==[0,0,1]),
	            	S=[S,0,0,0,1];
	        elseif(state==[0,1,0]),
    	       		S=[S,1,0,0,0];
	        elseif(state==[0,1,1]),
    	        	S=[S,1,0,0,1];
	        elseif(state==[1,0,0]),
    	        	S=[S,0,1,0,0];
	        elseif(state==[1,0,1]),
    	        	S=[S,0,1,0,1];
	        elseif(state==[1,1,0]),
    	        	S=[S,1,1,0,0];
	        else
    	        	S=[S,1,1,0,1];
	        end
        end    
        a=z2*4+z1*2+z0;
        A=a*pi/4; 
	Angel(cycle1)=A /pi;
        nc=gngauss(sgma);
	ns=gngauss(sgma);
	yy(cycle1)=Es*(cos(A)+j*sin(A)); 
	for t=(cycle1-1)*Ts+dt:dt:cycle1*Ts,
			%频带信号
	        y=sqrt(Es)*(cos(2*pi*fc.*t+A)+nc*cos(2*pi*fc.*t)-ns*sin(2*pi*fc.*t)+j*(sin(2*pi*fc.*t+A)+ns*cos(2*pi*fc.*t)-nc*sin(2*pi*fc.*t))); 
		y_no_Noise=cos(2*pi*fc.*t+A)+j*sin(2*pi*fc.*t+A);
		Re(t/dt)=real(y);
		Im(t/dt)=imag(y);
		Re_no_Noise(t/dt)=real(y_no_Noise);
		Im_no_Noise(t/dt)=imag(y_no_Noise);
	        if(t==(seg/2+2)*Ts),
		        R(((cycle0-1)*seg+1):cycle0*seg)=Demodulation(y,seg/2,t);
	        else
		        Demodulation(y,seg/2,t);
	        end
        end
    end   
end
figure(1)
hold on
grid on
title('发送信号(无噪声干扰)的星座图:')
Stars_plot(yy);
hold off

figure(3)
Angel	%显示信号的初相
t=dt:dt:(5+2)*Ts;
R_e=Re(t/dt);
I_m=Im(t/dt);
subplot(2,1,1)
plot(t,R_e,':r'),axis([dt,(5+2)*Ts,-1.2,1.2]),title('调制信号(I路)为:');
subplot(2,1,2)
plot(t,I_m,':k'),axis([dt,(5+2)*Ts,-1.2,1.2]),title('调制信号(Q路)为:');

figure(4)
t=dt:dt:(5+2)*Ts;
R_e_noNoise=Re_no_Noise(t/dt);
I_m_noNoise=Im_no_Noise(t/dt);
subplot(2,1,1)
plot(t,R_e_noNoise,':r'),axis([dt,7*Ts,-1.2,1.2]),title('调制信号(I路)为:');
subplot(2,1,2)
plot(t,I_m_noNoise,':k'),axis([dt,7*Ts,-1.2,1.2]),title('调制信号(Q路)为:');

R;	%%%译码输出
%%%%计算误比特律
Pb=Error_Pb(R,Source)

⌨️ 快捷键说明

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