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

📄 t2f.m

📁 时间域信号转化为频率域
💻 M
字号:
% 频谱分析 %
%**********%
%初始化频谱分析参数及信号参数%
    T=10e-6;  %设定信号周期
    f0=1/T; %求取信号频率
    Fmax=300e6; %对于该信号,我们想要分析的最高目标频率
    N=max([2*2^ceil(log2(Fmax*T)),128]); %N的确定
    fs=N/T; %采样频率的确定
    %采样时间的确定
    n=0:1:N-1;
    t=n/fs;
%周期性信号的函数描述(单周期)%
    
    %函数参数定义
    k1=5e8; %信号上升速率
    tr=1e-6; %信号上升时间
    k2=50; %震荡幅度
    toff=4e-6;%信号关断时间
    t0=2e-6; %振荡时间
    w=2e6;%振荡频率
    k3=5e8; %信号下降速率
    tf=1e-6; %信号下降时间
    %周期性信号的分段描述
    nr=t<=tr;
    xr=k1*t.*nr;
    noff=tr<t&t<=tr+toff;
    xoff=(k1*tr+k2*exp(-4.6/t0*(t-tr)).*sin(w*(t-tr))).*noff;
    nf=t>tr+toff&t<=tr+toff+tf;
    xf=(k1*tr+k2*exp(-4.6/t0*toff)*sin(w*toff)-k3.*(t-tr-toff)).*nf;
    x=xr+xoff+xf;
                
    %生成信号时域波形
    figure(1);
    subplot(221);
    plot(t,x);
    xlabel('时间(s)');
    axis([0,T,-inf,inf]);
    ylabel('幅度(V&A)');
    title('信号时域波形');
    grid;
%进行FFT变换并作频谱图%
    y=fft(x); %进行FFT变换
    f=(n(1:N/2)-1)*f0; %频率范围
    %幅度
    mag1=abs(y); %求幅值
    mag=mag1(1:N/2)/N*2;
    ln=20*log10(mag)+120; %求对数谱
    %显示对数谱
    subplot(222);
    semilogx(f,ln);
    xlabel('频率(Hz)');
    axis([0,fs/2,-inf,inf]);
    ylabel('对数谱(dBu)');
    title('频谱图')
    grid
    %相位
    ang1=angle(y)*360/2/pi;
    ang=ang1(1:N/2);
    %显示相位
    subplot(224);
    semilogx(f,ang);
    xlabel('频率(Hz)');
    axis([1/T,fs/2,-inf,inf]);
    ylabel('相位(度)');
    title('相位图');
    grid;
%用IFFT恢复原始信号%
    xifft=ifft(y);  %恢复信号
    %显示恢复信号
    magx=real(xifft);
    ti=[0:length(xifft)-1]/fs;
    subplot(223);
    plot(ti,magx);
    xlabel('时间(s)');
    axis([0,T,-inf,inf]);
    ylabel('幅度(V&A)');
    title('恢复时域波形');
    grid;
%结束

⌨️ 快捷键说明

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