ofdm 迭代限幅 matlab,ofdm限幅法matlab的程序

%clipping technique

%papr of the ofdm signals

clear all;

close all;

c1=64; %载波数

n1=20000; %符号数

Fs=100;  %采样率

M=4;

MM=1:0.1:12;    %CCDF的门限值

ccdf1=zeros(1,111);  %为什么设置111??????????????????????????

ccdf2=zeros(1,111);

for i=1:n1;

x(:,1)=randsrc(c1,1,[+1 -1 +3 -3]);%产生c1行1列的随机矩阵,可能值为+1,-1,+3,-3 ????为什么是+1,-1,+3,-3

x(:,2)=randsrc(c1,1,[+1 -1 +3 -3]); %产生c1行2列随机矩阵   %%%为什么设置两列

y1=squeeze(x);%产生c1行2列随机矩阵

a=amodce(y1,M,'qam');   %qam 调制

y2=a.';%a转置  串并转换 2行c1列矩阵

z1=[y2(1:c1/2),zeros(1,3*c1),y2(c1/2+1:c1)]; %4倍过采样 ???啥意思????????????

w1=ifft(z1);

w1=w1*c1;  %

x2=(abs(w1)).^2;

m1=mean(x2);  %每一列的平均值

v1=max(x2);

papr=10*log10(v1/m1);%峰均比

y3=abs(w1);

CR=1.4*0.8;%限幅率 ???为什么??????????????????

A=CR*sqrt(2)*std(w1)*1.6;       % CR=Amax/sqrt(Pin);  Pin:the input power of the ofdm signal before %clipping

w2=w1;

for h=1:4*c1;

if y3(h)>A

w2(h)=A;

end

end %限幅

x3=(abs(w2)).^2;

m2=mean(x3);

v2=max(x3);

papr0=10*log10(v2/m2);

for j=1:110;  %为什么设置110??????????????????????

if papr>MM(j);

ccdf1(j)=ccdf1(j)+1;%计算超过门限值的次数

end

if papr0>MM(j);

ccdf2(j)=ccdf2(j)+1;%限幅后超过门限值的次数

end

end

end

[c,d]=butter(6,0.5);  %滤波器设置?????????????

w3=filter(c,d,w2);

MM=1:.1:12;

ccdf0=ccdf1./n1; %为什么要除以?????????????? 好像是量化的意思,只是图不太的位置不太一样

ccdf3=ccdf2./n1;

semilogy(MM,ccdf0,MM,ccdf3);

title('clipping的CCDF曲线比较')

xlabel('papr(dB)'),ylabel('ccdf')

legend('clipping前','clipping后',2)

本人新手,找了个程序研究,但是很多地方不懂,麻烦高人指教,谢谢

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值