精华内容
下载资源
问答
  • 文章目录2N点实数FFT计算两路实信号合成一路复信号计算FFT 近日整理发现了两份几年前写的代码,差点忘了写过它们。现在贴在这里,说不定哪天还能用一用。 2N点实数FFT计算 参考论文《基于DSP的实数FFT算法研究与...


    近日整理发现了部分几年前写的代码,差点忘了写过它们。现在贴在这里,说不定哪天还能用一用。

    2N点实数FFT计算

    参考论文《基于DSP的实数FFT算法研究与实现

    function [ fft_result ] = fft_paper(data_in,type)
        %============================================
        % 获取数据的长度,将数据拆分为奇数序列、偶数序列
        N = length(data_in);
        if(mod(N,2)==1) 
            error('输入数据长度必须是2的整数倍');
        end
        data_even    = data_in(1:2:end);
        data_odd     = data_in(2:2:end);
        
        %============================================
        % 将奇数序列、偶数序列合成复数序列,使用MATLAB计算N/点的FFT结果
        data_complex = data_even + data_odd*j;
        fftData_N_2 = fft(data_complex,N/2);
        
        %============================================
        % 获取A、B系数
        A_k = 1/2*(1-j*exp(-j*2*pi*(0:N/2-1)/N));
        B_k = 1/2*(1+j*exp(-j*2*pi*(0:N/2-1)/N));
        
        %============================================
        % 根据外部选项对数据进行处理
        if(type==1)         % 组合1
            G_k = fftData_N_2.*A_k + conj(fliplr(fftData_N_2)).*B_k;
        elseif(type==2)     % 组合2
            G_k_1 = fftData_N_2(1,1)*A_k(1,1) + conj(fftData_N_2(1,1))*B_k(1,1);
            G_k_others = fftData_N_2(1,2:end).*A_k(1,2:end) + conj(fliplr(fftData_N_2(1,2:end))).*B_k(1,2:end);
            G_k = [G_k_1 G_k_others];
        end
        fft_result = G_k;
    end
    
    clc;clear all;close all;
    
    %=================================================
    TYPE1 = 1;
    TYPE2 = 2;
    
    %=================================================
    FS = 200;
    f  = 75;
    N  = 32;
    t=(0:N-1)/FS;
    
    sig1 = cos(2*pi*f*t+4*pi/2);
    sig2 = cos(2*pi*f*t+pi/4);
    
    %=================================================
    %MATLAB中的FFT计算
    fft_sig1 = fft(sig1);
    [value1,index1] = max(abs(fft_sig1));
    ps_sig1 = phase(fft_sig1(index1))/pi*180;
    freq_sig1 = (index1-1)/N*FS;
    fprintf('使用MATLAB计算 sig1 的相位为 %f,频率为%f \n',ps_sig1,freq_sig1);
    
    fft_sig2 = fft(sig2);
    [value2,index2] = max(abs(fft_sig2));
    ps_sig2 = phase(fft_sig2(index2))/pi*180;
    freq_sig2 = (index2-1)/N*FS;
    fprintf('使用MATLAB计算 sig2 的相位为 %f,频率为%f \n',ps_sig2,freq_sig2);
    fprintf('****************************************\n');
    
    %=================================================
    %论文中的FFT方法计算-->组合1
    fprintf('****************************************\n');
    fprintf('type1\n');
    fft_sig3 = fft_paper(sig1,TYPE1);
    [value3,index3] = max(abs(fft_sig3));
    ps_sig3 = phase(fft_sig3(index3))/pi*180;
    freq_sig3 = (index3-1)/N*FS;
    fprintf('使用论文方法计算 sig1 的相位为 %f,频率为%f \n',ps_sig3,freq_sig3);
    fft_sig4 = fft_paper(sig2,TYPE1);
    [value4,index4] = max(abs(fft_sig4));
    ps_sig4 = phase(fft_sig4(index4))/pi*180;
    freq_sig4 = (index4-1)/N*FS;
    fprintf('使用论文方法计算 sig2 的相位为 %f,频率为%f \n',ps_sig4,freq_sig4);
    
    %=================================================
    %论文中的FFT方法计算-->组合2
    fprintf('****************************************\n');
    fprintf('type2\n');
    fft_sig5 = fft_paper(sig1,TYPE2);
    [value5,index5] = max(abs(fft_sig5));
    ps_sig5 = phase(fft_sig5(index5))/pi*180;
    freq_sig5 = (index5-1)/N*FS;
    fprintf('使用论文方法计算 sig1 的相位为 %f,频率为%f \n',ps_sig5,freq_sig5);
    fft_sig6 = fft_paper(sig2,TYPE2);
    [value6,index6] = max(abs(fft_sig6));
    ps_sig6 = phase(fft_sig6(index6))/pi*180;
    freq_sig6 = (index6-1)/N*FS;
    fprintf('使用论文方法计算 sig2 的相位为 %f,频率为%f \n',ps_sig6,freq_sig6);
    

    在这里插入图片描述

    两路实信号合成一路复信号计算FFT

    clc;clear all;close all;
     
    Fs = 1000;
    N = 1024;
    t = (0:N-1)/Fs;
     
    %== 将两路实信号分别作为合成数据的实部虚部
    realData = sin(2*pi*10*t);
    imagData = cos(2*pi*30*t);
    composeData = complex(realData,imagData); 
     
    %== 分别做FFT
    composeDataFFT = fft(composeData,1024);
    realDataFFT = fft(realData,1024);
    imagDataFFT = fft(imagData,1024);
     
    %= 由合成信号的FFT获得虚部信号、实部信号分别的FFT结果
    fftLen = length(composeDataFFT);
    realZ = real(composeDataFFT);
    imagZ = imag(composeDataFFT);
    realXFFT = zeros(1,fftLen);
    imagYFFT = zeros(1,fftLen);
     
    for k=1:fftLen
        if k==1     %== 直流需要特殊处理
            aTemp = realZ(1);
            bTemp = 0;
            realXFFT(1,k) = aTemp + i*bTemp;
            aTemp = 0;
            bTemp = imagZ(1);
            imagYFFT(1,k) = i*aTemp + bTemp;
        else        %== 注意索引的值
            aTemp = 0.5*(realZ(k)+realZ(fftLen-k+2));
            bTemp = 0.5*(imagZ(k)-imagZ(fftLen-k+2));    
            realXFFT(1,k) = aTemp + i*bTemp;
            aTemp = 0.5*(realZ(fftLen-k+2)-realZ(k));
            bTemp = 0.5*(imagZ(fftLen-k+2)+imagZ(k));
            imagYFFT(1,k) = i*aTemp + bTemp;
        end
    end
     
    figure;
    subplot(3,1,1);
    plot(abs(realDataFFT));
    title('理论的FFT');
    subplot(3,1,2);
    plot(abs(realXFFT));
    title('新计算出的FFT');
    subplot(3,1,3);
    plot(abs(realDataFFT)-abs(realXFFT));
    title('误差');
     
    figure;
    subplot(3,1,1);
    plot(abs(imagDataFFT));
    title('理论的FFT');
    subplot(3,1,2);
    plot(abs(imagYFFT));
    title('新计算出的FFT');
    subplot(3,1,3);
    plot(abs(imagDataFFT)-abs(imagYFFT));
    title('误差');
    

    在这里插入图片描述

    展开全文
  • 此函数绘制复信号的幅度 fft
  • 数字信号处理——FFT

    千次阅读 2018-12-28 23:52:45
    作者:BerenCamlost 参考资料: 老师PPT:百度网盘链接 提取码: dhn4 数字信号处理课本 超星视频:B站视频链接 ...FFT:N2log2N\frac{N}{2}log_2N2N​log2​N次乘,Nlog2NNlog_2NNlog2​N次加 ...

    作者:BerenCamlost

    参考资料:

    1. 老师PPT:百度网盘链接 提取码: dhn4
    2. 数字信号处理课本
    3. 超星视频:B站视频链接

    第四章 FFT

    4.1 DFT运算量和FFT运算量对比

    • DFT: N 2 N^2 N2次复乘, N ( N − 1 ) N(N-1) N(N1)次复加
    • FFT: N 2 l o g 2 N \frac{N}{2}log_2N 2Nlog2N次复乘, N l o g 2 N Nlog_2N Nlog2N次复加
      • 其中FFT中的N为2的整次幂

    4.2 按时间抽取的基2 - FFT原理

    4.2.1 算法原理

    { X [ k ] = G [ k ] + W N k H [ k ] k = 0 , 1 , 2... N 2 − 1 X [ k + N 2 ] = G [ k ] − W N k H [ k ] k = 0 , 1 , 2... N 2 − 1 \left\{\begin{matrix} X[k]=G[k]+W_N^kH[k] & k=0,1,2...\frac{N}{2}-1\\ X[k+\frac{N}{2}]=G[k]-W_N^kH[k] & k=0,1,2...\frac{N}{2}-1 \end{matrix}\right. {X[k]=G[k]+WNkH[k]X[k+2N]=G[k]WNkH[k]k=0,1,2...2N1k=0,1,2...2N1

    • 其中N为2的整次幂

    4.2.2 蝶形算法

    1

    • 蝶形算法和上面的公式是同一个东西的不同表现形式。

    4.3 按时间抽取的FFT流图

    • 这里以16点FFT流图为例进行解释(注意这个图的WN标注的位置可能有些奇怪)
      16点FFT流图

    4.3.1 算法原理

    由蝶形构成基本运算单元,每个流图共有M级,每一竖列有N/2个蝶形,于是得到公式 M = l o g 2 N M=log_2N M=log2N

    4.3.2 原位运算

    由于DFT算法的限制,导致源数据将作为每一次运算的操作数,这使得储存容量的要求很大。而FFT算法,从蝶形图中可以看出,下一个蝶形的数据源和上一次的数据源是不同的,所以可以把每一次蝶形运算得到的数据直接存放在原来的存储区域,大大减小了存储容量的要求。

    4.3.3 序数重排

    可以看到,FFT的结果值是按顺序排列的,如果把计算结果k的二进制和数据源的n的二进制相比较,可以发现如下规律:

    数据源顺序二进制二进制FFT顺序
    0000000000
    8100000011
    4010000102
    12110000113
    2001001004
    10101001015
    6011001106
    14111001117

    等等……
    可以发现前后两个数的二进制是正好反过来的。

    4.3.4 系数的确定

    随缘

    展开全文
  • 本文是关于矢量信号分析 (Vector Signal Aanlysis) 的入门读物。...快速傅立叶变换 (FFT) 分析仪使用数字信号处理 (DSP) 提供高分辨率的频谱和网络分析。如今宽带的矢量调制( 又称为调制或数字调制...

    本文是关于矢量信号分析 (Vector Signal Aanlysis) 的入门读物。我们将先讨论矢量信号分析的测量概念和操作理论,再讨论矢量调制分析,特别是数字调制分析。

    模拟扫描调谐式频谱分析仪使用超外差技术覆盖广泛的频率范围; 从音频、微波直到毫米波频率。快速傅立叶变换 (FFT) 分析仪使用数字信号处理 (DSP) 提供高分辨率的频谱和网络分析。如今宽带的矢量调制( 又称为复调制或数字调制) 的时变信号从FFT 分析和其他 DSP 技术上受益匪浅。矢量信号分析提供快速高分辨率的频谱测量、解调以及高级时域分析功能,特别适用于表征复杂 信号,如通信、视频、广播、雷达和软件无线电应用中的脉冲、瞬时或调制信号。

    是德科技:矢量网络分析仪有哪些关键技术指标?​zhuanlan.zhihu.com

    图1 显示了一个简化的矢量信号分析方框图。矢量信号分析采用了与传统扫描分析截然不同的测量方法; 融入FFT 和数字信号处理算法的数字中频部分替代了模拟中频部分。传统的扫描调谐式频谱分析是一个模拟系统; 而矢量信号分析基本上是一个使用数字数据和数学算法来进行数据分析的数字系统。矢量信号分析 软件可以接收并分析来自许多测量前端的数字化数据,使您的故障诊断可以贯穿整个系统框图。

    72c16e46f79d360e156f803906f8b8a3.png

    1. 矢量信号分析过程要求输入信号是一个被数字化的模拟信号,然后使用DSP 技术处理并提供数据输出; FFT 算法计算出频域结果,解调算法计算出调制和码域结果。

    矢量信号分析的一个重要特性是它能够测量和处理复数数据,即幅度和相位信息。实际上,它之所以被称为“矢量信号分析”正是因为它采集复数输入数据, 分析复数数据,并输出包含幅度和相位信息的复数数据结果。矢量调制分析执行测量接收机的基本功能。在下一个节“矢量调制分析”中,您将了解到矢量调制与检波的概念。

    在使用适当前端的情况下,矢量信号分析可以覆盖射频和微波频段,并能提供额外的调制域分析能力。这些改进可以通过数字技术来实现,例如模拟- 数字转换,以及包含数字中频(IF) 技术和快速傅立叶变换 (FFT) 分析的DSP。、

    因为要分析的信号变得越来越复杂,最新一代的信号分析仪已经过渡到数字架构,并且往往具有许多矢量信号分析和调制分析的能力。有些分析仪在对信号进行放大,或进行一次或多次下变频之后,就在仪器的输入端数字化信号。在大部分现代分析仪中,相位连同幅度信息都被保留以进行真正的矢量测量。另一方面,其它的前端如示波器和逻辑分析仪等对整个信号进行数字化,同时也保留了相位和幅度信息。矢量信号分析无论作为合成的测量前端的一部分,还是单独在内部运行或在与前端相连的计算机上运行的软件,它的的分析能力都依赖于前端的处理能力,无论前端是综合测量专用软件。

    矢量信号分析测量优势

    矢量分析测量动态信号并产生复数数据结果

    矢量信号分析相比模拟扫描调谐分析有着独特的优势。一个主要的优势是它能够更好地测量动态信号。动态信号通常分为两大类: 时变信号或复数调制信号。时变信号是指在单次测量扫描过程中,被测特性发生变化的信号( 例如突发、门限、脉冲或瞬时信号)。复数调制信号不能用简单的 AM、FM 或 PM 调制单独描述,包含了数字通信中大多数调制方案,例如正交幅度调制 (QAM)。

    59bf4fec2d9fc2230114fb984a270038.png

    2. 扫描调谐分析显示了一个窄带IF 滤波器对输入信号的瞬时响应。矢量分析使用FFT 将大量时域采样转换到频域频谱。

    传统的扫描频谱分析实际上是让一个窄带滤波器扫过一系列频率,按顺序每次测量一个频率。对于稳定或重复信号,这种扫描输入的方法是可行的,然而对扫描期间发生变化的信号,扫描结果就不能精确地代表信号了。还有,这种技术只能提供标量( 仅有幅度) 信息,不过有些信号特征可以通过进一步分析频谱测量结果推导得出。

    矢量信号分析测量过程通过信号“快照”或时间记录,然后同时处理所有频率, 以仿真一系列并联滤波器从而克服了扫描局限。例如,如果输入的是瞬时信号,那么整个信号事件被捕获( 意味着该时刻信号的所有信息都被捕获和数字化); 然后经过 FFT 运算,得出“瞬时”复数频谱对频率的关系。这一过程是实时进行的,所以就不会丢失输入信号的任何部分。基于这些,矢量信号分析有时又称为“动态信号分析”或“实时信号分析”。不过, 矢量信号分析跟踪快速变化的信号的能力并不是无限制的。它取决于矢量信号分析所具有的计算能力。

    矢量信号分析缩短测量时间

    并行处理为高分辨率 ( 窄分辨率带宽 ) 测量带来另一个潜在的优势:那就是更短的测量时间。如果你曾经使用过扫描调谐频谱分析仪,就会知道在较小小频率扫宽下的窄分辨率带宽 (RBW) 测量可能非常耗时。扫描调谐分析仪对逐点频率进行扫描的速度要足够慢以使模拟分辨率带宽滤波器有足够的建立时间。与之相反,矢量信号分析可以一次性测量整个频率扫宽。不过,由于数字滤波器和 DSP 的影响,矢量信号分析也有类似的建立时间。与模拟滤波器相比,矢量信号分析的扫描速度主要受限于数据采集和数字处理的时间。但是,矢量信号分析的建立时间与模拟滤波器的建立时间相比通常是可以忽略不计的。对于某些窄带测量, 矢量信号分析的测量速度可以比传统的扫描调谐分析快 1000 倍。

    在扫描调谐频谱分析中,扫描滤波器的物理带宽限制了频率分辨率。矢量信号分析没有这一限制。矢量信号分析能够分辨间隔小于100 μHz 的信号。矢量信号分析的分辨率通常受限于信号和测量前端的频率稳定度,以及在测量上希望花费的时间的限制。分辨率越高,测量信号所需要的时间( 获得要求的时间记录长度) 就越长。

    时间捕获是信号分析和故障诊断的有利工具

    另一个极为有用的特性是时间捕获能力。它使你可以完整无缺地记录下实际信号并在以后重放,以便进行各种数据分析。捕获的信号可用于各种测量。例如,捕捉一个数字通信的发射信号,然后既进行频谱分析也进行矢量调制分析,以测量信号质量或识别信号缺损。

    是德科技:如何用示波器完成快速傅里叶变换(FFT) 和宽带射频测量​zhuanlan.zhihu.com
    2f43b0177277541c0428716d751bbb7f.png

    矢量信号分析测量

    概念和操作理论

    DSP 提供一体化的多域测量

    使用数字信号处理 (DSP) 还带来其它优势;它可以同时提供时域、频域、调制域和码域的测量分析。集这些能力于一身的仪器更有价值,它可改善测量质量。矢量信号分析的FFT 分析使你可以轻松和准确地查看时域和频域数据。DSP 提供了矢量调制分析,其中包括模拟和数字调制分析。模拟解调算法可提供与调制分析仪类似的 AM、FM 和PM 解调结果,使您可以看到幅度、频率和相位随时间变化的曲线图。数字解调算法可适用于许多数字通信标准的广泛的测量,并获得许多有用的测量显示和信号质量数据。

    很明显矢量信号分析提供了许多重要的优势,当配合使用合适的前端时,还可以提供更多、更大的优势。例如,当矢量信号分析 与传统的模拟扫描调谐分析仪结合使用时,可提供更高的频率覆盖率和更大的动态范围测量能力; 与示波器结合使用时,可提供宽带分析; 与逻辑分析仪结合使用时,可探测无线系统中的 FPGA 和其它数字基带模块。

    如前所述,矢量信号分析本质上是一个数字系统,它使用 DSP 进行 FFT 频谱分析, 使用解调算法进行矢量调制分析。FFT 是一种数学算法,它对时间采样数据提供时域-频域的转换。模拟信号必须在时域中被数字化,再执行 FFT 算法计算出频谱。从概念上说,矢量信号分析的实施是非常简单直接的: 捕获数字化的输入信号,再计算测量结果。参见图 3。不过在实际中,必须考虑许多因素, 才能获得有意义和精确的测量结果。

    95c383bc03171bca781d66a47f3fc1bf.png

    3. 1 kHz FFT 分析举例: 先数字化时域信号,再使用FFT 将其转换到频域

    如果你熟悉 FFT 分析,就知道 FFT 算法针对所处理的信号有几点假设条件。算法不校验对于所给输入这些假设是否成立,这就有可能产生无效的结果,除非用户或仪器可以验证这些假设。

    图1 为一般的矢量信号分析系统方框图。在 DSP 过程中,不同的环节可能使用不同的功能。图4 显示了是德科技一般使用的技术图。矢量信号分析测量过程包括这些基本阶段 :

    测量前端

    1. 包括频率转换的信号调整。基于所使用的前端硬件,可能需要和/ 或可以使用不同的信号调整步骤。
    2. 模数转换器
    3. 正交检波

    矢量信号分析软件

    1. 数字滤波和重采样
    2. 数据窗口
    3. FFT 分析( 对于矢量调制,由解调模块替代模块 5 和 6)

    测量过程的第一个阶段称为信号调整。这个阶段包括几个重要的功能, 对信号进行调整和优化,以便于模拟 - 数字转换和 FFT 分析。第一个功能是 AC 和 DC 耦合。如果您需要移除测量装置中无用的 DC 偏置,就必须使用这一项。接下来信号被放大或衰减,以达到混频器输入的最佳信号电平。混频器阶段提供信号频率的转换或射频到中频的下变频,并将信号最后混频为中频。这一操作与扫描调谐分析中的超外差功能相同,将 FFT 分析能力扩展到微波频段。实际上,要获得最后的中频频率,可能需要经过多个下变频阶段。有些信号分析仪提供外部 IF 输入能力; 你可以通过提供自己的IF,延展矢量信号分析的频率上限范围,从而与自己提供的接收机相匹配。

    96ac068d11cf32aff3c79bef1a7bb7d6.png

    4. 简化的方框图显示了射频硬件前端和矢量信号分析软件。

    信号调整过程的最后阶段是预防信号混叠,它对于采样系统和 FFT 分析极为重要。抗混叠滤波执行这一功能。如果矢量信号分析 测量没有对混叠做出足够的预防,那么它可能会显示不属于原始信号的频率分量。采样定律告诉我们, 如果信号采样速率大于信号中最高频率分量的两倍,被采样的信号就可以被准确重建。最低的可接受的采样率称为奈奎斯特(Nyquist) 采样率。因此,

    ddc799da6fd739ebddf013024cf45578.png

    如果违反了采样定律,就会得到“混叠的”错误分量。因此,为了预防所给最大频率出现混叠结果,在1/2 采样率以上不能有太大的信号能量。图5 显示了一组采样点,适合两种不同的波形。频率较高的波形违反了采样定律。除非使用抗混叠滤波器,否则这两个频率在进行数字处理时将会混淆。

    为了预防混叠,必须满足两个条件:

    1. 进入数字转换器/ 采样器的输入信号必须是带限的。换句话说,必须存在一个最大频率 (ƒmax) ,没有任何频率分量高于这个频率。

    2. 必须以符合采样定律的速率对输入信号进行采样。

    解决混叠问题的方案看起来很简单。首先选择前端硬件将要测量的最大频率(ƒmax),然后确保采样频率 (ƒs) 是该最大频率的两倍。这个步骤满足了条件 2,并确保 SA 软件能够对感兴趣的频率进行精确分析。接下来插入低通滤波器( 抗混叠滤波器),以去除高于 ƒmax 的所有频率,从而确保除了感兴趣的频率进行测量以为,其它频率都被排除。这个步骤满足条件1,并确保对信 号的带宽进行了限制。

    384fac7ba5fcb67e5888aed485bda956.png

    5. 混叠分量出现在信号进行欠采样时。无用的频率出现在其它( 基带) 频率的混叠下。

    有两个因素会导致简单的抗混叠方法复杂化。第一个也是最容易解决的因素是,抗混叠滤波器的滚降 (roll off) 速率是有限的。如图 6 所示,在实际滤波器的通带和截止带之间有一个过渡带。这个过渡带中的频率可能产生混叠。为了避免这些混叠分量,滤波器的截止频率必须低于 理论频率上限 ƒs/2 。解决这个问题的简单办法是使用过采样( 以高于 Nyquist 采样率的速率进行采样)。使采样频率略高于ƒmax 的两倍,也就是截止带实际开始频率的两倍,而不是要测量的频率的两倍。许多矢量信号分析的实现都使用保护带以防止显示混叠的频率分量。FFT 计算超出50% ƒs ( 相当于 ƒs/2) 的频谱分量。保护带大约在 ƒs 的40% 至50% ( 或 ƒs/2.56 至 ƒs /2) 之间并且没有显示,因为它可能被混叠分量破坏。不过当矢量信号分析软件进行逆FFT 运算时,在保护带中的信号用于提供最精确的时域结果。高滚降率滤波器再结合保护带,会抑制潜在的混叠分量,并将它们衰减到远低于测量前端的底噪。

    另一个致使混叠预防( 有限的频率分辨率) 复杂化的因素解决起来难得多。首先,为宽频扫宽( 高采样率) 设计的抗混叠滤波器不适用于测量小分辨率带宽,原因有二个: 一是需要极大的样本数量( 内存分配),二是需要惊人的 FFT 计算量( 长测量时间)。例如,当采样率为 10 MHz 时,一个 10 Hz 分辨率带宽的测量将需要超过100 万点的 FFT,也就是需要使用巨大容量的存储器和极长的测量时间。这是不可接受的,因为小分辨率带宽的测量能力是矢量信号分析 的一大优势。

    提高频率分辨率的一个方法是减小 f s,但代价是 降低了FFT 的频率上限, 也就是最终分析仪的带宽。不过,这仍不失为一个好方法,因为它允许你控制测量分辨率和频率范围。当采样率降低时,抗混叠滤波器的截止频率也必须降低,否则就会发生混叠。一种可能的解决方案是对每个扫宽提供一个抗混叠滤波器,或提供一个可选择截止频率的滤波器。使用模拟滤波器实现这种方案的困难很多,而且成本高昂,但是有可能通过 DSP 以数字形式添加额外的抗混叠滤波器。

    4e28dea6d26c8eb2f66504aa45a05410.png

    6. 抗混叠滤波器衰减高于 ƒs/2 的信号。屏幕上不显示介于40% 50% ƒs 之间的保护带。

    数字抽取滤波器和重采样算法提供了频率分辨率受限制问题的解决方法。 Keysight 矢量信号分析软件中就使用了这种方法。数字抽取滤波器和重采样执行必要的操作以允许改变扫宽和分辨率带宽。数字抽取滤波器同时降低采样率并限制信号的带宽( 提供混叠预防)。输入数字滤波器的采样率为¦s; 输出该滤波器的采样率为¦s/n,其中“n”是抽取因子,为整数值。类似的,输入滤波 器的带宽为“BW”,输出滤波器的带宽为“BW/n”。许多实现过程执行二 进制抽取( 采样率按1/2 的速度降低),这意味着采样率按2 的整数幂改变,即步进值为1/(2n) (1/2、1/4、1/8. )。通过“除以2n”得出的频率扫宽称为基数扫宽。由于减少了DSP 操作,通常在基数扫宽上进行的测量比在任意扫宽上进行的测量要快。

    抽取滤波器允许采样率和扫宽以 2 的幂次改变。要获得任意扫宽,采样率必须是无限可调的。这由抽取滤波器之后的重采样或插值滤波器来完成。关于重采样和插值算法的详细信息,参见本应用指南结尾处的“其它资源” 部分。

    尽管数字重采样滤波器在降低采样率的同时提供了混叠的预防,模拟抗混叠滤波器仍然是必要的,因为数字重采样滤波器本身也是一个被采样系统, 必须被防止出现混叠。模拟抗混叠滤波器运行于 ƒs 上,保护最宽频率扫宽上的分析。在模拟滤波器之后的数字滤波器,为较窄的、用户定义的扫宽提供抗混叠能力。

    当抗混叠涉及带限信号,并使用示波器作为矢量信号分析 软件前端时,还必须采取额外的预防措施。更多信息参见本应用指南结尾处的“其它资源”部分。

    下一个限制小分辨率带宽分析的复杂因素来源于FFT 算法自身的本质特性; FFT 实质上是一个基带转换。这意味着 FFT 频率范围从 0 Hz ( 或 DC) 开始, 一直到某个最大频率( ƒs/2) 结束。在小频段需要被分析的测量情况中,这可能是一个重大限制。例如,如果测量前端的采样率为 10 MHz,频率范围将从 0 Hz 到 5 MHz (ƒs/2)。如果时间样本数量 (N) 为 1024,那么频率分辨率将为 9.8 kHz (ƒs/N)。这意味着接近 9.8 kHz 的频率可能无法分辨。

    如前所述,您可以通过改变采样率来控制频率扫宽,但是由于扫描范围的起始频率是 DC,所以分辨率仍然受到限制。频率分辨率可以任意提高,但 是付出的代价是最高频率的降低。这些限制的解决方法是带宽选择分析,又称为“缩放操作”或“缩放模式”。缩放操作使您可以在保持中心频率不变的情况下减小频率扫宽。这点非常有用,因为你可以分析和查看远离 0 Hz 的小频率分量。缩放操作允许你将测量焦点放在测量前端频率范围内的任意频率点处( 图7)。

    缩放操作是一个数字正交混频、数字滤波和抽取重采样的过程。感兴趣的频率扫宽与缩放扫宽中心频率 (ƒz) 上的复数正弦波与相混频,从而使频率扫宽下变频到基带; 然后针对该特定扫宽对信号进行滤波和抽取重采样,移除所有带外频率。这就是在 IF ( 或基带) 上的频带转换信号,有时称为“缩放时间”或“IF 时间”。也就是说,它是信号的时域表示应为它出现在接收机的中频带。在本章结尾的“时域显示”部分我们将对缩放测量做进一步讨论。

    1318c14415dfa83419db71c906042a04.png

    7. 频带选择分析( 或缩放模式): (a) 被测宽带信号,(b) 被测信号的频谱,(c) 选择的缩放扫宽和中心频率,(d) 数字LO 频谱( 位于缩放中心频率处)(e) 频率扫宽下变频到基带,(f) 显示频谱注释经过调整,以显示正确的扫宽和中心频率

    样本存储器

    数字抽取滤波器的输出代表的是带宽受限的数字化的模拟时域输入信号。这个数字数据流被捕获到样本存储器中( 图4)。样本存储器是一个循环的 FIFO ( 先进先出) 的缓存器,它收集单个的数据采样,形成被称作时间记录的数据块,再由 DSP 进行进一步数据处理。填充时间记录所需的时间长度与并联滤波器分析中的初始建立时间类似。样本存储器所收集的时间数据是用来产生各个测量结果( 无论是频域、时域或调制域) 的基础数据。

    时域数据校正

    为了提供更精确的数据结果,矢量信号分析软件通过均衡滤波器进行时间数据校正。在矢量分析中,时间数据的精度非常重要。它不仅是所有解调测量的基础,还直接用于诸如瞬时功率随时间变化的测量中。时间数据校正是创建接近理想的频带限制信号过程中的最后一步。虽然数字滤波器和重采样算法提供了任意带宽( 采样率和扫宽) 的支持,但是时域校正决定信号路径的最后通带特性。如果模拟和数字信号路径是理想的,那么就没有必要进行时域校正。时域校正起均衡滤波器的作用,以补偿通带内的缺损。这些缺损来源于多处。射频部分中的IF 滤波器、模拟抗混叠滤波器、抽取滤波器和重采样滤波器都会对所选扫宽内的通频段纹波和相位非线性特性有所贡献。

    数据窗口 — 泄漏和分辨率带宽

    在设计均衡滤波器时,首先要基于测量前端的配置,从自校准数据中提取关于模拟信号路径的信息。使用这些数据产生频域校正输出显示结果。一旦计算出模拟校正矢量,结果将被修改以便把抽取和重采样滤波器的影响包括在内。
    最后频率响应的计算在选定了扫宽后进行,因为它决定了抽取滤波阶段的数量和重采样率。复合的校正矢量充当适用于时间数据的数字均衡滤波器的设计基础。
    FFT 假设将要处理的信号从一个时间记录到另一个是周期性的。但大部分信号不是按时间记录周期重复的,两个时间记录之间会出现不连续。因此, 这个FFT 假设条件对大多数测量是无效的,必须假设存在不连续性。如果信号不是按时间记录周期重复,那么FFT 将不能准确估算频率分量。最终的效果是产生所谓的“泄漏”现象,就是能量从单一频率扩散到一段广泛的频率上。模拟扫频调谐信号分析在扫描速度对于滤波器带宽来说太快时将产生类似的幅度和扩散误差。
    数据窗是解决泄漏问题的一个常用方法。FFT 并不是误差的起因,它能够对时间记录中的信号生成“精确”的频谱。导致误差的罪魁祸首是时间记录之间的非周期性信号特性。数据窗使用窗功能修改时域数据使其变成按时间记录为周期。实际上,它强迫波形在时间记录的两端变成零。这由给时间记录乘以加权的窗函数来实现。窗对时域中的数据进行变形,以改善其在频域中的精度。参见图8。

    915cd2ce8d6d455428910fba90d348b7.png

    8. 窗功能通过修改时域波形,减少频域中的泄漏误差。

    Keysight 89600 VSA基于用户选定的测量类型假设用户的优先考虑情况, 自动选择适合的窗滤波器。不过,如果希望手动改变窗类型,你可以从几种内置的窗类型中选择。每个窗功能及其相关的 RBW 滤波器形状拥有各自的优势和劣势。某窗类型可能改善了幅度精度并减少了“泄漏”,但代价却是减小了频率分辨率。因为每种窗类型产生不同的测量结果( 差异大小取决于输入信号的特性以及触发方式),所以你需要针对所进行的测量谨慎选择适合的窗类型。表1 总结了四种常见的窗类型及其用途。

    https://www.keysight.com/cn/zh/software/application-sw/89600-vsa-software.html​www.keysight.com

    1. 常见的窗类型和用途 PathWave 矢量信号分析软件(89600 VSA)表1. 常见的窗类型和用途

    e376fa450f11aeb2e897c6f82fec098e.png

    窗滤波器对分辨率带宽的影响

    在传统的扫频调谐分析中,最后的IF 滤波器决定了分辨率带宽。在 FFT 分析中,窗类型决定了分辨率带宽滤波形状。窗类型和时间记录长度决定了分辨率带宽滤波的宽度。因此,对于给定的窗口类型,分辨率带宽的改变将直接影响时间记录长度。反之,时间记录长度的改变也会导致分辨率带宽变化,如下式所示:

    96a2973f1144be93a37d207e13c109f5.png

    等效噪声带宽(ENBW) 是窗口滤波器与理想矩形滤波器进行比较的因数。它等效于通过与窗口滤波器相同数量( 功率) 白噪声时矩形滤波器的带宽。表1-2 列出了几种窗类型的归一化ENBW 值。ENBW 等于归一化的ENBW 除以时间记录长度。例如,0.5 秒时间记录长度的汉宁窗的ENBW 为3 Hz (1.5 Hz-s/0.5 s)。

    c5dea329f3bfa014382d1b4b787c4125.png

    2. 归一化的ENBW

    快速傅立叶变换 (FFT) 分析

    信号现在已经准备好进行FFT 变换。FFT 是针对记录以特殊方式处理采样数据的算法。FFT 不像 ADC 转换那样对每个数据采样进行处理,而是等到获得一定数量的样本(N) ( 称为时间记录) 之后,再将整个数据块进行转换。参见图 9。换句话说,在FFT 中,输入是N 个样本的时间记录,输出是N 个样本的频谱。
    FFT 的速度取决于对称性或未落入限定的2 的N 次方的重复采样值。 FFT 分析的典型记录长度为1024 (210) 个采样点。FFT 生成的频谱在采样频率 ƒs/2 ( 这个值称为“折叠频率”,ƒƒ) 两侧对称。因此,输出记录的前半段包含的是冗余信息,所以只有后半段被保留,即采样点0 至N/2。这表明输出记录的有效长度为(N/2) + 1。必须给N/2 加 1,因为FFT 包含零点线,输出从 0 Hz 至N/2 Hz 的结果。这些都是包括幅度和相位信息的复数数据点。

    理论上,FFT 算法输出的是从0 Hz 到¦¦ 范围内的(N/2) +1 个频率点。不过实际中,因为需要使用预防混叠的保护带,所以通常不是所有点都被显示出来。如上所述,保护带( 大约在 ƒs 的 40% 至 50% 之间) 不显示,因为它可能被混叠分量破坏。例如,对于记录长度为2048 的样本,会产生1025 个唯一的复数频率点,而实际上只有801 个频率点会被显示出来。

    f3adae5839accd022aca8f7384846e74.png

    9. FFT 的基本关系

    这些频域点被称为“线 (line)”或“点 (bin)”,通常编号从0 到 N/2 。这些点相当于一组滤波器分析中的单独的滤波器/ 检波器输出。点0 包含输入信号中的DC 电平,称为DC 点。这些点在频率上的间割是相通的,频率步长(∆f) 是测量时间记录长度 (T) 的倒数,即 ∆f = 1/T。时间记录长度(T) 由采样率 (ƒs) 和时间记录中的采样点数(N) 来确定: T = N/¦s。每个点的频率(¦n) 如下:

    ƒn = nƒs/N

    其中,n 为点数

    最后一个点包含最高频率 ƒs/2。因此FFT 的频率范围从0 Hz 到 ƒs/2。注意 FFT 最高的频率范围不是 FFT 算法的频率上限 ƒmax,并且可能不同于最高的点频率。

    实时带宽

    因为FFT 分析在获得至少一个时间记录之前不能计算出有效的频域结果, 所以时间记录长度决定了初始测量花费的时间。例如,使用 1 kHz 扫宽的 400 线测量需要 400 ms 的时间记录; 3200 线测量需要 3.2 s 的时间记录。捕获的数据时间长度与 FFT 计算引擎的处理速度无关。

    在时间记录被捕获之后,处理速度成为一个问题。计算FFT、调整格式和显示数据结果所用的时间长短决定了处理的速度和显示更新的速率。处理速度的重要性体现在两个方面。首先,高处理速度意味著总测量时间缩短。其次,处理速度决定了测量动态信号的能力。它的性能指标是实时带宽 (RTBW),即在不丢失输入信号的任何事件的情况下,可以连续处理的最大频率扫宽。

    87718ef57d0cd09f2154d75adada8b5d.png

    10. (a) FFT 处理时间 时间记录长度时,处理是“实时”的;没有数据丢失。(b) 如果FFT 处理时间 > 时间记录长度,那么输入数据会丢失。

    RTBW 是 FFT 处理时间等于时间记录长度的频率扫宽。从一个时间记录结束到下一个时间记录开始之间没有间隔。参见图 10。如果增加扫宽到超过实时带宽,记录长度就会变得小于 FFT 处理时间,那么时间记录不再是连续的, 有些数据将会丢失。这在 RF 测量中很常见。不过注意,时间捕获的数据是实时的,因为所有时间样本都直接传输到可用的存储器中,而没有数据的丢失。

    时域显示

    矢量信号分析 允许你查看和分析时域数据。所显示的时域数据看上去与示波器的显示相似,但是你需要知道正在查看的数据可能是非常不同的。时域显示的 是恰好在FFT 处理之前的时间数据。参见图4。 矢量信号分析可以提供两个测量模式: 基带模式和缩放模式。基于测量模式,你所看到的时域数据将有很大差别。

    基带模式提供类似于你在数字示波器上看到的时间数据结果。就像传统的数字信号示波器(DSO),矢量信号分析以 0 时间和0 Hz (DC) 为参考提供实值时间数据。不过在矢量信号分析上轨迹轨迹可能出现失真,特别是在高频情况下。这是因为矢量信号分析采样率的选择基于优化FFT 分析,在最高频率下每周期可能只有2 或3 次采样; 这对于FFT 非常有利,但是对于观察就不是很适合了。相反,DSO 是针对时域分析优化,对输入通常进行过采样。而且,DSO 可以提供额外的信号重建处理能力,使DSO 能够更好地显示实际输入信号的时域表示。此外在最大扫宽下,由于抗混叠滤波器突然的频率截止,有些信号( 特别是方波和瞬时信号) 可能会出现过大的失真或振铃 (ringing) 现象。从这个意义上说,DSO 适合采样率和时域的显示,而不适合功率精度和动态范围的显示。

    在缩放( 或频段可选择) 模式中,你观察到的是经过混频和正交检波后的时间波形。特别地,所看到的时间数据是经过许多步骤处理的最后结果,基于具体的中心频率和扫宽,这些步骤可能包括模拟下变频、IF 滤波、数字正交混频和数字滤波/ 重采样。结果是一个带宽受限的包括实部和虚部分量复数波形,并且在大多数情况下,它看起来与在示波器上的显示不一样。对于某些用途来说,这可能是非常有价值的信息。例如,它可以解释为“IF 时间”, 使用示波器通过在探测接收机IF 频段中探测而进行测量的时域信号。

    数字 LO 和正交检波算法执行缩放测量功能。在缩放测量中,所选的频率扫宽经过下变频到指定的中心频率 ( ƒcenter) 的基带上。要完成它,首先数字 LO 频率被赋予 ƒcenter 值。接着输入信号被正交检波; 使用测量扫宽中心频率的正弦和余弦( 正交) 进行相乘或混频。结果是以 ƒ center 为参考,相位仍与零时触发相关的复数 ( 实部和虚部 ) 时域波形。请记住,混频过程的结果分量是频率的和与差 ( 信号 -ƒcenter 和信号 +ƒcenter)。因此使用低通滤波器对数据进行进一步处理,只选择出不同的频率。如果载波频率 (ƒcarrier) 等于¦ 中心,那么调制结果是以 0 Hz 为中点的正和负频率边带。不过,频谱显示上的标识是正确的中心频率和边带频率值。

    图11 显示了13.5 MHz 正弦波在基带带模式和缩放模式下的测量。两个模式测量的扫宽均为36 MHz,起始频率为0 Hz。频率点的数量设置为401。左侧时间轨迹轨迹显示的真实周期约为74 ns (1/13.5 MHz) 的正弦波。右侧时间轨迹轨迹显示了一个周期为222.2 ns (1/4.5 MHz) 的正弦波。这个4.5 MHz 正弦波是矢量信号分析算法中的中心频率18 MHz 与输入信号13.5 MHz 之差。

    c58385ad054f670a0283d73ae9d3c126.png

    11. 基带和缩放时间数据

    总结

    本文介绍了矢量信号分析(VSA) 的操作理论和测量概念的入门知识。贯穿分析了整个系统方框图,并逐一说明了每个功能以及与 FFT 测量过程的关系。你可以看到,矢量信号分析的实现与传统的模拟扫频调谐信号分析有很大差异。矢量信号分析基本上是一个包含全数字IF、DSP 和FFT 分析的数字系统,它提供时域、频域、调制域和码域信号分析能力的测试与测量解决方案。

    我们还介绍了矢量信号分析的频谱分析能力,它通过FFT 分析来实现。还介绍了FFT 测量理论与分析过程的基础知识。矢量分析测量概念和解调框图( 包括数字和模拟调制分析) 将在以后“矢量调制分析”章节中详细说明。

    https://www.keysight.com/cn/zh/home.html​www.keysight.com

    是德科技主页

    https://www.keysight.com/cn/zh/home.html​www.keysight.com 是德科技:什么是网络分析?深入了解矢量网络分析的基本原理​zhuanlan.zhihu.com
    5601351979d01c256c1ce3f486ad2c59.png
    网络分析仪 | Keysight​www.keysight.com
    4f40daab8efd30dba04920b2e31b88b6.png
    是德科技:如何用示波器完成快速傅里叶变换(FFT) 和宽带射频测量​zhuanlan.zhihu.com
    2f43b0177277541c0428716d751bbb7f.png
    是德科技:什么是IQ调制,了解I/Q调制的基本原理及其主要特征 - 射频技术第2部分​zhuanlan.zhihu.com
    dfc80d5aa26799f93525330c3bcdf254.png
    展开全文
  • 学习探究--实信号与复信号

    千次阅读 多人点赞 2020-10-22 21:59:03
    一、实信号与复信号的定义 1、实信号:物理可实现的信号常常是时间t(或k)的实函数(或序列),其在各时刻的函数(或序列)值为实数,这样的信号称为实信号。 2、复信号:函数(或序列)值为复数的信号称为复信号,...

    一、实信号与复信号的基本概念

    1、实信号:物理可实现的信号常常是时间t(或k)的实函数(或序列),其在各时刻的函数(或序列)值为实数,这样的信号称为实信号。
    2、复信号:函数(或序列)值为复数的信号称为复信号,最常用的是复指数信号。
    复指数信号的重要特性之一是它对时间的导数和积分仍然是复指数信号。
    连续信号的复指数信号可表示为
    在这里插入图片描述
    离散时间的复指数序列可表示为
    在这里插入图片描述

    3、如何理解复信号?

    一个复信号f(t)=Re[f(t)]+jIm[f(t)]可以看做是一个实信号Re[f(t)]与一个虚信号jIm[f(t)]的合成,由于任何只含有时间t为自变量的信号都可以视为一条二维曲线,则两个分别以时间为唯一自变量的信号Re[f(t)]与jIm[f(t)]的叠加可以看成是一条随着时间延伸的三维曲线。

    • 复指数信号分析

      当Re[f(t)]为一个余弦信号,Im[f(t)]为一个正弦信号时,他们的合成即为一条标准的螺旋线。

      MATLAB绘制复指数函数y=e^(jwn)的三维图像

      为了绘制直观的复指数图像,可以连同它在实轴、虚轴上的投影一起绘制。这样一个大任务就分解为6个步骤

       S1-绘制复指数图像的离散点;
       S2-绘制每个离散点到旋转轴x轴的垂直连线;
       S3-绘制复指数图像在实轴z上的投影,这也是离散点;
       S4-绘制实轴投影离散点到旋转轴x轴的垂直连线;
       S5-绘制复指数图像在虚轴y上的投影,这也是离散点;
       S6-绘制虚轴投影离散点到旋转轴x轴的垂直连线。
      

      代码

    clear all;
    close all;
    clc;
    
    w=1;
    n=0:0.1:20;
    
    f=exp(1j*w*n);                  
    L=length(n);
    x=n;                           %以该复函数自变量n作为三维图像的x轴
    y=imag(f);                     %以该复函数虚部作为三维图像的y轴
    z=real(f);                     %以该复函数实部作为三维图像的z轴
    y_0=zeros(size(n));            %获取y=0的点集   
    y_1=ones(size(n));             %获取y=1的点集
    z_0=zeros(size(n));            %获取z=0的点集
    z_1=ones(size(n));             %获取z=1的点集
    %S1-用蓝点绘制复指数函数图像的离散点;
    plot3(x,y,z,'.b');
    %添加坐标轴名称及标题名称
    xlabel('自变量n');
    ylabel('虚部');
    zlabel('实部');
    title('复指数函数图像');
    hold on     %启动图形保持功能,当前坐标轴和图形都将保持而不被刷新,此后绘制的图形都将添加在这个图像的基础上,多图共存,并自动调整坐标轴的范围
    grid on     %显示坐标轴网格线
    x1=[x;x];
    y1=[y;y_0];
    z1=[z;z_0];
    %S2-用蓝色实线绘制每个离散点到旋转轴x轴的垂直连线;
    for i=1:L                      
      plot3(x1(:,i),y1(:,i),z1(:,i),'b');  
    end
    % 绘制复指数函数图像所绕的轴
    plot3(x,y_0,z_0,'k');  
    
    %S3-用黄点绘制复指数图像在实轴z上的投影,这也是离散点;
    plot3(x,y,-1*z_1,'.y');   
    %S4-用黄色实线绘制实轴投影离散点到旋转轴x轴的垂直连线;
    y2=[y;y_0];
    z2=[-1*z_1;-1*z_1];
    for i=1:L                      
       plot3(x1(:,i),y2(:,i),z2(:,i),'y');  
    end
    
    %S5-用紫点绘制复指数图像在虚轴y上的投影,这也是离散点;
    plot3(x,y_1,z,'.m');
    %S6-用紫色实线绘制虚轴投影离散点到旋转轴x轴的垂直连线。
    y3=[y_1;y_1];
    z3=[z;z_0];
    for i=1:L                      
       plot3(x1(:,i),y3(:,i),z3(:,i),'m');   
    end
    

    结果
    当w=1,n=0:0.1:20时,从原点往自变量n的正方向看去,图像逆时针旋转。
    在这里插入图片描述
    当w=-1,n=0:0.1:20时,从原点往自变量n的正方向看去,图像顺时针旋转。
    在这里插入图片描述
    当w=0.5,n=0:0.1:20时,图像旋转速度变慢。
    在这里插入图片描述

    1. 由此我们可以看出,复指数函数y=e^(jwn)在空间中是一个螺旋前进的三维图像,它前进的方向是自变量序列n增大的方向,w确定了旋转的方向与速度。
    2. w为正值时,图形逆时针旋转;反之,w为负值时,图形顺时针旋转。这就解释了负频率的物理意义:正频率代表向量逆时针旋转,负频率代表向量顺时针旋转。
    3. 通过观察w=1与w=-1时复指数信号图像在实轴和虚轴的投影也可以看出,其实轴投影相同,虚轴投影相反,这显然也是符合数学定义的。
    • 复信号的幅值与相位

      假如用垂直于时间轴的横截面去切一个复信号,该平面将于这个复信号相交于唯一一点;同时,该平面与时间轴也会有唯一交点;这两个交点之间的距离就是该信号的幅值
      时间轴切面除了与时间轴相交于一点外,还分别与实平面和虚平面相交于一条直线,这两条直线的交点恰好是时间轴切面与时间轴的交点;因此,时间轴切面上信号点在实轴、虚轴二维坐标系上的与原点连线与坐标轴的夹角就是该时刻上信号的相位

    • 瞬时角频率

      瞬时角频率是相位函数的倒数。
      我们可以这样理解瞬时角频率:每一个时刻的时间切面都可以得到一个与复信号对应二维曲线的交点,当把这些切面叠放到一起时,这些交点就成为一条曲线。当我们用微小的离散时隙来近似连续的情况时,曲线上相邻任意两点与坐标中心的连线将构成一个夹角,而该夹角的大小就是瞬时角频率,也就是相位的变化率。

    二、为什么要引入复信号?

    实际信号不存在复信号,只存在实信号,那为什么要提出复信号的概念?

    我们首先来看一下实信号的频谱:

    研究时间信号 f(t) 与其频谱 F(jw) 之间的虚实、奇偶关系。如果 f(t) 是时间 t 的实函数,那么
    在这里插入图片描述

    式中频谱函数的实部和虚部分别为
    在这里插入图片描述
    频谱函数的模和相角分别为
    在这里插入图片描述
    故若 f(t) 是时间 t 的实函数,则频谱函数 F(jw) 的实部 R(w) 是角频率 w 的偶函数,虚部 X(w) 是角频率的奇函数;
    进而可知,|F(jw)| 是 w 的偶函数,而 φ(w) 是 w 的奇函数;
    此外,由下式可知,其频谱具有共轭对称性,f(t)的幅度频谱为偶对称,相位频谱为奇对称
    在这里插入图片描述

    分析:实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,因此为了信号处理方便,去掉频域的负半平面,只保留正频谱部分的信号,其频谱不存在共轭对称性,这样产生的频谱所对应的时域信号就是一个复信号,这个复信号称为解析信号或预包络。

    两点补充:

    1. 负频率只有数学上的意义,并不实际占用带宽,但是基带信号调制到高频之后,形成了关于Wc的对称频谱,原来的负频率信号就占用了实实在在的频率资源。
    2. 如果一个实信号的单边频带宽w,考虑到负频率频谱,实际占的频谱区域就是±w,所以通信中传输这样的信号就需要占用2w的频带宽度。

    为了去掉负频率但保持总功率不变,我们利用阶跃信号u(w)对实信号x(t)的频谱X(jw)进行处理:
    在这里插入图片描述

    根据卷积定理及傅里叶变换的性质可得傅里叶反变换(*表示卷积运算)
    在这里插入图片描述
    由此引出了希尔伯特变换

    三、希尔伯特变换(Hilbert transform)

    1. 数学定义:在数学与信号处理的领域中,一个实值函数的希尔伯特变换是将信号x(t)与h(t)=1/(πt)做卷积,以得到其希尔伯特变换。因此,希尔伯特变换结果可以理解为输入是x(t)的线性时不变系统(linear time invariant system)的输出响应,而此系统的脉冲响应为h(t)=1/(πt)。
      在这里插入图片描述

      因此,一个实值函数x(t)的希尔伯特变换记作H[x(t)]

      在这里插入图片描述

      反变换为
      在这里插入图片描述

    2. 实质:h(t)的傅里叶变换为在这里插入图片描述

    从频谱上来看,希尔伯特变换将我们的原始信号的正频率部分乘以 -j,负频率部分乘以 j。即保持幅度不变的条件下,将正频率移相-90°,而对于负频率成分移相90°。

    下图是对原始信号做1到4次Hilbert变换的频谱示意图,较为直观的表示了希尔伯特变换:
    在这里插入图片描述

    1. Hilbert变换性质
      (1)2次Hilbert变换后,原信号相位翻转了180°,即信号两次Hilbert变换后是其自身相反数。
      在这里插入图片描述
      (2)Hilbert变换四次后就变回本身了。
      (3)Hilbert变换本质上是卷积,若y=conv(v,x),那么Hilbert(y)=conv(Hilbert(v),x)=conv(v,Hilbert(x))。
      (4)x(t)和Hilbert[x(t)]的能量以及平均功率相等,相关函数和功率谱密度相同。(希尔伯特变换只改变相位,不改变幅度)
      (5)x(t)和Hilbert[x(t)]奇偶性相反,即若原函数x(t)是 t 的偶(奇)函数,则其希尔伯特变换Hilbert[x(t)]就是 t 的奇(偶)函数。
      (6)x(t)和Hilbert[x(t)]是正交的,即
      在这里插入图片描述
      (7)卷积H变换
      在这里插入图片描述
      (8)Hilbert变换抑制了直流分量 H(0)=0
      (9)实信号Hilbert变换后的信号依然是实信号,Hilbert变换是一个线性变换.

    MATLAB分析cos函数的希尔伯特变换

    代码

    close all; 
    clear all;
    clc;
    
    % Hilbert transform testing  
    ts = 0.001;  %时间间隔
    fs = 1/ts;   %采样率
    N = 200;     %采样个数
    f = 50;      %频率,小于采样率的一半(奈奎斯特)
    k = 0:N-1;  
    t = k*ts;    %时间向量
    
    % signal transform  
    % 结论:cos信号Hilbert变换后为sin信号  
    y = cos(2*pi*f*t);  
    yh = hilbert(y);    % matlab函数得到的信号是解析信号 
    yi = imag(yh);      % 虚部为书上定义的Hilbert变换  
      
    subplot(2,3,1);  
    plot(t,y);
    title('原始cos信号');  
    subplot(2,3,2);  
    plot(t,yi);  
    title('Hilbert变换后的信号');  
      
    % 检验两次Hilbert变换的结果(理论上为原信号的负值)  
    % 结论:两次Hilbert变换的结果为原信号的负值  
    yih = hilbert(yi);  
    yii = imag(yih);  
    subplot(2,3,3);
    plot(t,yii);
    title('两次Hilbert变换后的信号');
    set(gca,'YLim',[-1,1]);       %设置Y轴的数据显示范围
    set(gca,'YTick',[-1:0.5:1]);  %设置Y轴刻度
      
    % 谱分析  
    % 结论:Hilbert变换后构建的解析信号的谱为单边谱 
    NFFT = 2^nextpow2(N);      %由于FFT算法的本质,对于NFFT的选择一般为大于序列长度点数N的最小的2的幂次方,这样能够改善FFT的计算性能
    f = fs*linspace(0,1,NFFT); %0到fs共输出NFFT个数,则步长为fs/NFFT
    Y = fft(y, NFFT)/N;        %Y=fft(X,n)函数返回n点DFT
    YH = fft(yh, NFFT)/N;  
      
    %figure  
    subplot(2,3,4);  
    plot(f,abs(Y));  
    title('原信号的幅度谱');  
    xlabel('频率f (Hz)');  
    ylabel('|Y(f)|');  
    subplot(2,3,5);  
    plot(f,abs(YH));  
    title('解析信号的幅度谱');  
    xlabel('频率f (Hz)');  
    ylabel('|YH(f)|');  
    

    结果
    在这里插入图片描述

    1. 物理意义

    4.1 解析信号
    在这里插入图片描述

    4.1.1 本质:

    把信号的正频率频谱移相-90°,把负频率频谱移相90°,然后再将这个信号移相90°与原信号相加,使两者的负频率频谱互相抵消,正频率频谱加倍,构成一个没有负频率频谱的复信号。这个复信号的带宽就只占w了,用这个方法,使频带节约了一半。

    4.1.2 特点:

    4.1.2.1 解析信号的实部和虚部功率谱相同,自相关函数相同,其互相关函数是一个奇函数;
    4.1.2.2 解析信号的频谱只有正频段且幅度值为原来的2倍,实现了信号由双边谱转换为单边谱;功率谱也只有正频段,强度为原来的4倍;
    在这里插入图片描述
    4.1.3 意义:

    将实信号变换为解析信号就是将一个二维信号变成了三维复平面上的信号,复平面向量的模和相角代表了信号的幅度和相位。
    在这里插入图片描述

    解析信号可以计算包络(瞬时振幅)和瞬时相位
    在这里插入图片描述

    4.1.3.1 包络
    在这里插入图片描述
    4.1.3.2 瞬时相位就是虚部和实部在某一时间点的比值的arctan
    在这里插入图片描述
    4.1.3.3 瞬时频率是瞬时相位对时间的导数
    4.1.3.4 一个信号既有幅度信息,又有相位信息,所以可设
    在这里插入图片描述
    4.2 欧拉公式(Euler’s formula)
    在这里插入图片描述

    公式表明,复指数信号可以表示为一个实信号和一个虚信号的和的形式,且实部和虚部相差π/2在这里插入图片描述
    观察sin和cos的傅里叶变换,可以得出,sinx的Hilbert变换是cosx,cosx的Hilbert变换是-sinx.也就是说,sinx与cosx是一对希尔伯特变换对.

    那么,欧拉公式实际上就是一种特殊的Hilbert变换。
    在这里插入图片描述

    复指数信号,时域上是复数,但其频谱就是一个脉冲,只有正频率部分,且幅度值是原来的2倍。

    展开全文
  • 【定时同步系列2】16QAM调制+OM定时+信号分段处理+误码率曲线之MATLAB仿真(复信号模型) 【定时同步系列3】8PSK调制+OM定时+信号分段处理+误码率曲线之MATLAB仿真(实信号模型) 的实现思路是: 通过时域积分(求和)...
  • 快速傅里叶变换C语言实现 模拟采样进行频谱分析 FFT是DFT的快速算法用于分析确定信号(时间连续可积信号、...对于复信号FFT: #include <math.h> #include <stdio.h> #include <stdlib.h> # define PI
  • 数字信号处理(一)利用FFT信号进行频谱分析

    万次阅读 多人点赞 2019-11-17 15:42:39
    (1) 进一步加深DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,所以FFT的运算结果必然满足... (3) 学习利用FFT对离散时间信号进行频谱分析的方法,了解可能出现的误差及其原因,以便在实际中正确应用FFT
  • 利用FFT 计算生成离散解析信号

    千次阅读 2013-09-03 15:12:20
    通常我们用到的信号都是实值信号,但是我们可以根据这个实信号构造出一个复信号,使得这个复信号只包含正频率部分,而且这个复信号的实部正好就是我们原来的实值信号。简单的推导可知,复信号的虚部是原信号的...
  • matlab里的fft应用以及常用信号处理问题

    千次阅读 多人点赞 2018-09-14 11:51:11
    matlab里的fft应用以及常用信号处理问题 1。什么是fft FFT(Fast Fourier Transformation)就是快速傅里叶变换的意思。输入的是离散数据,输出的也是离散频率。 在matlab中具体常用的使用方法为X=fft(x)或X=fft(x...
  • 信号处理中的实信号与复信号,I路与Q路的含义

    万次阅读 多人点赞 2018-11-17 09:58:52
    信号处理中为什么用复信号  (2013-03-24 18:25:55) 标签:  杂谈 分类: 信号处理   此文章已于 18:28:13 2013/3/24 重新发布到 senlinlaoren的博客 信号处理中为什么用复信号   ...
  • 信号处理中为什么用复信号

    千次阅读 2017-01-15 15:00:48
    中国通信网-通信资信号是信息的载体,实际的信号总是实的,但在实际应用中采用复信号却可以带来很大好处,由于实信号具有共轭对称的频谱,从信息的角度来看,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只...
  • 设x(n)为N项的复数序列,对其进行DFT,任一X(m)的计算都需要N次复数乘法和N-1次复数加法,因此要求出N项序列的X(m),大约需要N2N^2N2次运算。当N逐渐增大时,运算量将呈指数式增长,这在实际应用中是一场灾难。而...
  • 正弦信号、实数信号的DFT

    千次阅读 2018-11-10 15:51:41
    正弦信号、实数信号的DFT 本文将介绍正弦信号和实数信号的DFT性质,内容包括: 正弦信号的定义以及DFT性质 实数信号的定义以及性质 代码实例 正弦信号 首先说明,正弦信号只是一种数学定义上的信号,在...
  • 【摘要或目录】:一份讲稿,...信号是信息的载体,实际的信号总是实的,但在实际应用中采用复信号却可以带来很大好处。由于实信号具有共轭对称的频谱,其负频谱部分是冗余的,将实信号的负频谱部分去掉,只保...
  • FFT

    千次阅读 2017-05-22 14:03:19
    快速傅立叶变换(FFT) 函数FFT和IFFT用于快速傅立叶变换和逆变换。下面介绍这些函数。 函数的一种调用格式为 y=fft(x) 其中,x是序列,y是序列的FFT,x可以为一向量或矩阵,若x为一向量,y是x的FFT...
  • 信号处理中为什么用复信号 (2013-03-24 18:25:55)标签: 杂谈分类: 信号处理 此文章已于 18:28:13 2013/3/24 重新发布到 senlinlaoren的博客信号处理中为什么用复信号 【何人(公司)所著】:Richard ...
  • 使用python计算复信号的DFT

    千次阅读 2018-12-31 15:19:50
    其中x(n)是离散时间信号,既可以是实信号也可以是复信号。k是频率的index;N是离散信号x(n)的长度,N也是DFT结果X(k)的长度。 DFT的含义是信号在各个频率分量的投影,投影可以理解为两个矢量的点乘。因此DFT的公式...
  • FFT详解

    万次阅读 多人点赞 2017-03-31 10:28:34
    一直想学FFT,当时由于数学基础太差,导致啥都学不懂。请教了机房里的几位学长大神,结果还是没太明白。因此下定决心写一篇关于“FFT”的文章,一篇起码我能看得懂的“FFT”。
  • 1、因为周期T1信号可以表示为各级高次不同频率的信号(正余弦或者指数)叠加。...因此我们看到的DFT(FFT是其快速计算方法,含义相同)不一定是真实的频谱。只有在采样率高于模拟信号包含频率的最高频率的两倍,我们...
  • 高斯白噪声仿真-复信号分析

    千次阅读 2020-06-07 22:24:58
    仿真的信号为复信号。 clear;clc; sigma = 20; noiseRealPart = sigma*randn(1,100000); noiseImagPart = sigma*randn(1,100000); noise = noiseRealPart+1j*noiseImagPart; mean(abs(noise).^2) 输出结果为 ans =...
  • 文章目录1. FFT推导2. FFT为什么快?3. 一些加速措施3.1 查表...但是离散傅里叶变换计算量巨大,通常在实时信号处理时是无法使用的,直到快速傅里叶变换(FFT)算法被发现。 与DFT不同,FFT是一种算法而非理论,因此...
  • Wnk可以理解为在R=1的圆周上,等距离地取n个点,这些平面上的点和复数是一一对应的。由此可以直观理解Wnk的大部分性质。 2.基二FFT的输入和输出序列怎么排序? 按频域抽取使用的输入是前序列,输出后序列。 ...
  • 你说的两个AD是常见的正交采样,采得IQ...下边是网上一些基本的知识:信号是信息的载体,实际的信号总是实的,但在实际应用中采用复信号却可以带来很大好处,由于实信号具有共轭对称的频谱,从信息的角度来看,其负...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,058
精华内容 823
关键字:

复信号fft