⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 am_ofdm_classification.m

📁 基于小波变换的调制识别方法.里面包含如下内容:QAM、PSK、FSK、AM和OFDM信号源生成程序
💻 M
字号:
%function [symbol_time,use_time,guard_time]=reg_time_bak(source);
%clear
%load ofdm.mat;
%time=0.01;
%%for t=1:100
x_time=0.01;
snr=31
 s=snr-1;   
   %-------------ofdm-----------------求ofdm信号相关峰的方差
sim('my_OFDM');
xx=reshape(ofdm,1,91429);%数据整形
data = xx(40000:60000);
x =awgn(data,s,'measured');%加高斯噪声

[m,n]=size(x);
len = 4000;

%----------找符号有效期长度
        for k=1:len
%-----------计算不同点的相关和与平均能量
            temp=0;
            temp1=0;
            for i=1:len
                temp=temp+x(i)*conj(x(i+k));
                temp1=temp1+x(i)*conj(x(i))+x(i+k)*conj(x(i+k));
            end
            r(k)=temp;
            en(k)=temp1/2;
%%%%计算相关峰值
            peak(k)=abs(r(k))/en(k);
            k=k;
        end
   %figure
   % plot(peak(10:len));
%     title('use_time reg')
        site=find(peak(:)==max(peak(10:length(peak))));
        use_time=site;
%use_time即为符号有效长度的采样点数,与采样周期相乘即得到有效期长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%根据有效长度找一个符号的起始点根据多个起始点的平均距离即可得到符号长度
%%%先求出相关峰值
    for k=1:n-use_time-500-1
      temp=0;temp1=0;
      for i=1:500
        temp=temp+x(k+i)*conj(x(k+i+use_time));
    temp1=temp1+x(k+i)*conj(x(k+i))+x(k+i+use_time)*conj(x(k+i+use_time));
      end
        r1(k)=temp;
        en1(k)=temp1/2;
        beg(k)=abs(r1(k))/en1(k);
    end
   var_ofdm=var(beg);%ofdm信号的相关峰方差
  %%end
%%end
  % 绘制ofdm信号的相关峰
    subplot(2,2,1);
    plot(beg);
    %-------------am信号相关峰的方差
sim('am');%r=randint(1,1000);xx=reshape(ofdm,1,91429);
data = am(40000:60000);
x =awgn(data,s,'measured');

[m,n]=size(x);
len = 4000;

%----------找符号有效期长度
        for k=1:len
%-----------计算不同点的相关和与平均能量
            temp=0;
            temp1=0;
            for i=1:len
                temp=temp+x(i)*conj(x(i+k));
                temp1=temp1+x(i)*conj(x(i))+x(i+k)*conj(x(i+k));
            end
            r(k)=temp;
            en(k)=temp1/2;
%%%%计算相关峰值
            peak(k)=abs(r(k))/en(k);
            k=k;
        end
   %figure
   % plot(peak(10:len));
%     title('use_time reg')
        site=find(peak(:)==max(peak(10:length(peak))));
        use_time=site;
%use_time即为符号有效长度的采样点数,与采样周期相乘即得到有效期长度
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%根据有效长度找一个符号的起始点根据多个起始点的平均距离即可得到符号长度
%%%先求出相关峰值
    for k=1:m-use_time-500-1
      temp=0;temp1=0;
      for i=1:500
        temp=temp+x(k+i)*conj(x(k+i+use_time));
    temp1=temp1+x(k+i)*conj(x(k+i))+x(k+i+use_time)*conj(x(k+i+use_time));
      end
        r1(k)=temp;
        en1(k)=temp1/2;
        beg(k)=abs(r1(k))/en1(k);
    end
    var_am=var(beg);
  %%end
%%end
  % 绘制am信号的相关峰
    subplot(2,2,2);
    plot(beg);


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -