资源简介
OFDM图.m
代码片段和文件信息
clear all;
close all;
IFFT_bin_length=1024;
carrier_count=200;
bits_per_symbol=2;
symbols_per_carrier=50;
SNR=10;
baseband_out_length=carrier_count*symbols_per_carrier*bits_per_symbol;%总比特数
carriers=(1:carrier_count)+(floor(IFFT_bin_length/4)-floor(carrier_count/2));
conjugate_carriers=IFFT_bin_length-carriers+2;
%发送端
%产生随即二进制数据:
baseband_out=round(rand(1baseband_out_length));
convert_matrix=reshape(baseband_outbits_per_symbollength(baseband_out)/bits_per_symbol);
for k=1:(length(baseband_out)/bits_per_symbol)
modulo_baseband(k)=0;
for i=1:bits_per_symbol
modulo_baseband(k)=modulo_baseband(k)+convert_matrix(ik)*2^(bits_per_symbol-i);
end
end
%串并转换
carrier_matrix=reshape(modulo_basebandcarrier_countsymbols_per_carrier)‘;
%对每个载波的符号进行差分编码
carrier_matrix=[zeros(1carrier_count);carrier_matrix];
for i=2:(symbols_per_carrier+1)
carrier_matrix(i:)=rem(carrier_matrix(i:)+carrier_matrix(i-1:)2^bits_per_symbol);
end
%把差分符号代码转换成相位
carrier_matrix=carrier_matrix*((2*pi)/(2^bits_per_symbol));
%把相位转换成复数
[XY]=pol2cart(carrier_matrixones(size(carrier_matrix1)size(carrier_matrix2)));
complex_carrier_matrix=complex(XY);
%分配载波到指定的IFFT位置
IFFT_modulation=zeros(symbols_per_carrier+1IFFT_bin_length);
IFFT_modulation(:carriers)=complex_carrier_matrix;
IFFT_modulation(:conjugate_carriers)=conj(complex_carrier_matrix);
%画出频域中的OFDM信号代表
figure(1)
stem(0:IFFT_bin_length-1abs(IFFT_modulation(21:IFFT_bin_length))‘b*-‘)
grid on
axis([0 IFFT_bin_length -0.5 1.5])
ylabel(‘Maginitude‘)
Xlabel(‘IFFT Bin‘)
title(‘OFDM Carrier Frequenxy Magnitude‘)
figure(2)
plot(0:IFFT_bin_length-1(180/pi)*angle(IFFT_modulation(21:IFFT_bin_length))‘go‘)
hold on
stem(carriers-1(180/pi)*angle(IFFT_modulation(2carriers))‘b*-‘)
stem(conjugate_carriers-1(180/pi)*angle(IFFT_modulation(2conjugate_carriers))‘b*-‘)
axis([0 IFFT_bin_length -200 +200])
grid on
ylabel(‘Phase(degrees)‘)
Xlabel(‘IFFT Bin‘)
title(‘OFDM Carrier Phase‘)
%通过IFFT将频域转化为时域信号,得到时域信号
time_wave_matrix=ifft(IFFT_modulation‘);
time_wave_matrix=time_wave_matrix‘;
figure(3)
plot(0:IFFT_bin_length-1time_wave_matrix(2:))
grid on
ylabel(‘Amplitude‘)
xlabel(‘Time‘)
title(‘OFDM Time SignalOne Symbol Period‘)
%画出每个载波对应的时域信号(分离的OFDM信号)3131313131313131
for f=1:carrier_count
temp_bins(1:IFFT_bin_length)=0+0j;
temp_bins(carriers(f))=IFFT_modulation(2carriers(f));
temp_bins(conjugate_carriers(f))=IFFT_modulation(2conjugate_carriers(f));
temp_time=ifft(temp_bins‘);
end
figure(4)
plot(0:IFFT_bin_length-1temp_time)
hold on
grid on
ylabel(‘Amplitude‘)
xlabel(‘Time‘)
title(‘Separated Time Waveforms Carriers‘)
for i=1:symbols_per_carrier+1
windowed_time_wave_matrix(i:)=real(time_wave_matrix(i:)).*hamming(IFFT_bin_length)‘;
windowed_time_wave_matrix(i:)=real(time_wave_matrix(i:));
end
%串并转换
ofdm_modulation=reshape(windowed_time_wave_matrix‘1IFFT_bin_length*(symbols_per_carrier
相关资源
- 《MATLAB仿真在现代通信中的应用》徐
- KECA1.m
- zw_支持向量机与朴素贝叶斯算法matl
- test1_mat.m
- Finnal6.m
- odefun1.m
-
飞控simuli
nk仿真.zip -
光伏发电最大功率点跟踪simuli
nk仿真 - MATLAB全球磁场绘图程序.zip
- MATLAB人脸识别考勤系统摄像头,记录
- MATLAB多方法车牌识别系统bp+模板+GUI
- 四旋翼MATLAB仿真文件实验报告.zip
-
4.1基于Simuli
nk的图像、视频处理.z -
Simuli
nk的低通数字滤波器的仿真分析 - matlabR2017b迅雷种子文件及安装教程.
- 最优化方法及其matlab程序实现.zip
- 5d5680a96365f0e9a0c7114890f97460.mobi
- 《全面详解LTE:MATLAB建模、仿真与实
- XXXXXXRobustControlDesignwithMATLAB.pdf
- matlab图像处理包括数据反演以及其他
- Matlab常用32种算法.zip
- 传感器网络节点定位算法matlab代码.
- 基于DCT变换和DFT变换的数字图像压缩
- 10900257雷达系统设计MATLAB仿真.pdf
- 神经网络、遗传算法、支持向量机、
- 《先进PID控制MATLAB仿真第3版》仿真程
- 雷达系统设计MATLAB仿真.pdf196612
- 滑模变结构控制MATLAB仿真(第1版)(
- [Matlab作品]matlab实现视频中动态目标跟
- zw_qq_15023225-7501331-S函数的BP神经网络
评论
共有 条评论