求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 18:14:51
求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序
只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
你也没说系统子载波数是多少,调试方式是QPSK呢,还是更高阶,很多参数都不知道.
我写了个小程序,调制方式是4QAM,子载波数是256,统计了10个OFDM符号.
clc;
clear;
LOOP = 10; % Simulation times
Symbol_peak = 0;
Symbol_average = 0;
data = [];
num_tone = 256;
bit_alloc = 2 * ones(1, num_tone);
% Simulation begin
for i_loop = 1 : LOOP
Tx_f = zeros(1, num_tone);
for idx = 1 : num_tone
bit_len = bit_alloc(idx);
if 0 == bit_len % Do not carry any bit on this tone
continue;
else % Bit Allocation and QAM mapping
bits = randint(1, bit_len);
bits = dec2bin(bits)';
switch bits
case '00'
signal = 1+i;
case '01'
signal = 1-i;
case '10'
signal = -1+i;
case '11'
signal = -1-i;
end
Tx_f(idx) = signal;
end
end
% IFFT to time domain
tmp = conj(Tx_f(2:end));
tmp = fliplr(tmp);
Symbol_f = [Tx_f 0 tmp];
Symbol_t = ifft(Symbol_f);
Symbol_t = real(Symbol_t);
data = [data Symbol_t];
% PARA statistics
if Symbol_peak < max(abs(Symbol_t))
Symbol_peak = max(abs(Symbol_t));
end
Symbol_average = Symbol_average + sqrt(mean(abs(Symbol_t).^2));
end
Symbol_average = Symbol_average / LOOP;
PAR = Symbol_peak/Symbol_average;
% Show result
plot(data,'-b.');
xlabel('time');
ylabel('signal')
fprintf('PAP: %f\n', PAR);