SFDR 参数分析

SFDR是信号系统处理中常用的一项参数,对于评估系统的噪声水平和ADC/DAC的性能有一定参考意义。

SFDR,英文全称是 Spurious-Free Dynamic range,意为无杂散动态范围。SFDR是指基波强度与最大杂波或谐波的强度之比,所以SFDR值越大则说明系统的噪声水平越低,灵敏度越高。

下面我们用一个示例看下不同量化位数对SFDR的影响。

matlab代码:

close all;clear all;clc;
%%
N = 1000;                   %总采样数1000
t = -pi : 2*pi/N : pi;      %一个完整周期 

x1 = 7*sin(2*t);            %幅值7,圆频率2
% 进行定点量化
qpath = quantizer('fixed','round','saturate',[5,0]);
fix_x1 = quantize(qpath,x1);

figure;
subplot(221)
stairs(x1);title('浮点精度(double)信号');

subplot(222)
stairs(fix_x1);title('定点精度(fix5-0)信号');
%%
% 进行DFT变换,求模
X1 = abs(fft(x1));
X1 = fftshift(X1);

subplot(223)
semilogy(X1);grid on;title('浮点DFT变换结果');
X11 = abs(fft(fix_x1));
X11 = fftshift(X11);
subplot(224)
semilogy(X11);grid on;title('定点DFT变换结果');

这是运行后的结果,对比之后可以看到,double类型的正弦信号底噪极小,而经过量化之后的信号,底噪十分明显。

 

下面计算一下浮点信号的SFDR,在Matlab中,SFDR的基本过程为加窗DFT变换,选取杂波或谐波最大值求出比率,结果单位为dB。在频率轴经过归一化,采样率1Hz。

图中黑色部分为DC信号,蓝色部分是基波信号,红色部分是杂波信号。灰色区域是SFDR计算范围。

基频信号的峰值是12.73dB,杂波的最大值是-291.4dB,二者比率为304.13dB,即是SFDR的值。

 

再来计算一下经过定点量化信号的SFDR值。

基频信号的峰值是12.78dB,与浮点结果基本一致,杂波的最大值是-19.53dB,二者比率为32.31dB,远小于浮点信号的SFDR值。

实际上,信号量化位数越多,信号底噪越干净,SFDR值也越大。

这是进行fix_10_5量化的结果,保留5bit小数,可以看到时间曲线已经没有明显锯齿,非常光滑。

SFDR为63.94dB,大于fix_10_5的28.69dB,小于浮点数的304.14dB

 

关于定点化

定点化按四舍五入进行取舍,当量化位数不够时,进行饱和处理。

定点格式[fix_w_b]表示,这是一个有符号数,总位宽w,小数位宽b。它能表示的范围为:[ -2w-b-1  + 1/2b  ,  +2w-b-1 - 1/2b  ],分辨率为1/2b.

举例来讲[fix_5_0]能表示的范围在[-2^(5-0-1)+1,+2^(5-0-1)-1]之间,即[-15 ,+15]之间,分辨率1。

关于点数/采样频率的影响

点数越多,采样率越高则SFDR的值也越大

这是N=10000点的结果,比N=1000点时提高了5.37dB

 

关于噪声来源分析

从时域信号来看,相当于一个纯正弦信号乘以一个周期方波信号,在频域就是进行周期卷积。而方波包含有多次谐波,基本之后的都可以视为噪声。这些噪声,最后都通过ADC的量化过程表现出来。

参考资料:

https://en.wikipedia.org/wiki/Spurious-free_dynamic_range

http://blog.sina.com.cn/s/blog_4b2c39e20100z8tu.html

http://cn.mathworks.com/help/signal/ref/sfdr.html?searchHighlight=sfdr&s_tid=doc_srchtitle

http://cn.mathworks.com/help/signal/examples/spurious-free-dynamic-range-sfdr-measurement.html

转载于:https://www.cnblogs.com/qiantuo1234/p/7016658.html

资源下载链接为: https://pan.quark.cn/s/1e68be2bff6a 这些压缩包文件里有大约60个小程序的源码示例,是学习小程序开发的优质资源。小程序是一种无需下载安装就能用的轻量级应用,广泛应用于生活服务、电商购物、社交互动等众多领域。研究这些源码,开发者能深入学习小程序开发技术和最佳实践。wx_app-master.zip可能是一个基础小程序项目模板,涵盖小程序的基本结构和组件使用。学习者可借此了解小程序的目录结构、配置文件,以及wxml、wxss和JavaScript的结合方式。BearDiary-master.zip和weapp-bear-diary-master.zip可能是日记类小程序示例,展示如何实现用户记录、查看和管理个人日记等功能,包括处理用户输入、存储数据和创建交互式界面。WXNews-master.zip和仿知乎日报.zip可能是新闻阅读类小程序的源码,使用网络请求API获取实时新闻数据并展示。学习者能通过这些代码学习处理网络请求、动态加载数据和设计适应性强的布局。wechat-weapp-gank-master.zip可能是一个类似“干货集中营”的技术分享平台小程序示例,涉及数据分类、搜索功能和用户交互设计,可学习如何组织和展示大量数据及实现筛选和搜索功能。Xiaoxiazhihu (知乎日报) 微信小程序 d.zip是仿知乎日报的小程序,涉及数据同步、新闻详情页设计和滑动效果实现,是模仿流行应用界面和用户体验的良好学习案例。仿豆瓣电影-demo.zip提供电影信息查询和展示功能,可能涉及API接口调用、数据解析以及评分和评论系统实现,有助于开发者理解如何集成外部服务和处理展示多媒体内容。仿今日头条app.zip类似今日头条的小程序,涵盖新闻推荐算法、个性化推荐和推送通知等复杂功能,能让开发者学习处理大数据流和提供个性化用户体验。
04-04
### 什么是无杂散动态范围 (SFDR) 无杂散动态范围(Spurious Free Dynamic Range, SFDR)是指在信号频谱中,输入信号的最大功率与其产生的最大失真产物(谐波或互调失真)之间的差值[^2]。它通常用于衡量高速模数转换器(ADC)的性能,表示其能够处理不失真的最大动态范围。 #### 计算公式 SFDR可以通过以下公式计算得出: \[ \text{SFDR} = \frac{2}{3}(-5\,\text{dBm} - 10\,\text{dB} - 40\,\text{dB} + 171\,\text{dBm}) = 77.3\,\text{dB} \][^1] 此公式的具体数值取决于实际应用场景中的信号强度和其他设计参数。 #### 影响SFDR的因素 SFDR的主要限制因素可以归纳为以下几个方面: - **ADC架构中的非线性**:例如采样/保持电路(S/H)以及ADC编码器部分的非线性会直接影响SFDR的表现[^3]。 - **前端系统的元件特性**:巴伦、变压器或者有源放大器等组件可能会引入额外的失真和杂散成分,从而降低整体的SFDR水平。 #### SFDR的重要性 由于SFDR反映了系统抵抗非理想效应的能力,因此它是评价通信接收机灵敏度的一个关键指标。较高的SFDR意味着更少的干扰和谐波失真,这对于无线通信应用尤为重要。 ```python def calculate_sfdr(dB_values): """ Calculate the Spurious-Free Dynamic Range based on given dB values. Parameters: dB_values : list of float List containing dB components to compute SFDR Returns: sfdr_value : float Computed SFDR value in dB """ result = sum(dB_values) * (2 / 3) return round(result, 1) # Example usage dB_components = [-5, -10, -40, 171] sfdr_result = calculate_sfdr(dB_components) print(f"Calculated SFDR Value: {sfdr_result} dB") ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值