Help me to share "Clipping Filtering" syntax for PAPR reduction in OFDM system
4 次查看(过去 30 天)
显示 更早的评论
currently I'm running the program for my thesis related to Reduction PAPR by using clipping filtering technique. program still not work due to missing "Clipping filtering" syntax after input guard interval (cyclic prefix)in OFDM signal. I really need it cause 1 month later I have to complete it all.
following these program:
clear all clc;
% number of subcarrier N_of_sub = 128;
% Number of symbol per TTI (per subframe) Nsym = 0;
% Jumlah CP per TTI adalah ¼ subcarrier (untuk normal CP) N_CP = 0.25* N_of_sub;
% Input Data X1 = rand(1,N_of_sub)>0.5; fs = 1e6;
% Serial to Parallel Conversion of Input data par = series2parallel(X1,N_of_sub);
% M ary Modulation (for PSK and QAM) alphabet_M = 2; % Alphabet size X2 = 0; for count1 = 2:1:7; alphabet_M = alphabet_M+X2;
% Use M-ary modulation to produce modulated signal y_mod. if(alphabet_M<=8) y_mod=modulate(modem.pskmod(alphabet_M),par); else y_mod=modulate(modem.qammod(alphabet_M),par); end
% IFFT Implementation ifft_y_mod = ifft(y_mod);
% Add Cyclic Prefix cyc_pr(count1,:) = cyclicpad(ifft_y_mod, N_CP);
len_cyc_pr = length(cyc_pr);
** Please share me 4 clipping techniques such as Classical, Deep & Smooth also filtering technique **
% Parallel to Serial Conversion out = reshape(cyc_pr(count1,:),1,len_cyc_pr);
% Transmisi melalui kanal AWGN y_AWGN = awgn(out,100,'measured');
% Serial to Parallel Conversion par2 = series2parallel(y_AWGN,len_cyc_pr); re_par = real(p2);
% Remove cyclic prefix r_cyc_pr(count1,:) = decyclicpad(par2, N_CP); len_rcp = length(r_cyc_pr);
% FFT Implementation fft_y_mod = fft(r_cyc_pr(count1,:));
% Symbol Demodulation if (alphabet_M<=8) y_demod=demodulate(modem.pskdemod(alphabet_M),fft_y_mod); else y_demod=demodulate(modem.qamdemod(alphabet_M),fft_y_mod); end
% Parallel to Serial xdash = reshape(fft_y_mod,1,N_of_sub); error = 0 ; for a = 1:1:N_of_sub; if (xdash(:,a) == X1(:,a)) error = 0; else error = error+1; end end terror(count1,:) = error;
EbNo = 0:1:N_of_sub-1; if(alphabet_M==4) ber(count1,:) = erfc(sqrt(0.5*(10.^( EbNo /10))))-(1/4)*(erfc(sqrt(0.5*(10.^( EbNo /10))))).^2; Pr_err(count1,:) = (1/(log2(alphabet_M)))*erfc(sqrt(EbNo)*sin(pi/alphabet_M)); datarate = N_of_sub*Nsym* (log2(alphabet_M)); throughput = (datarate*(1-ber)/1e3); elseif(alphabet_M==16) k = sqrt(1/((2/3)*( alphabet_M -1))); % normalizing factor ber1(count1,:) = 2*(1-1/sqrt(alphabet_M))*erfc(k*sqrt((10.^( EbNo /10)))) ... - (1-2/sqrt(alphabet_M) + 1/ alphabet_M)*(erfc(k*sqrt((10.^( EbNo /10))))).^2; Pr_err1(count1,:) = (2/(log2(alphabet_M)))*((1-(1/sqrt(alphabet_M)))*erfc(sqrt((1.5*EbNo)/(alphabet_M-1)))); datarate1 = N_of_sub*Nsym* (log2(alphabet_M)); throughput1 = (datarate1*(1-ber1)/1e3); else(alphabet_M==64)
k = sqrt(1/((2/3)*( alphabet_M -1))); % normalizing factor ber2(count1,:) = 2*(1-1/sqrt(alphabet_M))*erfc(k*sqrt((10.^( EbNo /10)))) ... - (1-2/sqrt(alphabet_M) + 1/ alphabet_M)*(erfc(k*sqrt((10.^( EbNo /10))))).^2; Pr_err2(count1,:) = (2/(log2(alphabet_M)))*((1-(1/sqrt(alphabet_M)))*erfc(sqrt((1.5*EbNo)/(alphabet_M-1)))); datarate2 = N_of_sub*Nsym* (log2(alphabet_M)); throughput2 = (datarate2*(1-ber2)/1e3); end alphabet_M= 2^count1; end
%tb = 2; % Traceback length for decoding %decoded = vitdec(xdash,trellis,tb,'trunc','soft',128); axes(handles.Graph_Clipping); semilogy(EbNo,ber(3,:),'*-b',EbNo,ber1(5,:),'o-r',EbNo,ber2(7,:),'+-k'); axis([0 30 0.00001 1]); grid on xlabel('SNR [dB]') title('Modulation Scheme Performance') ylabel('BER') legend('QPSK','16QAM','64QAM')
I appreciate whether any assistance from you all
Thanks and hope to hear from you soon
Fajri
回答(1 个)
Montadar Abas Taher
2012-12-17
could you please re-write you code ???????????? I could not understand any any any thing
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 OFDM 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!