%% 参数设置 fs = 98.304e6; % 采样率 subcarriers = 16384; % 子载波数 subband_bw = 3e3; % 子带带宽 subband_fs = 6e3; % 子带采样率 n_symbols = 1024; % 符号数 rolloff = 0.75; % 滚降系数 span = 6; % 跨度 fc = 30e6; % 载波频率 max_doppler = 30; % 最大多普勒频偏 %% 生成随机的 BPSK 信号 data = randi([0 1], 1, subcarriers/4); modulated_data = 1 - 2 * data; %% 上采样 upsampled_data = upsample(modulated_data, subcarriers); %% 成型滤波 sps = subcarriers / n_symbols; h = rcosdesign(rolloff, span, sps, 'sqrt'); filtered_data = filter(h, 1, upsampled_data); %% 子带调制 tx_signal = zeros(1, subcarriers); for k = 1:subcarriers/4 % 计算中心频率 subband_fc = (k-1) / subcarriers * fs; % 考虑多普勒频偏 delta_f = rand * 2 * max_doppler - max_doppler; carrier = exp(1j * 2 * pi * (subband_fc + delta_f - fc) * (0:length(filtered_data)-1)/fs); % 调制 tx_signal(k) = real(filtered_data * carrier.'); end %% 作图 subplot(2,1,1); plot((0:length(modulated_data)-1)/subcarriers, modulated_data, 'LineWidth', 2); title('BPSK 调制后的信号'); xlabel('时间 (s)'); ylabel('幅度'); subplot(2,1,2); f = (-subcarriers/2:subcarriers/2-1) / subcarriers * fs; plot(f, abs(fftshift(fft(tx_signal))), 'LineWidth', 2); xlim([0 30e6]); title('调制后的信号频谱'); xlabel('频率 (Hz)'); ylabel('幅度');
时间: 2024-03-29 19:40:30 浏览: 82
这段代码主要是用来模拟 OFDM(正交频分复用)系统中的信号调制过程。
第一部分是设置参数,包括采样率、子载波数、子带带宽、符号数、滚降系数、跨度、载波频率和最大多普勒频偏等。
第二部分是生成随机的 BPSK 信号,即将信息进行调制。
第三部分是对信号进行上采样和成型滤波,即对信号进行调制前的处理。
第四部分是对信号进行子带调制,即将信号分成若干个子带,每个子带的信号分别进行调制。
最后一部分是对信号进行作图,分别绘制调制后的信号和调制后的信号频谱。
相关问题
请为我解释以下代码for i = 1:N_subcarriers modulated_symbols((i-1)*n+1:i*n) = modulated_symbols((i-1)*n+1:i*n) .* exp(1j*2*pi*f_offset*i/fs*(1:n)); end
这段代码是用于给OFDM系统中每一个子载波加上频率偏移的。OFDM系统中,数据被分为多个子载波,每个子载波都可以看作是一个独立的调制信号。但是在实际传输过程中,由于各种因素,比如本地振荡器的偏差、多径效应等,会导致接收端的信号与发送端的信号存在一定的频率偏移。
为了消除这种频率偏移,需要在接收端对每个子载波进行相位调整。具体而言,就是将每个子载波的信号乘以一个相位因子,这个相位因子就是exp(1j*2*pi*f_offset*i/fs*(1:n)),其中f_offset表示偏移的频率量,i表示当前的子载波序号,fs表示采样率,n表示每个子载波上的符号数。
这个相位因子的含义是:将当前子载波的信号向正方向旋转f_offset*i/fs的角度,以消除接收端和发送端之间的频率偏移。最终得到的modulated_symbols就是经过频率偏移校正后的OFDM信号。
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)