tag 标签: FFT

相关帖子
相关博文
  • 热度 27
    2019-3-19 11:26
    4069 次阅读|
    0 个评论
    By Toradex 胡珊逢 1). 简介 伴随着 4G 网络的大范围覆盖,已经即将到来的 5G 网络,边缘计算越来越多地开始进入人们的视野。相比于云计算的云端集中处理,边缘计算能够就地进行复杂数据的计算,并迅速作出决策。由于免去了数据的远程传输,边缘计算能够带来更低的延时、更可靠的数据安全。但这也对边缘计算设备带来更大的挑战,特别是计算性能。下面我们将介绍如何在 NXP 最新的 iMX8X ARM 处理器上面利用 GPU 加速运算快速傅里叶变换 FFT 。 本文所演示的 ARM 平台来自于 Toradex Colibri iMX8X 计算机模块,此模块是 Toradex 基于 NXP iMX8 X 推出的紧凑型 Arm 核心板。 iMX8X 具有最高 4 核 64-bit Armv8-A Cortex-A35 ,主频 1.2GHz 。 Colibri iMX8X 板载 WIFI 和蓝牙,使其能够便捷地连接网络和移动设备。集成 Cortex-M4 处理器, iMX8X 除了支持 Linux 等高级操作系统外,还可以同时运行 FreeRTOS ,执行低功耗或者实时应用。丰富的工业接口如 CAN 、 SPI 、 UART 、双以太网等,便于连接外部设备。 GC7000Lite GPU 图形处理单元,峰值算力 64 GFLOPS ,支持 OpenCL 、 OpenGL 以及 Vulkan ,方便用户利用 GPU 资源。使用 GPU 处理计算密集型数据,除了能够提高效率外,还可以有效降低 CPU 负荷,保证用户应用流畅运行。接下来你将会了解如何使用 OpenCL 在 iMX8X 上的 GPU 实现 FFT 计算。 2). 搭建开发环境 在撰写本文时, Toradex 基于 imx-4.9.123 Linux BSP 提供 Colibri iMX8X 的支持。由于是早期发布阶段, Toradex SDK 并没有集成使用 OpenCL 在 GPU 计算 FFT 的库文件,如 GLi 、 Tclap 等。为了生成完整的 SDK ,我们将使用 NXP 标准的 Yocto 环境来生成 SDK 和 FFT demo 。 ./ 初始化 Yocto ------------------------ $ mkdir imx-yocto-bsp $ cd imx-yocto-bsp $ repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.123-2.3.0-8mm_ga.xml $ repo sync ------------------------ ./ 修改 local.conf.org ,添加下面内容 ------------------------ IMAGE_INSTALL_append = " devil devil-dev imx-gpu-sdk libzip" CONF_VERSION = "1" TOOLCHAIN_TARGET_TASK += " devil-dev imx-gpu-sdk libzip" ------------------------ ./ 编译文件系统和交叉编译工具 ------------------------ $ bitbake fsl-image-gui $ bitbake meta-toolchain ------------------------ ./ 提取文件系统文件,其中包括编译所需的头文件等 ------------------------ $ runqemu-extract-sdk ~/imx-yocto-bsp/build-imx8qxpmek/tmp/deploy/images/imx8qxpmek/ fsl-image-gui-imx8qxpmek-20190315085707.rootfs.tar.bz2 ~/imx8qxpmek-rootfs ------------------------ ./ 添加 OpenCL 头文件 可以从下面下面链接下载 https://github.com/KhronosGroup/OpenCL-Headers ,解压后将其复制到 .../imx8qxpmek-rootfs/usr/include/ ./ 建立 libzip 库软链接 ------------------------ $ cd ~/imx8qxpmek-rootfs/usr/lib $ ln -s ../../lib/libz.so.1.2.11 libz.so.1 ------------------------ ./ Colibri IMX8X SD 卡文件系统构建和烧写方法请参考 这里 。 3). OpenCL FFT demo 编译 NXP 的 DemoFramework 提供了大量基于 GPU 的 demo ,包括使用 OpenCL 、 OpenGL 和 Vulkan ,用户通过这些 demo 快速了解 iMX GPU 的开发使用方法。下载地址 https://github.com/NXPmicro/gtec-demo-framework ./ Toradex Colibri iMX8X 的 imx-4.9.123 Linux BSP 采用 DemoFramework v5.1.1 。下载后解压,并进入该目录,设置编译的环境。 ------------------------ $ cd gtec-demo-framework-5.1.1 $ pushd ~/imx-yocto-bsp/build-imx8qxpmek/tmp $ source environment-setup-aarch64-poky-linux $ export ROOTFS=~/imx8qxpmek-rootfs $ export FSL_PLATFORM_NAME=Yocto $ popd ------------------------ ./ 编译 FastFourierTransform ------------------------ $ source prepare.sh $ cd DemoApps/OpenCL/FastFourierTransform $ FslBuild.py ------------------------ 在 Yocto 编译环境中,系统会根据依赖关系自动下载所需的软件包。 4). 运行 FFT demo ./ 为了便于观察 FFT 结果,我们修改输入信号,使用单频率的正弦函数。例如以 44.1KHz 频率采样一个 1KHz 的信号,采样点数 4096 ,并对采样结果做 FFT 变换。 https://github.com/NXPmicro/gtec-demo-framework/blob/master/DemoApps/OpenCL/FastFourierTransform/source/FastFourierTransform.cpp#L432 中的三角波修改正弦信号。 ------------------------ m_Freal = m_intime = sin(1000 * (2 * 3.1415926) * i / 44100); m_Fimag = m_intime = 0; m_outfft = m_outfft = 0; ------------------------ ./ 将编译好的 FastFourierTransform 和 Content 目录以及其中的 fft.cl 文件一起复制到 Coliri IMX8X 上。 fft.cl 是 OpenCL 内核文件。执行后生成 fft_input.csv 、 fft_output.csv 两个文件,分别保存输入信号和 FFT 运算结果。 输入信号 FFT 运算结果 ./ 从输出结果看,在第 93 点模值达到最大,该点对应的频率为 44100/4096*93=1001.2Hz ,即输入正弦信号的频率。 ./ 下面是 demo 的运行日志。 GPU 会根据采样点数,分解成多个蝶型运算模型,并将每个模型并行在 GPU 上执行,从而有效降低运算时间。从日志看到每个模型耗时都在 1ms 以内, GPU 累计耗时为 0.004604 秒。但由于是并行计算,最终的时间则是小于该值。 ------------------------ Compiling radix-2 FFT Program for GPU... creating radix-2 kernels... Creating kernel fft_radix2 0 (p=1)... Creating kernel fft_radix2 1 (p=2)... …… Creating kernel fft_radix2 10 (p=1024)... Creating kernel fft_radix2 11 (p=2048)... Setting kernel args for kernel 0 (p=1)... Setting kernel args for kernel 1 (p=2)... …… Setting kernel args for kernel 10 (p=1024)... Setting kernel args for kernel 11 (p=2048)... running kernel 0 (p=1)... running kernel 1 (p=2)... …… running kernel 10 (p=1024)... running kernel 11 (p=2048)... Kernel execution time on GPU (kernel 0): 0.000209 seconds Kernel execution time on GPU (kernel 1): 0.000279 seconds Kernel execution time on GPU (kernel 2): 0.000507 seconds Kernel execution time on GPU (kernel 3): 0.000505 seconds Kernel execution time on GPU (kernel 4): 0.000065 seconds Kernel execution time on GPU (kernel 5): 0.000550 seconds Kernel execution time on GPU (kernel 6): 0.000457 seconds Kernel execution time on GPU (kernel 7): 0.000534 seconds Kernel execution time on GPU (kernel 8): 0.000413 seconds Kernel execution time on GPU (kernel 9): 0.000037 seconds Kernel execution time on GPU (kernel 10): 0.000524 seconds Kernel execution time on GPU (kernel 11): 0.000524 seconds Total Kernel execution time on GPU: 0.004604 seconds Successful. ------------------------ ./ 在 Toradex 基于 NXP iMX6Q 处理器的 Apalis iMX6Q 2GB IT 模块上,我们使用 FFTW 库在 CPU 上同样进行 4096 点 FFT 运算,并将 CPU 的时钟调整至最高频率进行对比。测试代码从 这里 下载。 运行耗时为 12.4ms 。 5). 总结 Colibri iMX8X 异构多核构架包含 Cortex-A35 、 GC7000Lite GPU 和 Cortex-M4 。 GPU 可以发挥其并计算的能力,除了实现 FFT 外,还可以用于图形处理运算和深度学习模型推理。通过 Cortex-M4 实现实时数据采集,并由 GPU 完成数据处理,最后在 Cortex-A35 上的操作系统如 Linux 完成数据保存、呈现和传输任务,以及用户交互。 Colibri iMX8X 是边缘计算设备的理想平台。后续我们会向你展示更多 Colibri iMX8X 的应用开发。
  • 热度 5
    2018-10-23 09:34
    5476 次阅读|
    2 个评论
    示波器的FFT功能简介 – 在开关转换器的设计、评估与侦错应用 现今的示波器除了能观察信号的时域波形之外,还能经由内建的快速傅立叶变换(Fast Fourier Transform;FFT)功能观察信号的频谱。本文将介绍如何在示波器上设定快速傅立叶变换功能,并将此功能有效地应用于开关转换器的设计与侦错上。 一. 前言 现今在开关转换器的设计、评估及除错的过程中,若需使用到频域的量测,通常都会使用专用的仪器,如使用网络分析仪(Network Analyzer)量测转换器之环路增益(loop gain)和使用EMI接收机(EMI Receiver)量测转换器是否符合电磁干扰的相关法规等。 近年来随着示波器功能的提升,快速傅立叶变换(Fast Fourier Transform;FFT)已是示波器的标准配备,使得电源工程师可以在一台示波器上同时观察讯号的时域波形及频域成份。藉由频域上分析电路的电压和电流波形,掌握突波(spike)的频率分布,可使电源工程师在解决EMI问题时,能针对特定频率去做改善。除此之外,透过示波器之FFT功能来观测电解电容的电流频谱,分离不同频率下的电容电流大小,也有助于预估电容之寿命。 本文将介绍何谓FFT及如何在示波器上设定FFT功能,并将以标准波形作操作示范。最后,将示范如何将FFT功能应用于电源供应器的设计与侦错上。本文中之示范操作皆使用Rohde & Schwarz公司的RTE 1054示波器,并搭配其所附之软件RTO Scan。 二. FFT介绍与示波器的功能限制 众所皆知,傅立叶分析可以对时域信号做频率拆解,其中离散的傅立叶分析可依据时域信号是否具有周期性,而分成离散时间傅立叶变换(Discrete Time Fourier Transform;DTFT)和离散傅立叶变换(Discrete Fourier Transform;DFT),由于DTFT转换出来的频域函数是连续频谱,这代表非周期性的时域信号需要由无穷多组不同频率的弦波组成,而DFT转换出来的频域函数则为离散频谱,可视为对DTFT出来的频谱作等间隔取样。在实际应用上,微处理器的内存有限,只能处理有限的数据量,所以微处理器在进行傅立叶变换时只能采用DFT的方式。而FFT则是能够有效降低DFT运算复杂度和运算时间的一种算法,至今被广泛的使用在各科学领域及示波器上。 本章节会介绍在示波器设定上会用到的名词、对应关系和设定上的限制,并以标准波形(正弦波与方波)使为操作范例。 1. 示波器的FFT功能与限制 图1为RTE 1054示波器FFT设定的用户接口,红框内的参数为一般示波器在使用FFT功能时需要设定的参数。其中,中心频率(Center frequency)、频率跨距(Frequency span)、起始频率(Start frequency)和终止频率(Stop frequency)之间有连动关系,因此只需设定中心频率和频率跨距。为兼顾FFT频谱的分辨率和振幅量测,将Window type设定为Hamming,而其余参数设定则将一一说明其功能。 图1、RTE 1054示波器FFT设定接口 A. 解析带宽(Resolution Bandwidth;Resolution BW;RBW) 解析带宽为FFT频谱之最小频率间隔(∆f),及决定FFT频谱的分辨率,模拟于时域波形中的取样周期(sampling time;∆t);解析带宽越窄表示频谱的分辨率越高。而解析带宽与示波器时域波形的纪录长度,或称「撷取时间」(capture time)为倒数关系,所以调整示波器的撷取时间会改变解析带宽。 图2、FFT解析带宽示意图 B. 撷取时间(Capture time) 如上所述,撷取时间为示波器时域波形的纪录长度,即示波器屏幕上显示波形的时间总和,其值为时间档位(Time/div)乘上示波器横轴格数,且与解析带宽为倒数关系。 图3、示波器撷取时间示意图 C. 中心频率(Center frequency;fCenter)、起始频率(Start frequency;fStart)及终止频率(Stop frequency;fStop) 中心频率为FFT频谱中横轴所显示的中间频率值;中心频率、起始频率及终止频率关系可参考图4及式(1)。终止频率的设定需考虑到稍后介绍的取样率,简言之,需小于取样率的一半。 (1) D. 频率跨距(Frequency span) 频率跨距为FFT频谱显示的范围,也就是频谱中横轴所显示之终止频率(fStop)和起始频率(fStart)的差值,如图4所示。 图4、FFT频率跨距示意图 E. 取样率(Sampling rate;fSampling) 取样率和示波器之时域波形分辨率有关,如图5所示。取样率为取样周期(∆t)的倒数;取样率越高,取样周期即越小,示波器上所呈现的波形分辨率就越高。在使用示波器FFT功能时,必须注意奈奎斯特取样定理(Nyquist Sampling Theorem),即取样率需大于两倍的终止频率。 图5、示波器取样率示意图 了解上述名词之间的对应关系后,可以发现如果想要获得一个分辨率较高的FFT频谱,必须将示波器时间档位(Time/div)调大,以增加屏幕撷取时间,取得较窄的解析带宽。然而每一台示波器皆有最大取样点数(sampling point)之限制,例如本文中所使用的RTE 1054示波器之最大取样点数为40 MSa。 撷取时间的增加会造成取样点数增加,但若已达示波器之最大取样点数,由取样点数=撷取时间╳取样率的关系式,得知取样率则被迫降低。而当取样率被降低时,因为需符合Nyquist Sampling Theorem,可能会影响到FFT频谱之终止频率,进而影响到FFT频谱的中心频率和频率跨距的大小,使用上须特别注意这些设定。 举例来说,若要在一个最大取样点数为1 MSa的示波器上观察解析带宽为1 kHz的FFT频谱,由式(2)至(4)可计算出示波器的撷取时间至少要1 ms,取样率只能到1 GSa/s,而FFT频谱上的终止频率最高就只能到500 MHz。如果想要观察500 MHz以上的频率,就只能加大解析带宽或是使用拥有更大的最大取样点数的示波器。 (2) (3) (4) 2. 标准波形的FTT范例 标准波形FFT实验皆使用Tektronix AFG3021B波形产生器产生频率100 kHz、峰至峰值400 mV之正弦波和方波作观察。从正弦波的FFT频谱,可以厘清示波器纵轴单位是采用波形电压的峰值、平均值或方均根值做计算;而方波的FFT频谱则可用来观察不同的上升、下降时间对波形在频域的影响。 A. 正弦波 使用示波器观察正弦波FFT频谱,假设频谱之解析带宽为5 kHz,频谱范围设定在10 kHz到30 MHz。首先,根据解析带宽可以推算出示波器的撷取时间为200 µs,因此示波器的时间档位至少要20 µs/div。由频谱范围可以观察到频率跨距约为30 MHz,中心频率约为15 MHz,为满足Nyquist Sampling Theorem,取样率至少要60 MSa/s。图6为正弦波之FFT频谱,从图上可以观察到主要频率成份确实是在100 kHz,其幅值为 (5) 由上述计算可得知示波器频谱上所示之纵轴幅值是采用信号之方均根值做计算。 图6、正弦波频谱 B. 方波 固定示波器FFT设定,由波形产生器产生一工作周期50 %的方波,并将方波之上升时间(tr)及下降时间(tf)设定至波形产生器之最小值(18ns)。图7为此方波之FFT频谱,可以观察到方波之频谱包络(spectral envelope)线在中低频时,以-20 dB/dec的斜率衰减;当频率大于转折频率(fc)时,则会以-40B/dec的斜率降低。其转折频率之计算公式为 (6) 将方波之上升、下降时间代入上述公式,可以计算出上升、下降时间为18 ns的方波转折频率(fc1)为17.7 MHz。 图7、上升及下降时间为18 ns之方波频谱 如果将上升及下降时间增加至100 ns,透过转折频率的公式可以计算出新的转折频率(fc2)降低至3.18 MHz,图8为上升及下降时间为100 ns之方波频谱。 图8、上升及下降时间为100 ns之方波频谱 比对图7和图8两张方波FFT频谱,可以发现如果方波的上升、下降时间越长,转折频率会越低,高频成份就会衰减越多,这也从频域的观点说明了加大开关转换器的MOSFET闸极驱动电阻(gate resistor;Rg)可使EMI滤波器比较容易设计,因MOSFET的驱动信号的斜率变缓,以上图来看,转折频率因而降低,能让电路上的高频噪声被衰减得更多。 三. 范例 本章以交流转直流返驰式转换器搭配立锜科技之控制芯片RT7736为范例,其输入电压为90 - 265 Vac、输出电压为12 V、输出功率为24 W的,针对转换器之MOSFET电压、输出二极管电压、输出电压涟波、输出电容电流及输入电容电流波形做FFT频谱分析,并从频率域的角度观察各波形特性。返驰式转换器常会在变压器一次侧和输出二极管分别并联RCD电压箝位电路(voltage clamp circuit)和RC缓振电路(snubber circuit),如图9所示。由于传导电磁干扰(conducted EMI)法规所规范之最高频率为30 MHz,因此将示波器的FFT频谱范围设定为10 kHz到30 MHz,取样率为100 MSa/s,解析带宽为1 kHz。 图9、返驰式转换器示意图 1. MOSFET之电压 由于RT7736内建智慧抖频(SmartJitter™)功能,开关频率有±6 %的变动范围,使其频率成份扩散成柱状,而非在单一频率上。图10为满载时MOSFET电压波形的FFT频谱,从65 kHz附近开始出现开关频率及其谐波的低频成份。在满载时,变压器的激磁电感(magnetizing inductance)工作在连续导通模式(continuous conduction mode;CCM),MOSFET电压可近似为一方波,因此在中低频的地方,幅值以-20 dB/dec的斜率衰减。在5 MHz附近,幅值出现抬升,则是因为在MOSFET关闭瞬间,漏电感电流在MOSFET上产生之高频电压突尖(voltage spike)。 图10、满载时MOSFET电压波形之FFT频谱 当负载减轻时,开关频率逐渐降低,激磁电感的操作模式从连续导通模式转成不连续导通模式(discontinuous conduction mode;DCM),由图11可以发现在输出电流降到0.5 A时,开关频率只有26 kHz,由于在DCM操作的关系,激磁电感和汲极电容产生的振铃(ringing)变化亦会反映在MOSFET电压波形上,因此在频谱上也能看到在振铃频率(fDCM)附近的幅值也出现抬升。 图11、轻载时MOSFET电压波形之FFT频谱 图12为轻载时未加RCD电压箝位电路的MOSFET电压频谱,由于移除RCD电压箝位电路后,漏电感电流在MOSFET关闭瞬间少了一条宣泄的路径,漏电感电流全部都流进MOSFET的输出电容(Coss),因而产生更高的电压突尖。比对图11和图12可以观察到RCD电压箝位电路主要作用在电压突尖的频率(5 MHz)附近,衰减了10 dB,在中低频段则无明显变化。 图12、轻载时未加RCD电压箝位电路的MOSFET波形电压之FFT频谱 2. 输出二极管之电压 通常输出二极管两端会并联一组RC缓振电路,其目的是为了吸收在MOSFET导通瞬间,因输出二极管的逆向回复电流(reverse recovery current)产生的高频电压突尖。在设计缓振电路时,需要先知道电压突尖的频率,以往是使用示波器将时域波形展开并用光标功能进行读值。本文则提供另一种方法:从波形FFT频谱找出电压突尖之频率。图13为满载时未加装RC缓振电路的输出二极管电压频谱,图中显示电压突尖的频率为21 MHz,由此可以设计对应之RC缓振电路了。 图13、满载时未加装RC缓振电路的输出二极管电压波形之FFT频谱 图14为加装RC缓振电路后的输出二极管电压频谱;比对两张FFT频谱,可以看到RC缓振电路的抑制效果。由于此时输出二极管电压波形和操作在CCM的MOSFET电压相似,从图14可以看到在中低频段时,输出二极管电压频谱一样是呈现-20 dB/dec的衰减斜率,在高频时,则是以-40 dB/dec的衰减斜率。 图14、满载时加装RC缓振电路的输出二极管电压波形之FFT频谱 3. 输入电容之电流 在实际应用上,铝质电解电容(aluminum electrolytic capacitor)经常被用于输入电容和输出电容,其寿命与环境和电气特性有密切的关系。常见的液态铝质电解电容寿命估算式为 (7) 其中,LX为待估算之电容寿命,LO为厂商提供之保证寿命,KTemp为周温修正系数,KVoltage为电压修正系数,IC_rms为流进电容之涟波电流(RMS),IRated为额定最大容许电流(RMS)。从估算式可以观察到在预估电解电容的寿命时,需要计算涟波电流(ripple current)的方均根值。 由于电解电容的等效串联电阻(equivalent series resistor;ESR)会随着涟波电流的频率改变,不同频率下的涟波电流耐受度皆不相同,为了获得较准确的寿命估算,在计算时不会使用示波器直接量测时域波形的方均根值,而是将电流波形做FFT分析,把不同频率下的电流成份等效至120 Hz下去作计算,其等效之电容涟波电流为 (8) 图15和图16分别为输入电容电流波形之FFT频谱与RUBYCON提供之铝质电解电容涟波电流系数修正表。 (a) (b) 图15、满载时输入电容电流波形之FFT频谱 (a)10 Hz - 100 kHz (b)10 kHz - 30 MHz 图16、RUBYCON提供之400 V铝质电解电容涟波电流系数修正表 4. 输出电容之电流 图17为满载时输出电容电流波形之FFT频谱,其寿命估算方式与输入电容相同。比对输入和输出电容的电流的频谱,可以观察到经过一个交流转直流的转换器之后,电容电流的主要成份从低频的市电频率转变成高频的开关频率。 (a) (b) 图17、满载时输出电容电流波形之FFT频谱 (a)10 Hz - 100 kHz (b)10 kHz - 30 MHz 四. 对EMI的影响 在上一章介绍了交流转直流返驰式转换器的许多组件上电压或电流波形频谱,也在频域上看到MOSFET的RCD电压箝位电路和输出二极管的RC缓振电路的功效。本章将探讨RCD电压箝位电路对于MOSFET电压频谱上抑制之幅值,在EMI频谱上是否会有相同的效果。 由于传导EMI的法规限制,在进行FFT频谱与EMI频谱比对前,需先将示波器的设定调整成与EMI接收机相同,因此将FFT频谱范围设为150 kHz至30 MHz,解析带宽为9 kHz,示波器撷取时间为20 ms,取样率设定在100 MSa/s。图18及图19分别为加装RCD电压箝位电路前后之MOSFET电压频谱比较图和EMI频谱比较图,其量测条件皆为输入电压为115 Vac、输出电流为2 A,可以很明显的观察到缓振电路在FFT频谱上5 MHz附近衰减约10 dB,此衰减量同样会呈现在EMI频谱上。 图18、加装RCD电压箝位电路前后之MOSFET电压FFT频谱比较图 图19、加装RCD电压箝位电路前后之EMI频谱比较图 由这个实验结果可以得知抑制电路上的电压突尖和电流突尖(current spike)确实能有效降低特定频率的EMI噪声。往后若想进行特定频率的EMI侦错时,可试着用示波器的FFT功能以快速掌握电路上突波的频率,而能更有效地解决问题。 五. 结论 本文讨论了FFT功能在示波器上的设定及限制,也使用了标准波形进行示波器的操作示范,经由标准波形的实验厘清了频谱的坐标单位。此外透过返驰式转换器的量测实例,了解到了电解电容寿命的估算方式和电压箝位电路及缓振电路在EMI议题上关联及重要性,同时证实了示波器的FFT功能应用于电源转换器的设计与侦错是可行的。 六. 参考文献 “R&S® RTE Digital Oscilloscpe Specifications,” Rohde & Schwarz “R&S® RTE Digital Oscilloscpe Scope of the art,” Rohde & Schwarz “Analyze EMI problems with the R&S® RTO/RTE,” Rohde & Schwarz “Bandwidth of Digital Waveforms,” Clayton R. Paul, 2009 “RT7736 SmartJitterTM PWM Flyback Controller,” Richtek, 2014 “Life of Aluminum Electrolytic Capacitor,” Rubycon “Performance of Aluminum Electrolytic Capacitor,” Rubycon “Radial Lead Aluminum Electrolytic Capacitors WXA Series,” Rubycon 立锜科技电子报
  • 热度 24
    2013-5-23 16:19
    1461 次阅读|
    3 个评论
    本文讲的是 PicoScope ADC216 示波器 / 频谱分析仪在音频放大器频谱分析中的应用。 利用 ADC216 测试功率放大器 开始 ADC216 频谱分析仪的实验,我们这次测试两个音频功率放大器。一款是 Kenwood 的经济型,另一款是 Quad 的高品质型。 ADC216 的一个通道通过 X10 探头连到功放的喇叭输出接头。 在下面的测试中,我们使用 BlackStar 的低失真信号发生器产生信号。下图显示的是信号发生器产生的纯 1KHz 信号频谱。       首先,我们连上 Kenwood 功放,还有一个 8 欧的电阻负载。调整输入信号直到功放输出 25W 给负载。开始我们发现很大的失真,但随着功放热机,失真会慢慢减少。过几分钟后,失真稳定在大约 -60dB, 如下图所示。 我们再把 Quad 功放连上,同样调整输入直到功放输出 25W 给 8 欧的负载。如下图所示, Quad 功放的效果明显好些。不需暖机时间,失真马上稳定下来,而且不会随着机器变热而改变。最大谐波是第二谐波,总体噪音也小很多。                                                                                                        使用FFT频谱分析仪测试音频放大器 (二)
  • 热度 22
    2013-4-16 11:42
    1982 次阅读|
    5 个评论
    前几日,一直纠结在一个问题里面。基本上研究清楚了,感觉值得分享,是信号处理里面比较有意思的一个问题,就是截短的信号处理依旧要考虑数字域处理时相位连续的问题。很多时候,类似这样特别基础的问题,却很难想得很明白,着实让人头疼。   问题的引入:   GPS信号做捕获算法,由于时频搜索的相关运算量太大,所以就用fft的算法来做相关运算。数据序列,频率序列和CA码序列三个序列的相关,理论上感觉任何两者之间先乘之后,在对两个序列进行fft变换做点乘,ifft回去即可得到相关峰。而在仿真的过程中,却发现,经常会出现三个相关峰的现象。基本上是在最大的相关峰两侧,间隔1khz左右的地方,会再有两个很明显的相关峰。     问题的原因分析:   用FFT的方式做相关,相当于把一个截短的序列做了周期延拓,然后做相关。周期延拓的信号在周期接缝的地方,如果序列本身的相位不连续,则会引入误差。保证这个周期延拓的信号的相位连续看起来是解决多峰问题的关键。   尝试的方法与分析:   第一种方法:数据序列与频率序列先乘后,再与CA码序列通过FFT方法做相关运算。数据先乘频率旋转序列,之后的序列本身相当于去掉了频偏的数据序列,所以周期延拓的等效在每ms的接缝处是相位连续的,然后与CA码序列做FFT算法相关,不会出现多峰。   第二种方法:CA码序列与频率序列先乘后,再与数据序列通过FFT方法做相关运算。用CA码序列先乘频率旋转序列,这造成了一个新的数据序列,周期延拓的效果在每ms的接缝处存在相位不连续点,而原始数据本身也存在相位不连续点,这两个序列通过FFT做相关运算,则会出现1khz左右的多峰。   第三种方法:将两种算法里面参与运算的序列都补齐一半的零,然后再做FFT相关。这本身就引入了相位不连续点,且两种算法的效果基本等同了,所以都出现多峰。   第四种方法:将两种算法里面参与运算的序列都多取一半的数据,而不是补零,然后再做FFT相关。第四种算法跟第一种方法时得到的结果基本一致,但相关峰本身能量更突出。第二种算法依然存在多峰,但由于相关峰本身能量更突显,其他峰的能量相对而言得到压制,使得信噪比得以提高。   第五种方法:将多个ms(例如10ms)的数据序列,频率序列和CA序列先做点乘后,再直接做多个ms(10ms)的长度的FFT变换,实现相关运算。由于序列本身的长度远远超过了1ms,则在1ms接缝的地方肯定是相位连续的。所以这种方法是确定没有多峰问题。   结论: 按照第五种方法来做,是对的,但运算量相对来说比较大。按照第一种方法来处理,效率最高,多峰问题基本得到解决。   其他还会有一些时候仿真看到多峰,基本上还是算法不正确,人为引入相位不连续导致的。在此不赘述了。    
  • 热度 17
    2013-4-11 11:49
    1635 次阅读|
    0 个评论
    再调整输入,直到功放只给 8 欧负载输出 1.5W ,这样,更容易观察到交越失真的效果。 Quad 的结果如下图: 我们再把 Kenwood 连上,同样调整到给 8 欧负载输出 1.5W ,结果如下图:                                                                      当测试音频设备时,频率响应是另一项重要指标。一般来说,希望在 20 到 20KHz 的音频频谱间有一个“平坦”的响应,最低 -3dB 。我们用示波器频谱峰值检测模式,并且从 DC 开始增加信号发生频率直到 40KHz. 我们选择 40KHz ,是因为许多发烧友对超过人听力范围的频响感兴趣。 两个功放的频响很相似,我们只选择 Kenwood 的频响显示如下:    
相关资源