使用 BPSK 传输图像
Transmission of the image using BPSK
输入图像需要经过调制传输,最后使用BPSK进行检测。
M = 2; %Modulation order 2 for BPSK
randn('state',200); % initializing the randn() function
imdata = imread('lenna.pgm');
bdata = de2bi(imdata);
sizec = size(bdata,1); % height
sizer = size(bdata,2); % width
nbits = sizec*sizer; % number of bits in the image
msg = double(reshape(bdata,nbits,1));
以下代码用于调制输入图像并显示解调后的 output.The 结果输出,当我 运行 代码时,我得到一个空白 image.Need 帮助找出我错过了什么或哪里出错了。
%modulate
txpsk = pskmod(msg,M);
%noise
phasenoise = randn(nbits,1)*0.015;
rxpsk = txpsk.*exp(2i*pi*phasenoise);
%demodulate
recovpsk = pskdemod(rxpsk,M);
reshape1rxpsk = reshape(recovpsk,sizec,sizer);
reshape2rxpsk = bi2de(reshape1rxpsk);
finalout= reshape(reshape2rxpsk,size(imdata,1),size(imdata,2));
imshow(finalout)
一个 PGM 文件由一个或多个 PGM 图像序列组成。每张图片都有一个header结构,包含宽度、高度等信息e.t.c。调制后,您会在信号中添加噪声。因此,解调信号可能包含错误。如果此错误损坏图像的 header 信息 - 这可能会导致空白图像输出。尝试评论行
%phasenoise = randn(nbits,1)*0.015;
%rxpsk = txpsk.*exp(2i*pi*phasenoise);
输入图像需要经过调制传输,最后使用BPSK进行检测。
M = 2; %Modulation order 2 for BPSK
randn('state',200); % initializing the randn() function
imdata = imread('lenna.pgm');
bdata = de2bi(imdata);
sizec = size(bdata,1); % height
sizer = size(bdata,2); % width
nbits = sizec*sizer; % number of bits in the image
msg = double(reshape(bdata,nbits,1));
以下代码用于调制输入图像并显示解调后的 output.The 结果输出,当我 运行 代码时,我得到一个空白 image.Need 帮助找出我错过了什么或哪里出错了。
%modulate
txpsk = pskmod(msg,M);
%noise
phasenoise = randn(nbits,1)*0.015;
rxpsk = txpsk.*exp(2i*pi*phasenoise);
%demodulate
recovpsk = pskdemod(rxpsk,M);
reshape1rxpsk = reshape(recovpsk,sizec,sizer);
reshape2rxpsk = bi2de(reshape1rxpsk);
finalout= reshape(reshape2rxpsk,size(imdata,1),size(imdata,2));
imshow(finalout)
一个 PGM 文件由一个或多个 PGM 图像序列组成。每张图片都有一个header结构,包含宽度、高度等信息e.t.c。调制后,您会在信号中添加噪声。因此,解调信号可能包含错误。如果此错误损坏图像的 header 信息 - 这可能会导致空白图像输出。尝试评论行
%phasenoise = randn(nbits,1)*0.015;
%rxpsk = txpsk.*exp(2i*pi*phasenoise);