clear all; close all
Bit_num=2000;
Fc=1800;
Fs=18000;
snr=5;
Ts=0.001;
t=0:1/Fs:Ts-1/Fs;
LenSymbol=length(t);
BW=2/Ts;
[b,a]=butter(5,2*BW/Fs);
Singal_emit=[];
Source=randint(1,Bit_num,[],0);%%信源
TEMP=1-2*Source;%%%%%%%%%%%%%%调制
for i_num=1:Bit_num
Singal_emit=[Singal_emit TEMP(i_num)*cos(2*pi*Fc*t)];
end
% plot(Singal_emit(1:length(t)));
% m=0;
% for snr=-10:0.5:15
% m=m+1;
amp=sqrt(0.5/(10^(snr/10))); %%%%%%%%%加噪声
Signal_rec1=Singal_emit+amp*randn(size(Singal_emit));
% plot(Signal_rec);
% vn=randn(1,T)+sqrt(-1)*randn(1,T); % AWGN noise
% vn=vn/norm(vn)*10^(-dB/20)*norm(x)
% plot(sigaddn);
Signal_rec=multipath(Signal_rec1);%%%加多径
% Signal_rec=Singal_emit;
Base_wave_real=[];
Base_wave_imag=[];
for i_num=1:Bit_num
TEMP1=Signal_rec((i_num-1)*LenSymbol+1:i_num*LenSymbol);
% Xk=abs(fft(TEMP,4096));
% index=(0:round(2048-1));
% Xkf=Xk(index+1);
% indexf=find(Xkf==max(Xkf));
% Fc=indexf*Fs/4096;
% plot(index*Fs/4096,Xkf)
% pause
% periodogram(TEMP,[],4096,Fs);
% pause;
TEMP_real=filter(b,a,TEMP1.*cos(2*pi*Fc*t));
% TEMP_real=TEMP1.*cos(2*pi*Fc*t);
TEMP_imag=filter(b,a,-1*TEMP1.*sin(2*pi*Fc*t));
% TEMP_real=filter(b,a,TEMP.*cn);
% TEMP_imag=filter(b,a,-1*TEMP.*sn);
Base_wave_real=[Base_wave_real TEMP_real];
Base_wave_imag=[Base_wave_imag TEMP_imag];
end
sample_real=[];
sample_imag=[];
indexn=round(LenSymbol/2);
for i_num=1:Bit_num
TEMP_base_real=Base_wave_real((i_num-1)*LenSymbol+1:i_num*LenSymbol);
TEMP_base_imag=Base_wave_imag((i_num-1)*LenSymbol+1:i_num*LenSymbol);
sample_real_temp=TEMP_base_real(indexn);
sample_imag_temp=TEMP_base_imag(indexn);
% sample_real_temp=sum(TEMP_base_real);
% sample_imag_temp=sum(TEMP_base_imag);
sample_real=[sample_real sample_real_temp];
sample_imag=[sample_imag sample_imag_temp];
end
Sample=sample_real+j*sample_imag;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%求未均衡误码率
g=0;
for k=1:Bit_num
if sample_real(k)<0
newdata1(k)=1;
else
newdata1(k)=0;
end
if newdata1(k)==Source(k)
g=g+1;
end
end
Pe1=(Bit_num-g)/Bit_num;
%%%%%%%%%%均衡算法(LMS)
% TEMP=TEMP+sqrt(-1)*TEMP;
trseq=TEMP(1:800);
trainlen=length(trseq);
inseq=sample_real;
% inseq=Sample;
lev=40;
wei=zeros(lev,1);
miu=0.005;
index=lev:-1:1;
newinseq=[inseq,zeros(1,lev-1)];
scatequ=[];
for n=1:trainlen
u=newinseq(index);
d(n)=trseq(n);
e(n)=d(n)-wei'*u.';
mse(n)=abs(e(n))^2;
wei=wei+miu*u.'*e(n)';
index=index+1;
end
snrout=[];
for n=trainlen+1:length(inseq)
u=newinseq(index);
y=wei'*u.';
scatequ=[scatequ,y];
snrout=[snrout (abs(TEMP(n)-y))^2];
[pan,pan_equ]=pan_2psk(y);
d(n)=pan_equ;
e(n)=d(n)-y;
mse(n)=abs(e(n))^2;
wei=wei+miu*u.'*e(n)';
index=index+1;
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%均衡后判决
g=0;
for k=1:Bit_num-trainlen
if scatequ(k)<0
newdata(k+trainlen)=1;
else
newdata(k+trainlen)=0;
end
if newdata(k+trainlen)==Source(k+trainlen)
g=g+1;
end
end
Pe2=(Bit_num-g-trainlen)/(Bit_num-trainlen)
% end
c=trainlen+1:length(inseq);
d=trainlen+1:length(inseq);
plot(c,scatequ,'.');
% plot(c,sample_real(d));
xlabel('码元个数');
ylabel('幅度');
% x=-10:0.5:15;
% plot(x,Pe1);
% hold on
% Pe3=Pe2-0.2;
% for j=1:length(x)
% if Pe3(j)<0
% Pe3(j)=0
% end
% end
% plot(x,Pe3,'--');
% xlabel('信噪比/dB');
% ylabel('误码率Pe');
% end
% x=-10:0.5:15;
% % plot(x,Pe1);
% % hold on
% plot (x,Pe2);
% xlabel('SNR/dB');
% ylabel('误码率Pe');
% title('psk在高斯白噪声与多径情况下的误码率性能');
% scatterplot(sample);


阿里matlab建模师
- 粉丝: 5527
- 资源: 2956
最新资源
- (源码)基于Docsify框架的Spigot插件开发教程系统.zip
- (源码)基于STM32F10x微控制器的贪吃蛇游戏系统.zip
- (源码)基于C语言和FreeRTOS框架的卫星通信管理系统.zip
- (源码)基于Arduino平台的温湿度传感器卡.zip
- (源码)基于AVR单片机的TinyCharger单电池锂电池充电器与监控器.zip
- (源码)基于Tiva ARM CortexM4F的简易计算器.zip
- (源码)基于Mbed OS的LoRaWAN应用示例.zip
- (源码)基于Spring Boot框架的问题与评论系统.zip
- (源码)基于ROS和MoveIt!框架的Davinci机器人运动规划与控制教程.zip
- (源码)基于Qt框架的跨平台数据库管理工具.zip
- (源码)基于C++编程语言的图形渲染视觉库.zip
- (源码)基于C、JavaScript和Python的分布式系统与容器化应用.zip
- (源码)基于Arduino平台的机器人控制系统.zip
- (源码)基于Python的微信智能聊天机器人系统.zip
- (源码)基于Python的NLP分词模型.zip
- (源码)基于C语言嵌入式系统框架的机器人控制项目.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



- 1
- 2
- 3
前往页