• 大小: 12KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: Matlab
  • 标签: 小波  调制识别  

资源简介

小波方差用于调制识别,matlab程序,已经调试通过。

资源截图

代码片段和文件信息


scalar=4;
%--------------------------------------------------------------------------
%AM信号
%clear
%clc
t0=0.000008;                                      %定义t0信号的持续时间
tz=0.000000001;                                   %定义抽样时间
fc=100000000;                                     %定义载波频率
a=0.8;                                            %定义调制系数
fz=1/tz;                                                        
t=[0:tz:t0];                                      %定义出抽样点数据
m=sin(2*pi*10000000*t);                           %定义信号m  
c=cos(2*pi*fc.*t);                                %载波信号  
u=(1+a*m).*c;  
U=fftshift(fft(u));
scalar=4;%小波变换的尺度

snr=20;
y=awgn(usnr);
s=cwt(yscalar‘haar‘);
s=abs(s);                            %取小波系数的绝对值
%--------------------------------------------------------------------------
%中值滤波函数。x是需要滤波的信号n是模板大小(即1×n)
n=5;                                  %奇数,便于计算

L=length(s);                          %输入图像是1×p的且p>n
s2=s;
for i=1:L-n+1
          c=s(i:i+(n-1));             %取出x1中从(i)开始的n个元素 
          [caindex ]=sort(c);        %升序排列C=fliplr(B);反转操作,即倒序
          mm=median(ca);              %mm是中值
          s2(i+(n-1)/2)=mm;           %将中值赋给模板中心位置的元素
end 
d=uint8(s2);                         %未被赋值的元素取原值
d=double(d);
v1=var(d);



%--------------------------------------------------------------------------
%2ASK
t0=0.000008;                                      %定义t0信号的持续时间
tz=0.000000001;                                         %定义抽样时间
t=0:tz:t0;                             %定义横轴范围
fz=1/tz;
y=sin(2*pi*10000000.*t);                                     %定义信号m  
x=[ones(11000)zeros(11000)ones(11000)ones(11000)zeros(11000)zeros(11000)ones(11000)zeros(11001)]; %定义一个与二元序列对应的时间序列10110010
u=x.*y;                                  %幅频键控
U=fftshift(fft(u)); 

y=awgn(usnr);
s=cwt(yscalar‘haar‘);
s=abs(s);
%--------------------------------------------------------------------------
%中值滤波函数。x是需要滤波的信号n是模板大小(即1×n)

L=length(s);                          %输入图像是1×p的且p>n
s2=s;
for i=1:L-n+1
          c=s(i:i+(n-1));             %取出x1中从(i)开始的n个元素 
          [caindex ]=sort(c);        %升序排列C=fliplr(B);反转操作,即倒序
          mm=median(ca);              %mm是中值
          s2(i+(n-1)/2)=mm;           %将中值赋给模板中心位置的元素
end 
d=uint8(s2);                         %未被赋值的元素取原值
d=double(d);
v2=var(d);



%--------------------------------------------------------------------------
%2FSK:
t0=0.000008;                                      %定义t0信号的持续时间
tz=0.000000001;                                         %定义抽样时间
t=0:tz:t0;
fz=1/tz;
 f=[ones(11000)5*ones(11000)ones(11000)ones(11000)5*ones(11000)5*ones(1 1000)ones(11000)5*ones(11001)];%定义序列10110010
u=sin(2*pi*10000000*f.*t);                                     %定义信号m  
U=fftshift(fft(u)); 

y=awgn(usnr);
s=cwt(yscalar‘haar‘);
s=abs(s);
%---------------------------------------------------------------------

评论

共有 条评论