野书文 2023-02-22 10:41 采纳率: 50%
浏览 34
已结题

OFDM仿真代码这一行到底哪里出错了呀?

% 基带数据信息
N = 64;            % 子载波数
n = 48;            % 用于传输数据的子载波数
CP = 16;           % 循环前缀长度
M = 4;             % 星座点数,本示例使用 QPSK 调制
modulation = 'QPSK'; % 调制方式

% 发送端
tx_data = randi([0 M-1],n,1);  % 随机生成传输数据
pilots = randi([0 M-1],N-n,1); % 随机生成用于信道估计的导频序列

% 调制
modulated_data = qammod(tx_data,M);   % 调制传输数据
modulated_pilots = qammod(pilots,M); % 调制导频序列

% 构造频域信号
tx_data_freq = zeros(N,1);
tx_data_freq([1:n/2+1 N-n/2+2:N]) = modulated_data; % 插入数据子载波
tx_data_freq(n/2+2:n/2+N-n) = modulated_pilots;      % 插入导频子载波
% IFFT
tx_data_time = ifft(tx_data_freq,N);

% 添加循环前缀
tx_data_cp = [tx_data_time(N-CP+1:N); tx_data_time];

% 通过信道
snr = 10;  % 信噪比
rx_data_cp = awgn(tx_data_cp,snr);

% 接收端
rx_data = rx_data_cp(CP+1:CP+n);

% 解调
demodulated_data = qamdemod(rx_data,M);

% 性能评估
ber = sum(abs(demodulated_data - tx_data))/n; % 计算误比特率
disp(['误比特率 = ' num2str(ber)]);

%% 绘制OFDM的频谱以及波形图
% 频谱
figure(1)
f = -N/2:N/2-1;
plot(f, fftshift(abs(tx_data_freq)))
title('OFDM频谱')
xlabel('子载波编号')
ylabel('幅度')

% 波形
figure(2)
subplot(211)
plot(real(tx_data_time))
title('OFDM时域波形(实部)')
xlabel('时间')
ylabel('幅度')

subplot(212)
plot(imag(tx_data_time))
title('OFDM时域波形(虚部)')
xlabel('时间')
ylabel('幅度')

%% 功率谱密度分析
% 发送信号的功率谱密度
pwelch(tx_data_cp,[],[],[],1,'twosided');

% 接收信号的功率谱密度
pwelch(rx_data_cp,[],[],[],1,'twosided');


以上是完整代码,第十九行“tx_data_freq(n/2+2:n/2+N-n) = modulated_pilots; % 插入导频子载波”matlab一直报错,说两边元素不对等,无法执行赋值,是怎么回事呀?有懂OFDM仿真代码的看一看

img

  • 写回答

3条回答 默认 最新

  • GISer Liu 2023-02-22 12:18
    关注

    以下答案引用自GPT-3大模型,请合理使用:

    修改意见:
    上述代码第19行错误是由于N>n,rx_data_cp(CP+1:CP+n)定义导致的,使用N-n+1替换该行后可以正常执行。具体修改如下: 
    tx_data_freq(n/2+2:n/2+N-n+1) = modulated_pilots;      % 插入导频子载波
    

    如果我的回答解决了您的问题,请采纳我的回答

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月22日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素