精华内容
下载资源
问答
  • 2021-10-03 00:44:07

    sinc函数和Sa函数对比解析

    原理分析

    1. sinc函数,又称辛格函数。表达式为:

    s i n c ( t ) = s i n ( π t ) / ( π t ) sinc(t) = sin(πt)/(πt) sinc(t)=sin(πt)/(πt)

    傅里叶变换后的形式为:
    u [ ( w + 1 ) / p i ) ] − u [ ( w − 1 ) / p i ) ] u[(w+1)/pi)]-u[(w-1)/pi)] u[(w+1)/pi)]u[(w1)/pi)]
    2.Sa函数,又称采样函数,表达式为:
    S a ( t ) = s i n ( t ) / t Sa(t)=sin(t)/t Sa(t)=sin(t)/t
    傅里叶变换后的形式为:
    p i ∗ [ u ( w + 1 ) − u ( w − 1 ) ] pi*[u(w+1)-u(w-1)] pi[u(w+1)u(w1)]
    起始二者的区别只在于是否归一化。

    仿真示例

    仿真示例与代码:

    clc; clear all; close all;
    % Author: @IMMUNIZE
    dt=0.01;
    fs=1/dt;
    t=-100:dt:100-dt
    sinct=sin(pi*t)./(pi*t);
    Sa = sin(t)./t;
    subplot(4,1,1);
    plot(t,sinct);
    xlim([-8,8]);
    title('sinct/t时域');
    subplot(4,1,3);
    plot(t,Sa);
    xlim([-8,8]);
    N=2^20*32;
    sincf=fft(sinct,N);
    Saf = fft(Sa,N);
    f=-fs/2:fs/N:(fs/2-fs/N);
    title('Sa/t时域');
    subplot(4,1,2);
    plot(f,fftshift(abs(sincf))/max(abs(sincf)))
    axis([-10 10,0,1]);
    title('sinct/t频域');
    subplot(4,1,4);
    plot(f,fftshift(abs(Saf))/max(abs(Saf)))
    axis([-10 10,0,1]);
    title('Sa/t频域');
    

    绘制图形为:

    在这里插入图片描述

    注意细节

    另外请注意虽然频域上是个矩形,其作为滤波器的矩行系数为1,不可实现,另有,反推之其时域为非因果系统,而非因果系统在物理上同样是不可实现的,因此实际应用中我们都只能尽可能的逼近而做不到完全理想。如此即为数字滤波器的基本前置知识。

    更多相关内容
  • sa函数的matlab代码
  • sa函数的matlab代码
  • 什么是采样定理(3) 信号的恢复(4) Matlab的Sa函数取样仿真1. 采样信号Sa函数的说明2. 进行参数的说明及相关计算3. 结果的展示4. matlab 代码 (1) 采样的说明 1. 为什么要取样 我们要使用计算机去处理信号。信号都...

    (1) 采样的说明

    1. 为什么要取样

    • 我们要使用计算机去处理信号。信号都是连续的,在任意一个非空区间内都有无限个值,但是计算机的内存是一个有限值,只能完成有限的数据存储和运算,所以要进行采样和量化等操作,把信号离散成有限个点就可以使用计算机处理了。当信号在计算机中处理完,按照一定的规则恢复成连续的状态就可以了。
    • 注意采样定理和后面 DFT(discrete Fourier transform) 之间的联系。

    2. 什么是取样

    • 取样就是利用取样脉冲序列从连续信号中 抽取离散的样本值
      • 从时域上看 f s ( t ) = f ( t ) × s ( t ) f_s(t) = f(t) \times s(t) fs(t)=f(t)×s(t)
      • 从频域上看 F s ( j ω ) = 1 2 π F ( j ω ) ∗ S ( j ω ) F_s(j\omega) = \displaystyle\frac{1}{2\pi}F(j\omega) * S(j\omega) Fs(jω)=2π1F(jω)S(jω)
    • 冲激取样(理想取样)的例子
      • 可以看到在时域上是通过乘积完成对应离散点的选取,在频域上完成的是信号频谱的周期延拓。

    (2) 采样定理

    1. 为什么要有奈奎斯特频率

    • 首先要明白一件事,使用采样点恢复出原来的信号需要的是进行一个低通滤波,把频域上的低频波形滤出来就可以了。
    • 从上面的图可以看出来,取样在频域中相当于进行了频谱的周期延拓,所以就会出现一个问题,平移距离不够会引起频域波形的重叠,当发生重叠之后就无法完成滤波了,即无法完成信号的恢复了。因此需要对平移的距离有一个限制,也就是采样定理中的奈奎斯特频率。

    2. 什么是采样定理

    • 一个频谱在区间 ( − ω m , ω m ) (-\omega_m,\omega_m) (ωm,ωm) 以外为 0 的带限信号 f ( t ) f(t) f(t),可唯一的由其在均匀间隔 T s [ T s < 2 π / ω m ] T_s [T_s < 2\pi/\omega_m] Ts[Ts<2π/ωm] 上的样值点 f ( n T s ) f(nT_s) f(nTs) 确定。
      • 注意必须是带限信号。像冲激函数这样的就无法取样,因为在频域上的无限意味着在时域信号的存在时间无限趋于 0。
      • 取样频率不能太低,必须 f s > 2 f m f_s > 2f_m fs>2fm 。最低取样频率 f s = 2 f m f_s = 2f_m fs=2fm称为奈奎斯特频率

    (3) 信号的恢复

    • 参量的说明
      • 低通滤波器的截止角频率: ω c \omega_c ωc,从图上明显可以看出需要有 ω m < ω c < ω s − ω m \omega_m<\omega_c<\omega_s-\omega_m ωm<ωc<ωsωm,为方便取 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs
      • 采样角频率: ω s \omega_s ωs,注意根据采样定理 ω s > 2 ω m \omega_s > 2\omega_m ωs>2ωm
      • 带限信号的最大角频率: ω m \omega_m ωm
    • 信号恢复的过程是信号采样过程的逆过程。实际上在进行频域乘积滤波的过程中,时域进行了卷积的平移,平移到不同位置的函数叠加就恢复出原始信号。

    (4) Matlab的Sa函数取样仿真

    1. 采样信号Sa函数的说明

    • Matlab 中自带的函数是 sinc 函数,其形式是 s i n ( π t ) π t \displaystyle\frac{sin(\pi t)}{\pi t} πtsin(πt),我们要在仿真中使用的是 Sa 函数,其形式是 s i n ( t ) t \displaystyle\frac{sin(t)}{t} tsin(t),因此 sa = sinc(t/pi)
    • 代码:
      %% 打印出来sa函数
      t = -20:0.001:20;
      L = length(t);
      x = sinc(t / pi);
      plot(t,x,'LineWidth',3);
      xlabel('t');ylabel('Amplitude'); title('Sa(t)')
      
    • 结果:

    2. 进行参数的说明及相关计算

    • 参数说明
      • s a ( t ) sa(t) sa(t) 的傅里叶变换结果是 π g 2 ( ω ) \pi g_2(\omega) πg2(ω),就是一个门宽为 2 的门函数。因此可以知道 ω m = 1 \omega_m = 1 ωm=1
      • 根据奈奎斯特采样定律,这里选取 ω s = 2 ω m \omega_s = 2\omega_m ωs=2ωm ω s = 1.5 ω m \omega_s=1.5\omega_m ωs=1.5ωm ω s = 4 ω m \omega_s=4\omega_m ωs=4ωm。分别模拟临界采样,欠采样和过采样三种情况。相应的选取信号还原时低通滤波器的截止频率 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs
    • 这里选取时域的正半轴取样点一共 N 个,下面使用 ∞ \infin 推公式,但是最后要用 N N N
    • 信号取样
      • 冲激取样函数: δ T s ( t ) = ∑ n = − ∞ ∞ δ ( t − n T s ) \delta_{T_s}(t)=\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s) δTs(t)=n=δ(tnTs)
      • 通过采样的定义可知 f s ( t ) = f ( t ) × s a ( t ) f_s(t) = f(t) \times sa(t) fs(t)=f(t)×sa(t),在matlab中只需要 fs = sinc(t/pi)
    • 信号恢复
      • 采样后的信号在时域上的表达式为 f s ( t ) = f ( t ) ∑ n = − ∞ ∞ δ ( t − n T s ) = ∑ n = − ∞ ∞ δ ( t − n T s ) f ( n T s ) f_s(t)=f(t)\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s)=\displaystyle\sum_{n=-\infin}^{\infin}\delta(t-nT_s)f(nT_s) fs(t)=f(t)n=δ(tnTs)=n=δ(tnTs)f(nTs)
      • 假设采样后的信号在频域上的表达式为 F s ( j ω ) F_s(j\omega) Fs(jω),并选取低通滤波器
        H ( ω ) = { T s , ∣ ω ∣ ≤ ω c 0 , ∣ ω ∣ > ω c H(\omega)=\begin{cases} T_s ,&|\omega|\leq \omega_c\\ 0, & |\omega|> \omega_c \end{cases} H(ω)={Ts,0,ωωcω>ωc
        可以算出 H ( ω ) H(\omega) H(ω) 在时域上的表达式 h ( t ) = T s ω c π s a ( ω c t ) h(t)=T_s\displaystyle\frac{\omega_c}{\pi}sa(\omega_ct) h(t)=Tsπωcsa(ωct)之所以选取 H ( ω ) H(\omega) H(ω)的放大倍数为 T s T_s Ts 是因为此时 h ( t ) h(t) h(t) 的系数是 1(因为 ω c = 0.5 ω s \omega_c = 0.5\omega_s ωc=0.5ωs)。
      • 根据前面的讨论,让取样后的信号通过低通滤波器相当于频域相乘即 F ( j ω ) = F s ( j ω ) × H ( ω ) F(j\omega) = F_s(j\omega)\times H(\omega) F(jω)=Fs(jω)×H(ω)。同时根据时域和频域的关系, f ( t ) = f s ( t ) ∗ h ( t ) f(t) = f_s(t) * h(t) f(t)=fs(t)h(t)。带入前面的结果可以得到 f ( t ) = T s ω c π ∑ n = − ∞ ∞ f ( n T s ) s a ( ω c ( t − n T s ) ) f(t)=T_s\displaystyle\frac{\omega_c}{\pi}\displaystyle\sum_{n=-\infin}^{\infin}f(nT_s)sa(\omega_c(t-nT_s)) f(t)=Tsπωcn=f(nTs)sa(ωc(tnTs))

    3. 结果的展示

    • 临界取样
    • 过采样(实际上这里有一点不太明白,为什么过采样恢复后信号的误差会比临界采样的大??
    • 欠采样

    4. matlab 代码

    %% matlab 完成Sa信号的采样和恢复
    %% 取样(临界取样)
    % 取样
    figure(1);
    wm = 1; %信号的最大频率
    ws = 2 * wm; %信号的采样频率(根据奈奎斯特频率)
    wc = 0.5 * ws;%滤波器的截止频率
    Ts = 2*pi/ws;%采样间隔
    N = 10;%时域采样点数
    n = -N:N;
    nTs = n * Ts;%采样数据的采样时间
    fs = sinc(nTs/pi);%完成采样
    subplot(311);
    stem(nTs/pi,fs,'LineWidth',3);
    xlabel("nTs");
    ylabel("f(nTs)");
    title("sa(t)的临界取样信号");
    % 还原
    Dt = 0.005;
    t = -15:Dt:15;
    fa = Ts*wc/pi * fs * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
    subplot(312);
    plot(t,fa,'LineWidth',3);
    xlabel("t");
    ylabel("f(t)");
    title("由临界取样信号重构sa(t)");
    % 展示误差
    error = abs(fa-sinc(t/pi));
    subplot(313);
    plot(t,error,'LineWidth',3);
    xlabel("t");
    ylabel("error(t)");
    title("重构信号与原信号的误差error(t)");
    %% 取样(过取样)
    % 取样
    figure(2);
    wm = 1; %信号的最大频率
    ws = 4 * wm; %信号的采样频率(根据奈奎斯特频率)
    wc = 0.5 * ws;%滤波器的截止频率
    Ts = 2*pi/ws;%采样间隔
    N = 20;%时域采样点数
    n = -N:N;
    nTs = n * Ts;%采样数据的采样时间
    fs = sinc(nTs/pi);%完成采样
    subplot(311);
    stem(nTs/pi,fs,'LineWidth',3);
    xlabel("nTs");
    ylabel("f(nTs)");
    title("sa(t)的过取样信号");
    % 还原
    Dt = 0.005;
    t = -15:Dt:15;
    fa = fs*Ts*wc/pi * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
    subplot(312);
    plot(t,fa,'LineWidth',3);
    xlabel("t");
    ylabel("f(t)");
    title("由过取样信号重构sa(t)");
    % 展示误差
    error = abs(fa-sinc(t/pi));
    subplot(313);
    plot(t,error,'LineWidth',3);
    xlabel("t");
    ylabel("error(t)");
    title("重构信号与原信号的误差error(t)");
    %% 取样(欠取样)
    % 取样
    figure(3);
    wm = 1; %信号的最大频率
    ws = 1.5 * wm; %信号的采样频率(根据奈奎斯特频率)
    wc = 0.5 * ws;%滤波器的截止频率
    Ts = 2*pi/ws;%采样间隔
    N = 7;%时域采样点数
    n = -N:N;
    nTs = n * Ts;%采样数据的采样时间
    fs = sinc(nTs/pi);%完成采样
    subplot(311);
    stem(nTs/pi,fs,'LineWidth',3);
    xlabel("nTs");
    ylabel("f(nTs)");
    title("sa(t)的欠取样信号");
    % 还原
    Dt = 0.005;
    t = -15:Dt:15;
    fa = fs*Ts*wc/pi * sinc((wc/pi)*(ones(length(nTs),1)*t-nTs'*ones(1,length(t))));
    subplot(312);
    plot(t,fa,'LineWidth',3);
    xlabel("t");
    ylabel("f(t)");
    title("由欠取样信号重构sa(t)");
    % 展示误差
    error = abs(fa-sinc(t/pi));
    subplot(313);
    plot(t,error,'LineWidth',3);
    xlabel("t");
    ylabel("error(t)");
    title("重构信号与原信号的误差error(t)");
    

    现在已经转移到知乎,之后的文章会在知乎更新。

    展开全文
  • sa函数的积分(sint/t)

    2022-04-01 15:05:18
    昨天看信号突然想算算这个,结果发现不会算积分,网上学了一下,记录一下 最近通过对信号与系统的研究从信号角度进行更简单的解答

    昨天看信号突然想算算这个,结果发现不会算积分,网上学了一下,记录一下

    最近通过对信号与系统的研究从信号角度进行更简单的解答

    展开全文
  • sa函数的应用

    2013-10-22 15:56:40
    这是一个关于sa函数的文档,对于不会的同学可以来看看
  • %SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解—Jason niu[x,y] = meshgrid(-5:0.1:5,-5:0.1:5);z = x.^2 + y.^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20;figuremesh(x,y,z)hold onxlabel...

    %SA:T1法利用Matlab编写主函数实现对定义域[-5,5]上的二元函数求最优解—Jason niu

    [x,y] = meshgrid(-5:0.1:5,-5:0.1:5);

    z = x.^2 + y.^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20;

    figure

    mesh(x,y,z)

    hold on

    xlabel(‘x‘)

    ylabel(‘y‘)

    zlabel(‘z‘)

    title(‘SA:利用SA最优化,定义域[-5,5]上的二元函数z = x^2 + y^2 - 10*cos(2*pi*x) - 10*cos(2*pi*y) + 20的最大值—Jason niu‘)

    maxVal = max(z(:));

    [maxIndexX,maxIndexY] = find(z == maxVal);

    for i = 1:length(maxIndexX)

    plot3(x(maxIndexX(i),maxIndexY(i)),y(maxIndexX(i),maxIndexY(i)), maxVal, ‘r*‘,‘linewidth‘,2)

    text(x(maxIndexX(i),maxIndexY(i)),y(maxIndexX(i),maxIndexY(i)), maxVal, {[‘ X: ‘ num2str(x(maxIndexX(i),maxIndexY(i)))];[‘ Y: ‘ num2str(y(maxIndexX(i),maxIndexY(i)))];[‘ Z: ‘ num2str(maxVal)]})

    hold on

    end

    5589e6d0153b5057435a92a910b147c7.gif

    %SA:[email protected]on_niu函数实现对二元函数优化求解—Jason niu

    function fitnessVal = Jason_niu( x )

    edf87a747e6e91b9d3365a87bd867821.gif

    4b08ca7c6969a23ec47a7b59466f7fc5.gif

    展开全文
  • 绘制抽样函数Sa(x)matlab代码

    千次阅读 2022-01-10 15:42:26
    x=linspace(-5*pi,5*pi,10000); y=sin(x)./x; subplot(2,1,1); plot(x,y,'k','LineWidth',1.2); grid on; set(gca,'xlim',[-5*pi,5*pi]);%设置x轴坐标范围 set(gca,'xtick',-5*pi:pi:5*pi);...ylabel('Sa(x)');
  • 3.8.2 频域抽样 频域有限 时域有限 时域无限 频域无限 但反之不一定成立 如:白噪声 时域取样与频域取样的对称性 f(t) 以 为周期重复 f(t)以T为周期重复 偶函数 变量置换 频域取样后的时间函数 相乘 卷积 抽样定理...
  • 辛格函数sinc(x)和抽样函数Sa(t)

    万次阅读 2020-03-19 17:54:37
    数学的一体两面抽样函数Sa(t)辛格函数sinc(x)归一化的sinc函数非归一化的sinc函数二元归一化sinc函数 两个函数,具有同样的表达式,代表不同的意义。 抽样函数Sa(t) 抽样函数是指正弦函数和自变量之比构成的...
  • Matlab画常见的信号函数

    千次阅读 2021-07-15 10:38:14
    一.Sa函数 功能:产生Sinc或sin(pi*t)/(pi*t)函数波形. 格式:y = sinc(x) 代码如下: x = linspace(-5,5); y = sinc(x); plot(x,y); 结果如下: 二.调频余弦信号 功能:产生调频余弦信号 格式:y = ...
  • Sa(sinc)函数的傅里叶变换

    万次阅读 多人点赞 2019-03-02 17:19:42
    有不对的地方还请多指教呀! 求sinc(t)的傅里叶变换 MATLAB代码 dt=0.01; fs=1/dt; t=-100:dt:100-dt sinct=sin(pi*t)./(pi*t); subplot(2,1,1) plot(t,sinct) xlim([-8,8]) N=2^20*32; sincf=fft(sinct,N);...su...
  • 相位的计算可用函数atan2(b,a)计算。atan2(b,a)是求坐标为(a,b)点的角度值,范围从-pi到pi。要精确到xHz,则需要采样长度为1/x秒的信号,并做FFT。 要提高频率分辨率,就需要增加采样点数,这在一些实际的应用中是...
  • 自己写JS函数sa.js

    2021-02-03 22:00:37
    自己写JS函数sa.js
  • 信号与系统

    千次阅读 2020-12-20 04:15:38
    信号如何描述、分类和运算描述函数表达式图形描述分类模拟/数字周期/非周期功率/能量确定/随机运算自变量因变量自变量+因变量3. 信号如何分解,有何意义4. 如何建立系统模型,如何分类5. 什么是线性时不变系统,有...
  • 2.1 频谱、频谱密度函数、 功率谱、能量谱 均方值:先平方再去平均值——m(t)2‾\overline{m(t)^2}m(t)2​——平均功率R(0)R(0)R(0) 均值的平方:先求均值再进行平方——m(t)‾2\overline{m(t)}^2m(t)​2——直流...
  • 信号与系统_第三章_学习心得

    千次阅读 2021-01-12 09:29:44
    $$ F(t)\leftrightarrow 2\pi f(\omega) $$ 此性质的意义为若一个时间函数$F(\omega)$和偶函数$f(t)$的频谱函数$F(\omega)$形式相同,那么$F(t)$的频谱函数与偶函数$f(t)$形式相同,但是差一个系数$2\pi$. 时移特性 $$...
  • 奈奎斯特定理和香农第二定理

    千次阅读 2020-02-23 11:08:00
    讲奈奎斯特定理,先讲一下门函数和Sa函数的傅里叶变换 即不管是Sa函数还是门函数,时域主瓣宽度为a,频率为b=1/a时,傅里叶变换主瓣宽度为2b。 右图,当传码率为fB时,即码元间隔Tb=1/fB时,一个Sa函数的主瓣宽度...
  • 首先说,当一个运算出现了冲激函数与冲激函数相乘的运算时,就说明这个运算是错误的,违反了某些规则。例如: sin(t)的傅里叶变换为:Dirac(w+1)+Dirac(w-1) 单位直流信号的傅里叶变换为2π*Dirac(w) 上述是...
  • 函数卷积_卷积及其应用

    千次阅读 2020-11-20 13:49:13
    卷积公式的由来卷积公式最开始来自于古典概型。如题,掷两次公平的骰子,点数之...设掷骰子的概率密度函数为 , 则该事件的概率为 将该例子拓展到连续型随机变量。设 是二维连续型随机变量,它具有概率密度 . , 求 的...
  • MATLAB怎么画函数的傅里叶变换

    千次阅读 2020-12-27 23:41:16
    MATLAB中可以用fourier函数来算出信号的傅里叶变换 syms w f(t) f(t)=sinc(t); F1 = fourier(f(t), t, w) ezplot(F1,[-10*pi,10*pi],1)
  • 关于矩形窗函数DFT和FFT的笔记

    万次阅读 多人点赞 2018-10-28 17:03:19
    (本科的时候快把Sa函数的图画烂了): 这时,我想啊,如果是它的时移信号呢?根据FT的时移性质很容易得到: 但是在画幅度谱时,是要对信号的FT求模滴!所以,幅度谱不会包含时移信息,而是时...
  • 取样定理 ———用MATLAB实现Sa信号的采样和恢复

    千次阅读 多人点赞 2019-05-08 11:26:06
    今天在看视频的时候看到的,觉得很有趣,然后就给截屏了!(中国大学MOOC上的,西电讲信号的用的教材应该也是吴大正第四版的书,视频挺好的,有需要的可以看看) ...
  • 冲激函数的卷积规律

    万次阅读 2020-10-28 20:20:05
    复习信号与系统关于冲激函数的卷积发现了一个小规律,不知是否正确,记录于此备忘:定义O为某种运算操作算子(包括但不限于叠加、倍乘、时移等操作,大概率需要满足线性时不变性),有以下规律:复习信号与系统关于...
  • 信号处理函数

    千次阅读 2017-11-25 11:05:04
    linux除了支持unix早期的信号语义函数,还支持语义符合posix.1标准的信号函数sigaction。   2.信号量:(Semaphore)进程间通信处理同步互斥的机制。是在多线程环境下使用的一种设施, 它负责协调各个线程, 以
  • 常见函数的级数展开

    千次阅读 2020-04-28 18:53:20
    函数 麦克劳林级数 xxx范围 exe^xex ∑n=0∞xnn!=1+x+x22!+x33!+…\sum_{n=0}^{\infty}\frac{x^n}{n!}=1+x+\frac{x^2}{2!}+\frac{x^3}{3!}+\dotsn=0∑∞​n!xn​=1+x+2!x2​+3!x3​+… −∞<x<+∞-\infty&...
  • 脉冲函数与卷积

    千次阅读 2020-01-22 01:47:41
    文章目录前言线性系统的可加性与齐次性脉冲函数与卷积结语 前言 近来为准备考研复试,又拾起了大三学的懵懵懂懂的《信号与系统》,看的是MIT的公开课(公开课链接),感觉受益匪浅。 记忆中这门课对脉冲函数的响应和...
  • 用MATLAB实现函数的频谱图

    千次阅读 2021-04-19 08:23:10
    满意答案方案一、这个函数在t=0处的极限是f(0)=2*pi*cos(2*pi*0)/pi=2;故,算完之后,把t=0的点的f值替换掉就可以了。[m,n]=find(t==0)f(m,n)=2;方案二、实际上,这是个辛格函数(sinc function),可以用sinc函数代替...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,288
精华内容 48,515
关键字:

sa函数

友情链接: a1_tec-xp_zh_all_.zip