You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于BPSK的图像传输MATLAB代码运行报错求助及结果获取

BPSK图像传输MATLAB代码内存溢出修复与仿真结果

报错信息

Requested 65536x65536 (32.0GB) array exceeds maximum array size preference (5.0GB). This might cause MATLAB to become unresponsive.

错误根源

  1. 时间向量逻辑错误:原代码中t = (65535:length(s)-1)/fs;的写法完全错误,length(s)为65536,length(s)-1等于65535,导致t仅生成一个单元素向量。执行s .* cos(...)时,MATLAB触发隐式广播,将65536元素的s和单元素的余弦值扩展为65536×65536的巨型矩阵,直接超出内存上限。
  2. 语法错误:三角函数表达式2pifc*t缺少乘号,正确写法应为2*pi*fc*t。
  3. 信道类型不匹配:原代码生成的瑞利信道h是复数,但BPSK调制信号xf是实数,相乘后信号变为复数,后续滤波和解调逻辑会出现异常。

修正后的代码

% 读取并预处理图像
I = imread('lena.jpg'); 
I = rgb2gray(I); 
I = imresize(I, [256 256]); 
p = double(I(:)); 

% BPSK调制
b = p > 128; 
s = 2*b - 1; 

% 系统参数设置
fc = 10000;     % 载波频率10kHz
fs = 100000;    % 采样频率100kHz
symbol_rate = 10000; % 符号速率10kHz
Ns = fs / symbol_rate; % 每个符号的采样点数:10

% 生成时间向量(每个符号对应Ns个采样点)
t = (0:length(s)*Ns - 1)/fs; 

% 扩展符号序列,每个符号重复Ns次
s_extended = repmat(s, 1, Ns); 
s_extended = s_extended(:); 

% 生成BPSK调制信号
x = s_extended .* cos(2*pi*fc*t); 

% 发射端带通滤波
[b1, a1] = butter(4, 12000/(fs/2)); 
xf = filter(b1, a1, x); 

% 信道模型(调整为实值瑞利衰落)
sigma = 0.1; 
n = sigma * randn(size(xf)); 
Omega = 1; 
h_amp = sqrt(Omega/2) * sqrt(randn(size(xf)).^2 + randn(size(xf)).^2); % 瑞利幅度
y = h_amp .* xf + n; 

% 接收端带通滤波
[b2, a2] = butter(4, 12000/(fs/2)); 
yf = filter(b2, a2, y); 

% 相干解调
yr = yf .* cos(2*pi*fc*t); 
[b3, a3] = butter(4, 1000/(fs/2), 'low'); 
yrf = filter(b3, a3, yr); 

% 采样判决(每个符号取最后一个采样点)
yrf_sampled = yrf(Ns:Ns:end); 
bhat = yrf_sampled > 0; 

% 恢复图像
phat = 255 * bhat; 
phat = reshape(phat, [256 256]); 
Ihat = uint8(phat); 

% 绘制仿真结果
figure(1)
subplot(2,2,1)
imshow(I)
title('输入图像')
subplot(2,2,2)
plot(t(1:1000), abs(x(1:1000))) % 绘制前1000个采样点避免图形拥挤
xlabel('时间 (s)')
ylabel('幅度 (V)')
title('发射信号')
subplot(2,2,3)
plot(t(1:1000), abs(y(1:1000)))
xlabel('时间 (s)')
ylabel('幅度 (V)')
title('接收信号')
subplot(2,2,4)
imshow(Ihat)
title('恢复图像')

仿真结果说明

  1. 输入图像:显示256×256的灰度Lena原图。
  2. 发射信号:呈现BPSK调制后的载波幅度变化,波形为键控后的余弦信号,幅度在±1之间切换。
  3. 接收信号:叠加瑞利衰落和高斯噪声后,信号幅度出现随机波动,但整体调制特征仍可辨认。
  4. 恢复图像:由于噪声和衰落强度较低(sigma=0.1),恢复图像与原图几乎无差异,仅存在极细微的噪声点。

内容的提问来源于stack exchange,提问作者Rfat Bin del Ahmed Al-sorori

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 04:45:19