cf_rmse.zip

  • BOPER
    了解作者
  • matlab
    开发工具
  • 2KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2018-05-23 21:49
    上传日期
matlab信道化程序,基本的模型,可运行
cf_rmse.zip
  • cf_rmse.m
    6.5KB
内容介绍
%MWC检测线性调频信号,一路PN clc;clear all;close all; %% 1. 时域测试信号生成 % ll1=repmat(23,1,100);%Mp=50 % fc1=repmat(32,1,100); ll1=repmat(45,1,100);%Mp=100 fc1=repmat(10,1,100); % for snr=-10:5:20 % for snr=-5; % for iii=1:100 N=10000; % 信号长度200ns fs=2200e6; % 采样频率0.1ns试一下10e9 ts=1/fs; % 采样间隔 Ts=1:N; % 采样序列 md=10;%阵元数 doa=[5];%来波方向角 % doa=randi([-60 60]); doa1=repmat(doa,1,100); % nd=length(doa); nd=1; c=3e8; % lamd1=c/fc;%信源波长 % d=lamd1/2;% rad=pi/180; % fc(iii)=1000e6+randi([0,100],1)*1e6; % fc(iii)=900e6+rand*100e6; % fc(iii)=1000e6; % X0=1*exp(i*(2*pi*fc(iii)*Ts*ts)); % X=awgn(X0,snr,'measured'); %% MWC Mp=100; %伪随机数周期 channel_num=10;% 分支路数 fp=fs/Mp;%伪随机数频率 fs_low=fs/Mp;%压缩采样频率 periodnum=N/Mp;%101 bernoulli=zeros(channel_num,N); bernoulli_00=zeros(1,2*Mp); xx=zeros(channel_num,N); xxx=zeros(channel_num,N); xx_filter=zeros(channel_num,N); x_sample=zeros(channel_num,N/Mp); % ideal filter ct11=ones(1,periodnum/2); ct111=ones(1,periodnum/2); ct12=zeros(1,N-periodnum); idealfilter=[ct11 ct12 ct111]; bernoulli_1= rand(1,Mp) > 0.5 ; % n是要产生的随机数个数,p是伯努利分布的数学期望 bernoulli_11=ones(1,Mp); bernoulli_11(find(bernoulli_1<0.5))=-1; bernoulli_00=repmat(bernoulli_11,1,2); % fc=1000e6; % X0=1*exp(i*(2*pi*fc*Ts*ts)); % fcc=repmat(1000,1,100); % for snr=-10:5:20 for snr=20; for iii=1:100 % fc(iii)=1000e6; fc(iii)=1000e6+rand*50e6; X0=1*exp(i*(2*pi*fc(iii)*Ts*ts)); X=awgn(X0,snr,'measured'); for k=1:1:channel_num % bernoulli_0= rand(1,Mp) > 0.5 ; % n是要产生的随机数个数,p是伯努利分布的数学期望 % bernoulli_00=ones(1,Mp); % bernoulli_00(find(bernoulli_0<0.5))=-1; bernoulli(k,:)=repmat(bernoulli_00(k:k+Mp-1),1,periodnum); xx(k,:)=X.*(bernoulli(k,:));%????????????????? ddd=(fft(xx(k,:))).*idealfilter; xxx(k,:)=ifft(ddd); x_sample(k,:)=downsample( xxx(k,:),Mp); end %% 阵列模型 % Mp=100; %伪随机数周期 % channel_num=md;% 分支路数 % fs_low=fs/Mp;%压缩采样频率 % periodnum=N/Mp;%101 % NN=N/Mp;%压缩采样点数 % bernoulli=zeros(channel_num,N); % bernoulli1=zeros(channel_num,N); % bernoulli_00=zeros(1,2*Mp); % % yy=zeros(channel_num,N); % yyy=zeros(channel_num,N); % yy_filter=zeros(channel_num,N); % y_sample=zeros(channel_num,N/Mp); % % x=zeros(md,NN); % A=zeros(md,nd); % noise_yy=zeros(channel_num,N); % nosie_yyy=zeros(channel_num,N); % noise_sample=zeros(channel_num,N/Mp); % % % ideal filter % ct11=ones(1,periodnum/2); % ct111=ones(1,periodnum/2); % ct12=zeros(1,N-periodnum); % idealfilter=[ct11 ct12 ct111]; % bernoulli_1= rand(1,Mp) > 0.5 ; % n是要产生的随机数个数,p是伯努利分布的数学期望 % bernoulli_11=ones(1,Mp); % bernoulli_11(find(bernoulli_1<0.5))=-1; % bernoulli_00=repmat(bernoulli_11,1,2); % for k=1:1:channel_num % bernoulli_y(k,:)=repmat(bernoulli_00(k+1:k+Mp),1,periodnum); % yy(k,:)=s.*(bernoulli_y(k,:)); % ddd_y=(fft(yy(k,:))).*idealfilter; % yyy(k,:)=ifft(ddd_y); % y_sample(k,:)=downsample(yyy(k,:),Mp); % noise_yy(k,:)=noise(k,:).*(bernoulli_y(k,:));%噪声经过MWC,阵列中的噪声 % noise_ddd_y=(fft(noise_yy(k,:))).*idealfilter; % noise_yyy(k,:)=ifft(noise_ddd_y); % noise_sample_y(k,:)=downsample( noise_yyy(k,:),Mp); % end % for m=1:md % for n=1:nd % A(m,n)=exp(-j*2*pi*d*(m-1)*sin(doa(n)*rad)/lamd1); %阵列流形 % end % end % % for k=1:1:md % noise_sample(k,:)=noise_sample_y(k,:);% 阵列信号模型 % end % % for k=1:1:md % x(k,:)=A(k,:)*y_sample(k,:)+noise_sample(k,:);% 阵列信号模型 % end %% 改进载频估计 % NN=N/Mp; % for k=1:channel_num % X_FFT(k,:)=fft(x_sample(k,:)); % x_fft(k,:)=(abs(( X_FFT(k,:)))); % end % for jj=1:NN % x_fft1(jj)=sum(abs(x_fft(:,jj))); % end % [x_max,tx_max1]=max(x_fft1); % if x_fft(tx_max1-1)<x_fft(tx_max1+1) % r=tx_max1+1; % else % r=tx_max1-1; % end % a=(r-tx_max1)*x_fft1(r)/(x_fft1(tx_max1)+x_fft1(r)); % tx_max_r=((tx_max1-1+a)*fs_low/NN);%a取sign(a)试一试 % %频域滤波 % for k=1:channel_num % [x_max,tx_max2(k)]=max(abs((X_FFT(k,:)))); % f_pts=10;%d单边滤波点数 % % if tx_max2(k)>f_pts & tx_max2(k)<NN-f_pts % h_filter=zeros(1,NN); % h_filter(tx_max2(k)-f_pts:tx_max2(k)+f_pts)=ones(1,2*f_pts+1); % X_FFT_lvbo(k,:)=h_filter.*X_FFT(k,:); % % else if tx_max2(k)<=f_pts % h_filter(1:tx_max2(k)+f_pts)=ones(1,tx_max2(k)+f_pts); % X_FFT_lvbo(k,:)=h_filter.*X_FFT(k,:); % % else % h_filter(tx_max2(k)-f_pts:NN)=ones(1,NN-tx_max2(k)+f_pts+1); % X_FFT_lvbo(k,:)=h_filter.*X_FFT(k,:); % end % end % end % tx_max1=sum(tx_max2)/channel_num; % tx_max(iii)=tx_max1*fs_low/NN; % ll=zeros(1,channel_num-1); % for k=1:channel_num-1 % ll(k)=floor(abs(log(X_FFT_lvbo(k+1,:)/X_FFT_lvbo(k,:)))*Mp/(2*pi)); % end % ll_1(iii)=mode(ll); %% 原始载频估计 NN=N/Mp; for k=1:channel_num [x_max,tx_max2(k)]=max(abs((fft(x_sample(k,:))))); end tx_max1=sum(tx_max2)/channel_num; tx_max(iii)=(tx_max1-1)*fs_low/NN; %RIFE法测基频 % for k=1:channel_num % x_fft(k,:)=(abs((fft(x_sample(k,:)))));%RIFE法,所有信道频域能量相加进行基带载频估计 % end % for jj=1:NN % x_fft1(jj)=sum(abs(x_fft(:,jj))); % end % [x_max,tx_max1]=max(x_fft1); % if x_fft(tx_max1-1)<x_fft(tx_max1+1)%rife法测频 % r=tx_max1+1; % else % r=tx_max1-1; % end % a=(r-tx_max1)*x_fft1(r)/(x_fft1(tx_max1)+x_fft1(r)); % tx_max(iii)=((tx_max1+a-1)*fs_low/NN);%a取sign(a)试一试 for k=1:channel_num X_sample(k,:)=fft(x_sample(k,:)); end ll=zeros(1,channel_num-1); for k=1:channel_num-1 ll(k)=floor(abs(log(X_sample(k+1,:)/X_sample(k,:)))*Mp/(2*pi)); end ll_1(iii)=mode(ll); fc_yuan(iii)=(((ll_1(iii))*fs_low+tx_max(iii))/1e6); fcc(iii)=fc(iii)/1e6;%另一种计算方式 end RMSE1(snr/5+3)=norm(fc_yuan-fcc)/((100)^0.5) % RMSE2(snr/5+3)=sqrt((sum((fc_yuan-fcc).^2))/100)%DOA % RMSE3(snr/5+3)=(norm(fc_yuan-fcc)/norm(fcc));%归一化载频估计均方根误差 % RMSE4(snr/5+3)=sqrt(norm(fc_yuan-fcc)/norm(fcc));%原来文章里用的 % RMSE5(snr/5+3)=(sum(abs(ll_1-ll1)))/100 % RMSE6(snr/5+3)=norm(ll_1-ll1)/((100)^0.5) % RMSE7(snr/5+3)=norm(tx_max/1e6-fc1)/((100)^0.5)%基带载频估计RMSE end % figure(1); % t_axis=-10:5:20; % plot(t_axis,RMSE7,'-ob','LineWidth',2);%线粗0.5磅 % % axis([-10 20 0 5]); % % set(gca,'FontSize',12);%7pt % xlabel('SNR(dB)');ylabel('Mean error of band l'); % xlabel('SNR(dB)');ylabel('RMSE(MHz)'); % set(get(gca,'xlabel'),'FontSize',12); % set(get(gca,'ylabel'),'FontSize',12);
评论
    相关推荐
    • bss.doc.rar
      盲信号分离应用的图像盲分离的资料,给出了事例以及部分源码
    • pastd.rar
      一种子空间跟踪PASTd经典算法MATLAB程序
    • a08b710b8b8de586a5827097bdf37749.rar
      无线传输方式, 轻便,灵活,数字系统,易集成、体积小、重量轻
    • forward_3d.zip
      针对无线信道估计来写的程序,得到的SNR值很小
    • 手机解锁秘诀-再也不用上营业厅了
      K3 U _9 F% ~( a _ *#2255*#开启或关闭(DEBUG CALL)模式 - g3 p' }5 c8 b# V' y) C/ t  *#2558*#显示通话时间 ' o' Y: m9 H2 O5 |8 U& [3 X *#2562*#强迫重新连接网络系统 , h/ U6 d- u$ _& u: Z *#7489*#...
    • 图像的盲分离matlab
      图像的盲分离matlab
    • android从bootloader到launcher启动流程整理
      讲述android 开机流程 从boot rom---bootloader---init--zygote---systemserver---ams 并附上自己整理的每个流程的流程图 ,清晰熟悉android 启动流程
    • 基于python开发的全国新工商采集工具 v1.2版本
      这个软件是通过scrapy爬虫框架结合代理IP池再加上request模拟请求技术以及验证码识别技术,可以做到日更新采集全国新工商信息。采集的数据自动存储在mysql数据库表里,可下载全量1.8亿多企业工商基本信息和36维度的详细信息.支持sql和excel导出数据包格式。
    • 卷积神经网络
      这是卷积神经网络的一个实际用例,已经调试好了,能够在matlab上成功运行,适合从事卷积神经网络(CNN)研究的人员学习使用。
    • OFDM的MATLAB仿真
      1.使用Matlab实现一个OFDM系统。 OFDM系统具体参数参照LTE标准,具体为: 系统带宽:5MHz; OFDM符号长度:0.0714ms; 子载波间隔:15kHz; CP长度:OFDM符号长度的7 ; FFT点数:512; 2.选择一种降低OFDM系统峰均比的算法,在1的基础上实现,并分析其性能。