作业帮 > 综合 > 作业

求OFDM系统,Matlab大神写一个OFDM系统测量峰均值的程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 02:37:25
求OFDM系统,Matlab大神写一个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);