试建立一个基本波形为矩形波,采用B方式的QPSK传输系统,码元速率100M波特,载波频率5GHz。利用MATLAB画出QPSK调制波形的频谱图和星座图。
时间: 2024-12-28 08:37:36 浏览: 7
在MATLAB中创建一个基本的矩形波形并对其进行BPSK(QPSK的一种简化形式)调制,然后进行QPSK传输,步骤如下:
1. **创建矩形波形**:
首先,你需要确定矩形波的周期和占空比。由于码元速率是100M波特,这意味着每个码元周期是1μs(即1比特时间)。假设占空比为1/2,你可以这样生成一个矩形波:
```matlab
fs = 1e8; % Sampling frequency (5 GHz)
bitPeriod = 1e-6; % Bit period in seconds
symbolDuration = bitPeriod / 2; % Symbol duration (half-bit period)
rectWave = ones(1, round(fs * symbolDuration)) - 1;
```
2. **BPSK/QPSK调制**:
对于BPSK调制,我们将正弦和余弦波与矩形波一起使用:
```matlab
phaseShift = [0; pi]; % BPSK phases for '0' and '1'
bpskSig = sign(rectWave) .* cos(2*pi*fs*(0:symbolDuration/fs - 1)' + phaseShift');
```
QPSK是将两个独立的BPSK信号合成的,所以需要对上述信号再进行位同步并复制两倍:
```matlab
qpskSig = [bpskSig; flipud(bpskSig)];
```
3. **频谱图绘制**:
```matlab
spectrum = abs(fft(qpskSig, 2^14)); % Take a Fourier transform of the signal
freqRange = linspace(-fs/2, fs/2, length(spectrum));
plot(freqRange, 20*log10(abs(spectrum)));
xlabel('Frequency (Hz)');
ylabel('Magnitude (dBFS)');
title('QPSK Modulated Signal Spectrum');
```
4. **星座图绘制**:
```matlab
constellations = [qpskSig(1:2:end), qpskSig(2:2:end)'];
scatterplot(constellations(:,1), constellations(:,2), 'filled');
xlabel('\u0394\u03BB_1 (I Quadrature)');
ylabel('\u0394\u03BB_2 (Q Quadrature)');
title('QPSK Constellation Diagram');
```
注意:以上代码假设你已经安装了` Communications Toolbox `,如果未安装,某些函数可能无法直接运行。
阅读全文