資源簡介
代碼中描述了用星座圖擴展法(Active Constellation Extension,ACE)降低OFDM時域信號的PAPR,ACE的具體算法是凸集映射(Projection Onto Convex Sets,POCS).編程語言:MATLAB

代碼片段和文件信息
function?[CCDFDownSample?PARDownSample]?=?getccdf(PAR?XSpace)
%?函數描述:統計一定數量的PAR的CCDF并下采樣
%?之所以下采樣,是因為由于點比較多,仿1e6個OFDM符號時圖片有100多MB
%?于是就想到了下采樣,但downsample函數是等間距采樣
%?偏偏PAR的橫坐標的增長不是線性的,導致畫的圖很難看,橫坐標越大越稀疏
%?所以就自己寫了個變采樣率的下采樣,根據橫坐標值的間距XSpace來決定是否采樣
%?這種思想對于MAX_SYMBOL比較小也適用,因為如果相鄰橫坐標的值大于XSpace,
%?則相當于沒有下采樣,畫出的圖的點數還是原來那么多
%?
%?called?by:各種統計PAR的m文件
%?輸入參數:
%???PAR:每個OFDM符號的PAR,向量
%???XSpace:下采樣的X軸采樣間隔,標量,推薦0.3
%?輸出參數
%???PARDownSample:下采樣之后的PAR橫坐標
%???CCDFDownSample:對應PARDownSample的CCDF,縱坐標
%?
%???????????????Last?Version?:?
%???????????????This?Version?:?0.9
%?????This?File?generated?by?:?張力
%???????This?File?updated?by?:?張力
%?
%?Revision?History?:
%?????時間????????姓名????具體工作
%?????20120621
%?
%?電子科技大學?通信與信息工程學院
%?School?of?Communication?and?Information?Engineering?
%?University?of?Electronic?Science?and?Technology?of?China?Chengdu?Sichuan?China
%?Email:?larlyii@gmail.com
if?nargin?==?1
????XSpace?=?0.3;
end
%?根據XSpace先把需要畫圖的點的數目確定了
CDFDownSample?=?zeros(ceil(1?/?XSpace?*?(13?-?0))?1?‘double‘);
PARDownSample?=?zeros(ceil(1?/?XSpace?*?(13?-?0))?1?‘double‘);
%?==================?原始OFDM符號PAR的統計的下采樣(開始)==================
[CDF?CDFPAR]?=?ecdf(PAR);
CDFPARDownSample(1)?=?CDFPAR(1);
CDFDownSample(1)?=?CDF(1);
Num?=?0;
for?Idx?=?1?:?length(CDFPAR)
????%?如果搜索的相鄰點的值大于XSpace,保留此點,Num+1
????if?CDFPAR(Idx)?-?CDFPARDownSample(1)?>?Num?*?XSpace?...
????????&&?CDF(Idx)?~=?1
????????%?還要判斷CDF(Idx)是不是等于1,之所以這樣做,是因為有可能剛好掃描到
????????%?最后一個點滿足間距的條件,但是最后一個點的縱坐標卻等于1,這樣再將DownSample
????????%?的最后一個元素賦值為原始數據的最后一個非1元素,就會出現1插在2個非1之間的情況,
????????%?導致畫不出這2段曲線,所以如果掃描到CDF(Idx)為1的話,就不要這個點
????????Num?=?Num?+?1;
????????CDFDownSample(Num)?=?CDF(Idx);
????????PARDownSample(Num)?=?CDFPAR(Idx);
????end
end
%?要找到最后一個非1元素,賦值給下采樣之后信號的最后一個元素,
%?否則會導致最后一小部分的線不能畫出來,因為縱坐標是對數坐標,不能畫出0
NotOneIdx?=?int32(find(CDF?1));
LastNotOneIdx?=?NotOneIdx(end);
CDFDownSample(Num?+?1)?=?CDF(LastNotOneIdx);
PARDownSample(Num?+?1)?=?CDFPAR(LastNotOneIdx);
CDFDownSample(Num?+?2?:?end)?=?[];
PARDownSample(Num?+?2?:?end)?=?[];
CCDFDownSample?=?1?-?CDFDownSample;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????15117??2013-01-02?16:43??POCS_QPSK_not_simplified.m
?????文件??????14662??2013-04-25?10:36??POCS_QPSK_simplified.m
?????文件??????13898??2013-04-25?11:04??POCS_QPSK_simplified_infinite_iteration.m
?????文件????????467??2013-11-28?21:54??readme.txt
?????文件???????2604??2013-01-02?11:13??getccdf.m
?????文件??????15201??2013-01-02?16:44??POCS_QAM_simplified.m
-----------?---------??----------?-----??----
????????????????61949????????????????????6
- 上一篇:從按鍵音識別號碼
- 下一篇:FDTD算法的Matlab源程序
評論
共有 條評論