现代信号处理实验:MATLAB实现多分量信号的WV分布和模糊函数的绘制

MATLAB实现多分量信号的WV分布和模糊函数的绘制

时域信号的傅氏谱(傅里叶变换频谱)、能量谱、功率谱都是信号变换到频域的一种表示,对于频谱不随时间变换的确定性信号和平稳随机信号而言,在频域分析中都可以很好的对信号进行分析处理。

然而,当频谱随时间变化时,在频域分析就存在着严重的不足,因为频域分析不能表示某个时刻的频域情况。针对频谱随时间变化的确定性信号和非平稳随机信号,提出了信号的时频表示方法,它将一维时域信号或者频域信号映射到时间-频率平面上的二维信号。时频表示的方法有很多,大致可分为线性时频表示、二次型时频表示和其他类型的时频表示。

其中两类常用的为WV分布和模糊函数。

WV分布

现代信号处理实验:MATLAB实现多分量信号的WV分布和模糊函数的绘制_第1张图片
在这里插入图片描述

模糊函数

现代信号处理实验:MATLAB实现多分量信号的WV分布和模糊函数的绘制_第2张图片

代码实现

main.m文件:

clear;  
clc;

%% 信号参数
alpha1=20; t1=10; t2=4; w1=4; w2=1;  
a=alpha1/2; td=t1-t2; omegad=w1-w2;  
tm=0.5*(t1+t2); omegam=0.5*(w1+w2);
m=1;n=1;  
 
%% WV分布
for t=0:0.1:8  
    for omega=-6:0.1:12  
        W_auto(m,n)=2*(exp(-a*(t-t1)^2-1/a*(omega-w1)^2)+exp(-a*(t-t2)^2-1/a*(omega-w2)^2));      
        W_cross(m,n)=4*exp(-a*(t-tm)^2-1/a*(omega-omegam)^2)*cos((omega-omegam)*td+omegad*t);  
        W(m,n)=W_auto(m,n)+W_cross(m,n);  
        n=n+1;  
    end  
    m=m+1;  
    n=1;  
end  
  
figure;   
subplot(2,3,1);  
mesh([-6:0.1:12],[0:0.1:8],W);  
xlabel('time');  
ylabel('frequency');  
title('WV分布');  
subplot(2,3,2); 
mesh([-6:0.1:12],[0:0.1:8],W_auto);  
xlabel('time');  
ylabel('frequency');  
title('WV分布信号项');  
subplot(2,3,3);  
mesh([-6:0.1:12],[0:0.1:8],W_cross);  
xlabel('time');  
ylabel('frequency');  
title('WV分布交叉项');  

%% 模糊函数  
format long;   
a=10; t1=10; t2=4; w1=4; w2=1;  
td=t1-t2;   wd=w1-w2;  
tm=0.5*(t1+t2); wm=0.5*(w1+w2);  
m=1;n=1;  

for t=-10:0.1:10  
    for w=-10:0.1:10        
        A_auto(m,n)=abs(exp(-a/4*t^2-1/(4*a)*w^2)*(exp(i*w1*t-i*t1*w)+exp(i*w2*t-i*t2*w)));      
        A_cross(m,n)=abs(exp(i*wm*t+i*w*tm+i*wd*tm)*(exp(-1/(4*a)*(w+wd)^2-a/4*(t-td)^2)+exp(-1/(4*a)*(w-wd)^2-a/4*(t+td)^2)));  
        A(m,n)=A_auto(m,n)+A_cross(m,n);  
        n=n+1;  
    end  
    m=m+1;  
    n=1;  
end  
  
subplot(2,3,4);  
mesh([-10:0.1:10],[-10:0.1:10],A);  
xlabel('time');  
ylabel('frequency');  
title('模糊函数');  
subplot(2,3,5);  
mesh([-10:0.1:10],[-10:0.1:10],A_auto);  
xlabel('time');  
ylabel('frequency');  
title('模糊函数信号项');  
subplot(2,3,6);  
mesh([-10:0.1:10],[-10:0.1:10],A_cross);  
xlabel('time');  
ylabel('frequency');  
title('模糊函数交叉项');  
 
set(0,'defaultfigurecolor','w')   

你可能感兴趣的:(通信专业课程笔记,信号处理,matlab,算法)