Rx_carriers=Y1(:,carriers);
%取出carriers序号对应的子载波上的发送数据,去掉加入的零以及共轭对称部分
Rx_phase=angle(Rx_carriers); %计算接收信号的相位特性 Rx_mag=abs(Rx_carriers); %计算接收信号的幅度
[M,N]=pol2cart(Rx_phase,Rx_mag);%转换极坐标数据为直角坐标数据 Rx_complex_carrier_matrix=complex(M,N);%两个直角坐标的实数据为构成复数句
figure(7);
plot(Rx_complex_carrier_matrix,'*r');%画接收信号的星座图 axis([-4,4,-4,4]);
title('SNR=30dB接收信号星座图'); grid on QAM解调
Rx_serial_complex_symbols=reshape(Rx_complex_carrier_matrix',size(Rx_complex_carrier_matrix,1)*size(Rx_complex_carrier_matrix,2),1)';
%将矩阵Rx_complex_carrier_matrix转换为1的数组
Rx_decoded_binary_symbols=demoduqam16(Rx_serial_complex_symbols); %进行16QAM解调
baseband_in=Rx_decoded_binary_symbols; %将解调恢复的二进制信号存放在baseband _in %误码率计算
bit_errors=find(baseband_in ~= baseband_out);
%将解调恢复的二进制信号与发送二进制信号比较,寻找误码 bit_error_count=size(bit_errors,2);%计算误码个数 ber=bit_error_count/baseband_out_length;%计算误码率