Help me to share "Clipping Filtering" syntax for PAPR reduction in OFDM system
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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
Antworten (1)
Montadar Abas Taher
am 17 Dez. 2012
could you please re-write you code ???????????? I could not understand any any any thing
0 Kommentare
Siehe auch
Kategorien
Mehr zu OFDM finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!