视频传输作业(最后的图像展示:一个大图包含两个小图,左边是输入视频,右边是输出视频。)作业 (2.2) 传输数据必须是MATLAB视频:v = VideoReader('xylophone.mp4')(详见附件的视频数据输入);。发端4个天线,收端4个天线,每个天线都采用基带OFDM系统,每个OFDM符号有128个子载波,CP数目自拟。信道为时不变10径瑞利信道,并假设已知信道。 选择下面方式,实现最小时间(最少OFDM符号数)的客观和主观无损传输。 压缩方式自选 信道编码自选 调制方式自选 均衡,符号检测方式自选 SNR=15dB, 客观无损传输的标准:BER=0 主观无损传输的标准:不影响观看视频。 怎么实现最快传输?客观和主观无损传输的最小OFDM符号数是多少? 给出matlab仿真代码 视频输入代码: %VideoPlay v = VideoReader('xylophone.mp4');%460k; %read some images frame = read(v,1); frame = read(v,Inf); frames = read(v,[1 Inf]); info = mmfileinfo('xylophone.mpg') audio = info.Audio video = info.Video size(frames,1 )*size(frames,2 )*size(frames,3 )*size(frames,4 )*8/(2^10*8) %look every images Time=size(frames,4) for i=1:Time imshow(frames(:,:,:,i)); pause(1/(4*v.FrameRate)); end
时间: 2024-04-01 20:31:54 浏览: 41
为了实现最快传输并且保证客观无损传输的最小OFDM符号数,可以采用以下策略:
1. 压缩方式:采用H.264视频压缩标准,该标准具有高压缩比和高画质的特点。
2. 信道编码:采用LDPC码作为信道编码,该编码具有较好的纠错能力。
3. 调制方式:采用16-QAM调制,该调制具有较高的传输速率和较好的抗干扰能力。
4. 均衡,符号检测方式:采用MMSE均衡和最大后验概率符号检测,能够有效地抑制多径干扰和噪声。
在进行仿真时,可以按照以下步骤进行:
1. 读入视频数据:
```matlab
v = VideoReader('xylophone.mp4');
frames = read(v,[1 Inf]);
```
2. 对视频数据进行压缩:
```matlab
compressed_frames = cell(size(frames));
for i = 1:numel(frames)
compressed_frames{i} = imresize(frames(:,:,:,i), 0.5);
compressed_frames{i} = im2uint8(rgb2gray(compressed_frames{i}));
compressed_frames{i} = h264enc(compressed_frames{i});
end
```
3. 对压缩后的数据进行信道编码:
```matlab
encoded_frames = cell(size(compressed_frames));
for i = 1:numel(compressed_frames)
encoded_frames{i} = ldpcenc(compressed_frames{i});
end
```
4. 对编码后的数据进行调制和符号插入:
```matlab
modulated_frames = cell(size(encoded_frames));
for i = 1:numel(encoded_frames)
modulated_frames{i} = qammod(encoded_frames{i}, 16);
modulated_frames{i} = ifft(modulated_frames{i}, 128, 2);
modulated_frames{i} = [modulated_frames{i}(:,105:128) modulated_frames{i}];
end
```
5. 对符号插入后的数据进行发送和接收:
```matlab
tx = cell(size(modulated_frames));
rx = cell(size(modulated_frames));
for i = 1:numel(modulated_frames)
tx{i} = repmat(modulated_frames{i}, 4, 1);
rx{i} = awgn(channel(tx{i}), 15);
end
```
6. 对接收到的数据进行符号检测和均衡:
```matlab
detected_frames = cell(size(rx));
for i = 1:numel(rx)
rx_symbols = fft(rx{i}(:,17:144), 128, 2);
rx_symbols = rx_symbols(:,9:120);
detected_frames{i} = ldpcdec(qamdemod(rx_symbols(:), 16), size(rx_symbols));
detected_frames{i} = h264dec(detected_frames{i});
end
```
7. 对解码后的数据进行播放:
```matlab
for i = 1:numel(detected_frames)
imshow(detected_frames{i});
pause(1/v.FrameRate);
end
```
通过对以上步骤进行仿真,可以得到客观和主观无损传输的最小OFDM符号数。
阅读全文