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

📄 hermite_pulse.m

📁 hermite,uwb成形脉冲函数,不同导数时
💻 M
字号:
% 一般来说alpha都选1ns,最大不能超过chip值
function hermite_pulse(alphamin,n)
% -------------------------------------------
% Step Zero - Input parameters and Initialize
% -------------------------------------------

 A=1;                   % pulse amplitude [V]
smp = 1024;                % number of samples
Tmin = -1e-9;              % Lower time interval limit
Tmax = 1e-9;               % Upper time interval limit

alpha =alphamin;          % Initialization of the shape
                           %  factor
t=linspace(Tmin,Tmax,smp); % Initialization of the time
                           %  axis
%talpha=t/alpha;   (t/alpha)
%etalpha=exp(-(talpha.^2)/2);
%syms pulse;

% --------------------------------------------
% Step One - Pulse waveform in the time domain
% --------------------------------------------

    % Pulse waveform definition
switch n  
    case(0)
        pulse=A*exp(1/4*(t/alpha).^2).*exp(-1/2*(t/alpha).^2)
    case(1)
        pulse= A*exp(1/4*(t/alpha).^2).*(t/alpha).*exp(-1/2*(t/alpha).^2)
    case(2)
        pulse=A*exp(1/4*(t/alpha).^2).*(-exp(-1/2*(t/alpha).^2)+(t/alpha).^2.*exp(-1/2*(t/alpha).^2))
    case(3)
        pulse=-A*exp(1/4*(t/alpha).^2).*(3*(t/alpha).*exp(-1/2*(t/alpha).^2)-(t/alpha).^3.*exp(-1/2*(t/alpha).^2))
    case(4)
        pulse=A*exp(1/4*(t/alpha).^2).*(3*exp(-1/2*(t/alpha).^2)-6*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)+(t/alpha).^4.*exp(-1/2*(t/alpha).^2))
    case(5)
        pulse=-A*exp(1/4*(t/alpha).^2).*(-15*(t/alpha).*exp(-1/2*(t/alpha).^2)+10*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)-(t/alpha).^5.*exp(-1/2*(t/alpha).^2))
    case(6)
        pulse=A*exp(1/4*(t/alpha).^2).*(-15*exp(-1/2*(t/alpha).^2)+45*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)-15*(t/alpha).^4.*exp(-1/2*(t/alpha).^2)+(t/alpha).^6.*exp(-1/2*(t/alpha).^2))
    case(7)
        pulse=-A*exp(1/4*(t/alpha).^2).*(105*(t/alpha).*exp(-1/2*(t/alpha).^2)-105*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)+21*(t/alpha).^5.*exp(-1/2*(t/alpha).^2)-(t/alpha).^7.*exp(-1/2*(t/alpha).^2))
    case(8)
        pulse=A*exp(1/4*(t/alpha).^2).*(105*exp(-1/2*(t/alpha).^2)-420*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)+210*(t/alpha).^4.*exp(-1/2*(t/alpha).^2)-28*(t/alpha).^6.*exp(-1/2*(t/alpha).^2)+(t/alpha).^8.*exp(-1/2*(t/alpha).^2))
    case(9)
        pulse=-A*exp(1/4*(t/alpha).^2).*(-945*(t/alpha).*exp(-1/2*(t/alpha).^2)+1260*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)-378*(t/alpha).^5.*exp(-1/2*(t/alpha).^2)+36*(t/alpha).^7.*exp(-1/2*(t/alpha).^2)-(t/alpha).^9.*exp(-1/2*(t/alpha).^2))
    case(10)
        pulse=A*exp(1/4*(t/alpha).^2).*(-945*exp(-1/2*(t/alpha).^2)+4725*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)-3150*(t/alpha).^4.*exp(-1/2*(t/alpha).^2)+630*(t/alpha).^6.*exp(-1/2*(t/alpha).^2)-45*(t/alpha).^8.*exp(-1/2*(t/alpha).^2)+(t/alpha).^10.*exp(-1/2*(t/alpha).^2))
    case(11)
        pulse=-A*exp(1/4*(t/alpha).^2).*(10395*(t/alpha).*exp(-1/2*(t/alpha).^2)-17325*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)+6930*(t/alpha).^5.*exp(-1/2*(t/alpha).^2)-990*(t/alpha).^7.*exp(-1/2*(t/alpha).^2)+55*(t/alpha).^9.*exp(-1/2*(t/alpha).^2)-(t/alpha).^11.*exp(-1/2*(t/alpha).^2))
    case(12)
        pulse=A*exp(1/4*(t/alpha).^2).*(10395*exp(-1/2*(t/alpha).^2)-62370*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)+51975*(t/alpha).^4.*exp(-1/2*(t/alpha).^2)-13860*(t/alpha).^6.*exp(-1/2*(t/alpha).^2)+1485*(t/alpha).^8.*exp(-1/2*(t/alpha).^2)-66*(t/alpha).^10.*exp(-1/2*(t/alpha).^2)+(t/alpha).^12.*exp(-1/2*(t/alpha).^2))
    case(13)
        pulse=-A*exp(1/4*(t/alpha).^2).*(-135135*(t/alpha).*exp(-1/2*(t/alpha).^2)+270270*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)-135135*(t/alpha).^5.*exp(-1/2*(t/alpha).^2)+25740*(t/alpha).^7.*exp(-1/2*(t/alpha).^2)-2145*(t/alpha).^9.*exp(-1/2*(t/alpha).^2)+78*(t/alpha).^11.*exp(-1/2*(t/alpha).^2)-(t/alpha).^13.*exp(-1/2*(t/alpha).^2))
    case(14)
        pulse=A*exp(1/4*(t/alpha).^2).*(-135135*exp(-1/2*(t/alpha).^2)+945945*(t/alpha).^2.*exp(-1/2*(t/alpha).^2)-945945*(t/alpha).^4.*exp(-1/2*(t/alpha).^2)+315315*(t/alpha).^6.*exp(-1/2*(t/alpha).^2)-45045*(t/alpha).^8.*exp(-1/2*(t/alpha).^2)+3003*(t/alpha).^10.*exp(-1/2*(t/alpha).^2)-91*(t/alpha).^12.*exp(-1/2*(t/alpha).^2)+(t/alpha).^14.*exp(-1/2*(t/alpha).^2))
    case(15)
        pulse=-A*exp((t/alpha).^2/4).*(2027025*(t/alpha).*exp(-1/2*(t/alpha).^2)-4729725*(t/alpha).^3.*exp(-1/2*(t/alpha).^2)+2837835*(t/alpha).^5.*exp(-1/2*(t/alpha).^2)-675675*(t/alpha).^7.*exp(-1/2*(t/alpha).^2)+75075*(t/alpha).^9.*exp(-1/2*(t/alpha).^2)-4095*(t/alpha).^11.*exp(-1/2*(t/alpha).^2)+105*(t/alpha).^13.*exp(-1/2*(t/alpha).^2)-(t/alpha).^15.*exp(-1/2*(t/alpha).^2))
    otherwise
        disp('大哥您输入的阶数忒高!') 
end     
  

% -------------------------------------------
% Step Two - Graphical output
% -------------------------------------------
% Time Domain Representation

    figure(1);
    subplot(1,2,1);
    PT=plot(t,pulse);
    set(PT,'LineWidth',[2]);
    AX=gca;
    set(AX,'FontSize',12);
    T=title('Hermite时域波形');
    set(T,'FontSize',14);
    X=xlabel('时间 [s]');
    set(X,'FontSize',14);
    Y=ylabel('幅度');
    set(Y,'FontSize',14);
   %axis([-0.5 0.5 -0.05 0.05]);
   
% Frequency Domain Representation

    dt = (Tmax-Tmin) / smp;     % sampling period
    fs = 1/dt                   % sampling frequency
    N = smp;                    % number of samples (i.e.
                                %  size of the FFT)
    df = 1 / (N * dt);          % fundamental frequency

    X=fft(pulse);               % double-sided MATLAB
                                %  amplitude spectrum
    X=X/N;                      % conversion from MATLAB
                                %  spectrum to Fourier
                                %  spectrum
    E = fftshift(abs(X).^2/(df^2)); % DOUBLE-SIDED ESD
    Ess = 2*E((N/2+1):N);           % SINGLE-SIDED ESD

    %figure(2);
    subplot(1,2,2);
    positivefrequency=linspace(0,(fs/2),N/2);
    PF=semilogy(positivefrequency,Ess);
    set(PF,'LineWidth',[2]);
    AX=gca;
    set(AX,'FontSize',12);
    T=title('Hermite频域波形');
    set(T,'FontSize',14);
    X=xlabel(' 频率 [Hz]');
    set(X,'FontSize',14);
    Y=ylabel('ESD  [(V^2)*sec/Hz]');
    set(Y,'FontSize',14);
    %axis([0 15e9 1e-40 0]);
   % text(7.5e9, 1e-25, alphabehaviour,...
    %   'BackgroundColor', [1 1 1]);

⌨️ 快捷键说明

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