求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/09/20 08:01:20
求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序
只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
只需要产生OFDM信号,并测量峰均值,产生峰均值响应波形就可以了!
你也没说系统子载波数是多少,调试方式是QPSK呢,还是更高阶,很多参数都不知道.我写了个小程序,调制方式是4QAM,子载波数是256,统计了10个OFDM符号.clc;clear;LOOP = 10; % Simulation timesSymbol_peak = 0;Symbol_average = 0;data = [];num_tone = 256;bit_alloc = 2 * ones(1, num_tone);% Simulation beginfor 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));endSymbol_average = Symbol_average / LOOP;PAR = Symbol_peak/Symbol_average;% Show result plot(data,'-b.');xlabel('time');ylabel('signal')fprintf('PAP: %f\n', PAR);