for I = 1 : Lenth_Of_Sign if Sign_Set(I) == 1
st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) + ( pi / 2 ) ); else
st( (I-1)*Num_Unit + 1 : I*Num_Unit) = A * cos ( 2 * pi * w * t( (I-1)*Num_Unit + 1 : I*Num_Unit ) ); end end
figure
subplot ( 2,1,1 ) plot(t, sign_orign);
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - (A / 2), A + (A / 2) ] ); title ( '原始信号' ); grid
subplot ( 2, 1, 2 ); plot ( t, st );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] ); title ( '调制后的信号' ); grid
%--------------------------------------------------- %>>>>>>>>>>>>>>>>>>相乘>>>>>>>>>>>>>>>>>>>>>>>>>>>>> %--------------------------------------------------- dt = st .* cos ( 2 * pi * w * t );
figure
plot ( t, dt );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] ); title ( '相乘后的波形' ); grid
%--------------------------------------------------- %>>>>>>>>>>>>>>>>>>>低通滤波部分>>>>>>>>>>>>>>>>>>>> %---------------------------------------------------
[N,Wn] = buttord( 2*pi*50, 2*pi*150,3,25,'s'); %临界频率采用角频率表示 [b,a]=butter(N,Wn,'s');
[bz,az]=impinvar(b,a,fs); %映射为数字的
dt = filter(bz,az,dt); figure
plot ( t, dt );
13
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] ); title ( '低通滤波后的波形' ); grid
%--------------------------------------------------- %>>>>>>>>>>>>>抽样判决 & 逆码变换部分>>>>>>>>>>>>>>> %--------------------------------------------------- for I = 1 : Lenth_Of_Sign
if dt((2*I-1)*Num_Unit/2) < 0.25
sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = High_Level; else
sign_result( (I-1)*Num_Unit + 1 : I*Num_Unit) = Low_Level; end end figure
plot ( t, sign_result );
axis( [ 0 , Time_Hold_On *( Lenth_Of_Sign + 1), - 3*(A / 2), 3*(A / 2) ] ); title ( '解调后信号' ); grid end
14
四、测试数据
运行程序
命令窗口会显示随进产生的二进制码,对此二进制码进行HDB3编码之后得码元,解码之后得码元以及解码之后得码元与原基带码进行比较得结果 如下图:
还会出现调制解调得选择窗口,来进行选择调制解调方式 如下
在选择窗口中可以看到有四种调制解调方式 选择2ASK进行调制解调
15
可以看到随机得基带信号,2ASK调制后的信号以及2ASK解调后的信号 进入菜单 从新选择2PSK
16