3、16-QAM調(diào)制. 對(duì)于已定義的包含從0到15的整數(shù)的列向量xsym,就可以利用modem.qammod對(duì)象的modulate方法來(lái)調(diào)制它。其中M值為16,亦即為碼字表的大小。 %% Modulation y = modulate(modem.qammod(M),xsym); % Modulate using 16-QAM.
調(diào)制的結(jié)果是復(fù)數(shù)列向量,其取值為16點(diǎn)QAM信號(hào)星座圖。本示例中的隨后步驟中將會(huì)展示星座圖是什么樣子的。想要了解更多關(guān)于調(diào)制函數(shù)的信息,可參見(jiàn)第8章“調(diào)制”。另外,注意到modem.qammod對(duì)象的modulate方法沒(méi)有進(jìn)行任何的脈沖成形處理。
4、加性高斯白噪聲. 對(duì)已調(diào)制信號(hào)可采用awgn函數(shù)添加加性高斯噪聲。其中比特能量與噪聲功率譜密度的比值,Eb/N0,設(shè)置為10dB。 將上述Eb/N0值轉(zhuǎn)換為相應(yīng)的信噪比(SNR),需要考慮每一符號(hào)包含的比特?cái)?shù)k(16-QAM中為4)以及過(guò)采樣率因子nsamp(本示例中為1)。其中因子k是用來(lái)將Eb/N0轉(zhuǎn)換為等價(jià)的Es/N0(符號(hào)能量與噪聲功率譜密度的比值)。因子nsamp是用來(lái)將符號(hào)速率帶寬內(nèi)的Es/N0轉(zhuǎn)換為采樣帶寬內(nèi)的SNR。
說(shuō)明 ytx和yrx的定義以及snr定義中nsamp項(xiàng)到目前為止在本示例中顯現(xiàn)得并不是很重要, 但是這將使得其更容易擴(kuò)展到之后的成形濾波示例。
%% Transmitted Signal ytx = y; %% Channel % Send signal over an AWGN channel. EbNo = 10; % In dB snr = EbNo + 10*log10(k) - 10*log10(nsamp); ynoisy = awgn(ytx,snr,'measured'); %% Received Signal yrx = ynoisy; 5、繪制散點(diǎn)圖。 對(duì)發(fā)射和接收信號(hào)利用scatterplot函數(shù)可顯示信號(hào)星座圖的樣子及噪聲對(duì)信號(hào)造成的失真程度。在該圖中,橫軸代表了信號(hào)的同相分量而縱軸代表了正交分量。下面的代碼還利用了MATLAB中的title、legend以及axis函數(shù)來(lái)繪制特定的圖像。
%% Scatter Plot % Create scatter plot of noisy signal and transmitted % signal on the same axes. h = scatterplot(yrx(1:nsamp*5e3),nsamp,0,'g.'); hold on; scatterplot(ytx(1:5e3),1,0,'k*',h); title('Received Signal'); legend('Received Signal','Signal Constellation'); axis([-5 5 -5 5]); % Set axis ranges. hold off; 6、16-QAM解調(diào)。 對(duì)接收信號(hào)利用modem.deqammod對(duì)象的demodulate方法進(jìn)行解調(diào)。解調(diào)結(jié)果為包含0到15之間整數(shù)的列向量。
%% Demodulation % Demodulate signal using 16-QAM. zsym = demodulate(modem.qamdemod(M),yrx);
7、整數(shù)信號(hào)轉(zhuǎn)換至二進(jìn)制比特信號(hào).
%% Symbol-to-Bit Mapping % Undo the bit-to-symbol mapping performed earlier. z = de2bi(zsym,'left-msb'); % Convert integers to bits. % Convert z from a matrix to a vector. z = reshape(z.',prod(size(z)),1); 8、計(jì)算系統(tǒng)誤碼率.
對(duì)原始二進(jìn)制向量和上述步驟解調(diào)得到二進(jìn)制向量利用biterr函數(shù)即可得到誤比特?cái)?shù)和誤碼率。
%% BER Computation % Compare x and z to obtain the number of errors and % the bit error rate. [number_of_errors,bit_error_rate] = biterr(x,z) >> number_of_errors =
71
bit_error_rate =
0.0024
上一步產(chǎn)生的信號(hào)為一整數(shù)列向量zsym。要得到相應(yīng)的二進(jìn)制比特信號(hào),只需要利用de2bi函數(shù)將每一個(gè)整數(shù)轉(zhuǎn)化為相應(yīng)的4位二進(jìn)制信號(hào)。然后利用reshape函數(shù)將一個(gè)4列的矩陣整理為一個(gè)單獨(dú)列向量 |
|