⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 papr_analysis.asv

📁 OFDM峰均比经典算法matlab程序
💻 ASV
字号:
clear allclchold on%Parameter settingfftn = 128;  %FFT点数CP_length = fftn/8; %循环前缀长度symbol_num = 1e2; %OFDM符号数M = 1;      %调制阶数(1——BPSK)?????????data_length = fftn*symbol_num*M;  %数据长度%Data generatingdata_source = bingen(data_length);%OFDM modulatedata4ifft = reshape(data_source,fftn,symbol_num);  %S/Pifft_out = sqrt(fftn)*ifft(data4ifft);   %ifft  为什么求iff的sqrt???ifft_out_temp1 = ifft_out;        %%%%%%%% PAR Control %%%%%%%%%%%%         限幅        MaxPAR = 3; %dB,PAR门限        for ii = 1:symbol_num            xn = ifft_out(:,ii);            arverage_pwr = norm(xn)^2/fftn;            for kk = 1:fftn                if (abs(xn(kk)))^2/arverage_pwr > 10^(MaxPAR/10)%??????????                    xn(kk) = xn(kk)*sqrt(10^(MaxPAR/10)*arverage_pwr)/abs(xn(kk));%??????????                end                ifft_out(kk,ii) = xn(kk);            end        end                  %压缩扩展变换%          u = 3; %变换因子%          A = max(max(abs(ifft_out)));%          for ii = 1:symbol_num%              xn = ifft_out(:,ii);%              av_p = xn'*xn/fftn;%              for kk = 1:fftn%                  temp = ifft_out(kk,ii);%                  ifft_out(kk,ii) = A*temp*log(1+u*abs(temp)/A)/(log(1+u)*abs(temp));%              end%              av_p1 = ifft_out(:,ii)'*ifft_out(:,ii)/fftn;%              ifft_out(:,ii) = av_p*ifft_out(:,ii)/av_p1;%          end                  %CCDF计算         plotPAPR = zeros(1,symbol_num);         for ii = 1:symbol_num             xn1 = ifft_out(:,ii);             arverage_pwr = xn1'*xn1/fftn;%(平均功率是这样计算的:求每一个样值的功率在求和然后求平均)             max_value = max(abs(xn1));             PAPR = max_value^2/arverage_pwr;%计算发送信号的PAPR及平均功率             plotPAPR(ii) = 10*log10(PAPR);         end                  CCDF = zeros(1,13);         for jj = 1:13             PAR_temp = zeros(1,symbol_num);             PAR_temp(find(plotPAPR > jj-1)) = 1;%??????????             CCDF(jj) = sum(PAR_temp)/symbol_num;         end         PAR_max = 0:1:12;%(门限值)         semilogy(PAR_max,CCDF,'g+-')         grid on         % %Add CP% % %P/S% s = reshape(ifft_out,size(data_source));% % %Transmit% EbNo = 0:1:10;% No = 1;% noise = sqrt(1/2)*(randn(1,data_length)+1i*randn(1,data_length));% error = zeros(1,length(EbNo));% for E_N = 1:length(EbNo)%     Eb = No*10^(EbNo(E_N)/10);%     s_tr = sqrt(Eb)*s;% % %AWGN channel%     % %Receive%     s_re = s_tr+noise;%     % %Remove CP%     % %OFDM demodulate%     data4fft = reshape(s_re,size(data4ifft));  %S/P%     %     fft_out = fft(data4fft)/sqrt(fftn);  %FFT%     %     data2decid = reshape(fft_out,size(data_source));% % %Decide%     data_receive(find(real(data2decid) < 0)) = -1;%     data_receive(find(real(data2decid) >= 0)) = 1;%     %     error(1,E_N) = (sum(abs(data_receive-data_source))/2)/data_length;% end% % semilogy(EbNo,error,'mx-')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -