滤波器的传递函数传递函数h是时域还是频域表达

一阶RC低通滤波 - CSDN博客
一阶RC低通滤波
一阶RC低通滤波
从模拟到数字&
本文整理自网络、《匠人手记》等书籍文章
模拟电路低通滤波时域、频域软件低通滤波
图1 典型RC电路&
直流、交流、脉冲信号都可以用它
电容电流:&
Ic=dqdt=d(C?Uo)dt=CdUodt
基尔霍夫电压定律得:&
Ui=RCdUodt+Uo
Ui的单位是伏特,RC的单位为秒,τ=RC;&
Uo(t)=Ui(1-e∧(-t/RC))
假设电容初始电压值为0&
Vc(τ)=0.632&
图2 一阶RC系统的阶跃响应曲线
u1=Ui;u2=Uo;&
以电容电压作为输出,电路的网络函数为:&
H(jω)=U2U1=1jωCR+1jωC=11+jωRC
ωc即为截止频率;
幅值和相角函数:&
|H(jω)|=11+(ωωc)2--------√
θ(ω)=-arctanωωc
各变量取值:&
A(f)=1j2πfRC+1
|A(fc)|=0.707&
θ(f)=180arg(A(f))π
θ(fc)=-45
f=0.001、1、…….100000
幅频和相频特性图:&
幅频特性图的对数表示:&
-当ω&ωc时,幅值是平行于坐标的直线,基本无衰减; 
-当ω&&ωc时,是斜率与-20dB/十倍频成比例的一条直线; 
-当ω=ωc时,增益衰减至0.707,即-3dB,相位滞后45度,对应低通滤波器,该频率通常被称为截止频率。
采用这种模拟滤波器抑制低频干扰时,要求滤波器有较大的时间常数和高精度的RC网络,增大时间常数要求增大R值,其漏电流也随之增大,从而降低了滤波效果;
软件上的一阶低通滤波
-采用数字滤波算法来实现动态的RC滤波,则能很好的克服模拟滤波器的缺点;&
-在模拟常数要求较大的场合这种算法显得更为实用;&
-其对于周期干扰有良好的抑制作用,&
-比较节省RAM空间
-不足之处是带来了相位滞后,导致灵敏度低;&
-同时它不能滤除频率高于采样频率的二分之一(称为奈奎斯特频率)的干扰(例如采样频率为100Hz,则它不能滤除50Hz以上的干扰信号)对于高于奈奎斯特频率的干扰信号,应该采用模拟滤波器。&
-对没有乘、除法运算指令的单片机来说,程序运算工作量较大
基本滤波算法:
算法由来:&
频率分析中一阶RC低通滤波在S域的传递函数:&
VoutVin=1RCs+1,(s=jω)
通过z变换(方法很多,如一阶前向差分、双线性变换等这里用一阶后向差分法)&
s=1-z∧(-1)T,T表示采样周期
带入S域传递函数中:&
Y(z)X(z)=1RC1-z∧(-1)T+1=TRC(1-z∧(-1))+T
推导转化为差分方程后可得:&
Y(n)=TT+RCX(n)+RCT+RCY(n-1)
通过Z变换把S域的传递函数转化成时域的差分方程,分析可得到
一阶RC数字滤波的基本算法
X为输入,Y为滤波后得输出值,则:&
Y(n)=a*X(n)+(1-a)*Y(n-1)
a为与RC值有关的一个参数,称为滤波系数,其值决定新采样值在本次滤波结果中所占的权重,其值通常远小于1,当采样间隔t足够小的时候,&
-滤波系数越小,滤波结果越平稳,但是灵敏度越低;
-滤波系数越大,灵敏度越高,但是滤波结果越不稳定
-本次输出值主要取决于上次滤波输出值,当前采样值对本次输出贡献比较小,起到修正作用;
-截止频率:
例如:t=0.5s (f=2Hz), a=1/32&
则fl=(1/32)/(2*3.14*0.5)=0.01Hz;
基本程序:
按照一阶滤波的基本原理与公式写程序,如下:
/*程序中整数运算比小数运算快,为加快程序的处理速度,为计算方便,a取一整数,1-a用256-a来代替,a则取0~255,代表新采样值在滤波结果中的权重(也可将1-a的基数改为100-a,计算结果做相应处理,这里不做说明)*/
//上次滤波值
char filter()
new_value=get_ad();//本次采样值
return(256-a)*value/256+a*new_value/256;
}12345678910111234567891011
程序初步优化
减少乘、除的运算次数以提高运算速度。&
具体优化办法:&
先将新采样值与上次滤波结果进行比较,然后根据比较采用不同的公式计算,这样程序的运算效率提高了一倍;&
化解基本公式可得:&
当Xn&Y(n-1)时,Yn=Y(n-1)-(Y(n-1)-Xn)×a÷256;
当Xn&Y(n-1)时,Yn=Y(n-1)+(Xn-Y(n-1))×a÷256;
/*入口:NEW_DATA 新采样值
OLD_DATA 上次滤波结果
滤波系数(0~255)(代表在滤波结果中的权重)
本次滤波结果
char filter_1(char NEW_DATA,char OLD_DATA,char k)
if(NEW_DATA&OLD_DATA)
result=OLD_DATA-NEW_DATA;
result=result*k;
result=result+128;//+128是为了四色五入
result=result/256;
result=OLD_DATA-
else if(NEW_DATA&OLD_DATA)
result=NEW_DATA-OLD_DATA;
result=result*k;
result=result+128;//+128是为了四色五入
result=result/256;
result=OLD_DATA-
else result=OLD_DATA;
return((char)result);
}123456789101112131415161718192021222324252627123456789101112131415161718192021222324252627
滤波分析:&
当滤波系数为30的时候:&
当滤波系数为128的时候:&
当滤波系数为200的时候:&
可见滤波系数越小,滤波结果越平稳,但是灵敏度越低;滤波系数越大,灵敏度越高,但滤波结果也越不稳定;
-灵敏度和平稳度间的矛盾
-小数舍弃带来的误差&
比如:本次采样值=25,上次滤波结果=24,滤波系数=10;&
根据算法得本次结果=24.0390625&
在单片机中,很少采用浮点数,小数部分要么舍弃,要么进行四色五入。这样结果就变成24;假如采样值一直为25那么,结果永远是24;滤波结果和实际数据一直存在无法消除的误差。&
严重时会导致,在数据采样数据稳定在某一数值上时,滤波结果曲线偏离实际值(即滤波结果在稳定时与实际结果存在较大误差);
改变滤波系数,增大会导致平稳度降低,滤波系数太大滤波也就丧失意义;&
将小数位参与计算,会给CPU带来沉重运算压力;
优化方法 —– 动态调整滤波系数
1、实现功能:&
-当数据快速变化时,滤波结果能及时跟进,并且数据的变化越快,灵敏度应该越高(灵敏度优先原则)&
-当数据趋于稳定,并在一个范围内振荡时,滤波结果能趋于平稳(平稳度优先原则)&
-当数据稳定后,滤波结果能逼近并最终等于采样数据(消除因计算中小数带来的误差)&
2、调整前判断:&
-数据变化方向是否为同一个方向(如当连续两次的采样值都比其上次滤波结果大时,视为变化方向一致,否则视为不一致)&
-数据变化是否较快(主要是判断采样值和上一次滤波结果之间的差值)&
3、调整原则:&
-当两次数据变化不一致时,说明有抖动,将滤波系数清零,忽略本次新采样值&
-当数据持续向一个方向变化时,逐渐提高滤波系数,提供本次采样值得权;&
-当数据变化较快(差值&消抖计数加速反应阈值)时,要加速提高滤波系数
调整滤波系数的程序流程:
几个常量参数及其取值范围:&
(不同的取值会影响滤波的灵敏度和稳定度)&
1、消抖计数加速反应阈值,取值根据数据情况确定&
2、消抖计数最大值,一般取值10;&
3、滤波系数增量,一般取值范围为10~30&
4、滤波系数最大值,一般取&#;&
在调用一阶滤波程序前,先调用调整滤波系数程序,对系数进行即时调整
1、当采样数据偶然受到干扰,滤波结果中的干扰完全被滤除&
2、当数据在一个范围内振荡时,滤波结果曲线非常平滑,几乎是一根直线&
3、当采样数据发生真实的变化时,滤波结果也能比较及时地跟进&
4、当采样数据趋于稳定时,滤波结果逐渐逼近并最终等于采样数据
-最终改进算法,兼顾了灵敏度和平稳度的要求;同时又不太消耗系统的RAM;&
-只要合理调整几个常量,以使得算法更合适实际应用;
下面是一个使用了动态调整滤波的例子:
//用MPU6050测得数据;对x轴滤波处理
float K_x=0; //滤波系数
u8 new_flag_x=0;//本次数据变化方向
u8 num_x=0;//滤波计数器
/*****带系数修改的一阶滤波函数
入口: NEW_DATA
新采样的角度值
上次滤波获得的角度结果
滤波系数(代表在滤波结果中的权重)
上次数据变化方向
出口: result
本次滤波角度结果
float filter_1_x(float NEW_DATA,float OLD_DATA,float k,u8 flag)
//角度变化方向,new_flag=1表示角度增加,=0表示角度正在减小
if((NEW_DATA-OLD_DATA)&0)
new_flag_x=1;
else if((NEW_DATA-OLD_DATA)&0)
new_flag_x=0;
if(new_flag_x==flag)
//此次变化与前一次变化方向是否一致,相等表示角度变化方向一致
if(fabs((NEW_DATA-OLD_DATA))&Threshold_1)
//当变化角度大于Threshold_1度的时候,进行计数器num快速增加,以达到快速增大K值,提高跟随性
if(num_x&Threshold_2)
//计数阈值设置,当角度递增或递减速度达到一定速率时,增大K值
K_x=k+0.2;
//0.2为K_x的增长值,看实际需要修改
//角度变化稳定时K_x值,看实际修改
OLD_DATA=(1-K_x)*OLD_DATA+K_x*NEW_DATA;
return OLD_DATA;
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515212345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
上几张图片:&
修改程序中的阈值1和阈值2,可获得不同的滤波效果
————————————
再次声明:本文整理自网络、《匠人手记》等书籍文章,仅作为个人学习笔记
本文已收录于以下专栏:
相关文章推荐
一阶RC低通滤波从模拟到数字
本文整理自网络、《匠人手记》等书籍文章
模拟电路低通滤波时域、频域
软件低通滤波
图1 典型RC电路
直流、交流、脉冲信号都可以用它时域电容电流:
本文转自:阿呆游乐园:/adaiplay/blog/
关于一阶滤波器的种种有很多资料可查,像截止频率啊,相移啊什么的,这些在这里就不再重复了。本文主要阐述...
1. 一阶滤波算法的原理
一阶滤波,又叫一阶惯性滤波,或一阶低通滤波。是使用软件编程实现普通硬件RC低通滤波器的功能。
一阶低通滤波的算法公式为:
#include "lpfilter.h"#include #include #define M_PI_F 3.fvoid LowPassFilter2p::s...
经典滤波器设计摘要经典滤波器的滤波思路是从频率域上将噪声滤掉,关键是设计相应的滤波器传递函数H(s)、H(z),分别对应着模拟滤波器和数字滤波器的实现。模拟滤波器主要是通过电感(L)、电容(C)、电阻...
实现了这辈子的第一个滤波器,而学习《信号与系统》这门课,已经是5年前的事情了。
这次实现的是一个最最简单的“低通滤波器”,所谓低通滤波器,就是让低频通过,阻住高频。更简单的说,就是消除毛刺。。。
OpenCV 学习(几种基本的低通滤波)对图像进行滤波处理是图像处理中最常见的一种操作类型。而这其中低通滤波(也可以叫做平滑)有事各种滤波处理中最常用的。这里就简单写写 OpenCV 中提供的几种低通...
南京养生SPA保健按摩生活休闲的方式愿为各界女士(小姐)们,男士(先生)们按摩保健等全方位专业的优质服务。全新的“自然本我,放诼心灵”的健康保健按摩休闲生活方式。提供上门一条龙服务服务 ,能节省您的宝...
工频干扰是由电力系统引起的一种干扰,中国大陆地区由50hz及其谐波构成的一种干扰,幅值约为ECG(心电信号的50%)。
工频干扰可以用陷波器进行处理,过滤50hz信号。...
他的最新文章
讲师:何宇健
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)信号经过带通滤波器后频域波形和时域波形
时间: 14:50:59
通信原理大作业年 班级 级2010 级 0210** 张**姓名学号专 学业 院电子信息工程 电子工程学院西安电子科技大学 2013 年 6 月&&&&? 选题一:2FSK 信号传输仿真 一、 题目要求:按照 2FSK 产生模型和解调模型分别产生 2FSK 信号和高斯白噪声,经过 信道传输后进行解调。对调制解调过程中的波形进行时域和频域观察,并且 对解调结果进行误码率测量。 2FSK 信号的解调可以选用包络解调或者相干解 调法。二、 2FSK 信号传输介绍数字信号的传输方式分为基带传输和带通传输。然而,实际中的大多数 信道因具有带通特性而不能直接传送基带信号。为了使数字信号在带通系统 中传输,必须用数字基带信号对载波进行调制,以使信号与信道的特性相匹 配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的 过程称为数字调制。在接收端,通过解调器把带通信号还原为数字基带信号 的过程称为数字解调。 移频键控(FSK)是数据通信中最常用的一种调制方式。FSK 方法简单, 易于实现,并且解调不需要恢复本地载波,可以异步传输,抗噪声和抗衰落 性能较强。缺点是占用频带较宽,频带利用不够经济。FSK 主要应用于低中 速数据传输,以及衰落信道和频带较宽的信道中。三、 2FSK 信号传输实现方法1. 调制过程 FSK 即 Frequency Shift Key 叫做移频键控或频移键控。调制的方法一般 有两种,一种叫直接调频法,另一种叫键控法。所谓直接调频法,就是将输 入的基带脉冲去控制一个振荡器的某种参数,而达到改变振荡频率的目的。 键控法就是利用矩形脉冲序列控制的开关电路,对两个不同的独立频率源进 行选通。一般来说,键控法采用两个独立的振荡器,得到的是相位不连续的 FSK 信号;而且直接调频法 f1,f2 由同一个谐振电路产生,则得到相位连续的 FSK 信号。 2FSK 信号便是 0 符号对应于载频 f1,1 符号对应于载频 f2(与 f1 不同 的另一个载频)的一调制波形,而 f1 与 f2 的改变是瞬间完成的。&&&&2. 解调过程 2FSK 的常用解调方法是采用相干解调(如下图) 。解调原理是将 2FSK 信 号分解为上下两路 2ASK 信号分别进行解调,然后进行判决。判决规则与调 制规则相呼应,调制时若规定“0”符号对应载波频率 f1,则接收时上支路 的样值较大,应判为“0” ,反之则为“1” 。ω1 带通滤 波器 相乘器 低通滤 波器 抽样脉冲 低通滤 波器 抽样判 决器输入输出Cosω 1t 带通滤 波器 ω2相乘器Cosω 2t四、 Matlab 仿真思路 1. 2. 3. 4.首先设定仿真的码元个数、载波频率 f1,f2、采样频率和波特率。 利用 Matlab 函数 rand 和 round 设定初始码元,并计算得出基带信号及其反码。 产生载波信号, 利用模拟相乘得到 FSK 信号, 再利用 awgn 函数在信号中加入高斯白噪声得到已调信号表达式 y_2FSK_n。 在 2FSK 的解调过程中,根据原理图,信号首先通过带通滤波器,设置带通滤波器参数(firl 函数) ,后利用一维数字滤波器 filter 对已调信号进行滤波处 理。输出经过带通滤波器后的信号波形。由于已调信号中有两个不同的载波(ω 1, ω 2),则经过两个不同频率的带通滤波器后输出两个不同的信号波形 z1,z2。5.经过带通滤波器后的 2FSK 信号再经过相乘器(cosω 1,cosω 2) ,输出得到相乘后的两个不同的 2FSK 波 st1_1 和 st2_1。&&&&6.经过相乘器输出的波形再通过低通滤波器,设置低通滤波器的参数(函数 firl) ,用一维数字滤波韩式 filter 对信号的数据进行新的一轮的滤波处理。输 出经过低通滤波器后的两个波形(st1_2,st2_2) 。7.将信号(st1_2,st2_2)同时经过抽样判决器,输出 code_s_1。对抽样判决器经定义一个时间变量长度 i,当 st1_2 (i)&= st2_2 (i)时,则 code_s_1=0,否则 code_s_1=1。8.计算误码率, code_s_1 进行还原, 将 还原办法是将一个码元周期内的 0,1 个数比较,取较多的那一个。将结果与码元 code 比较,将传输有误的码元个 数除以总码元个数即可。五、 Matlab 仿真结果在仿真过程中,设定码元个数 10、载波频率 fc1 为 30khz,fc2 为 60khz、采 样频率 fc2*5、信号波特率 800。以下图片是在数据码流为
时仿真的 结果。 1. 基带信号,2FSK 信号以及 2FSK 信号混高斯白噪声的时域波形2. 2FSk 信号频谱分析&&&&3. 2FSK 信号经过带通滤波器后频域波形和时域波形&&&&4. 两路信号经低通滤波器后的频谱和时域波形&&&&5. 解调后误码率计算 经过计算,误码率为 0六、 仿真过程中问题1. 2FSK 信号传输的误码率跟载波频率和采样频率有关,载波频率和采样频 率均越低,出现误码的可能性越高。 2. 2FSK 信号传输的误码率跟波特率有关,波特率越高,误码率越高。 3. 经过分析,上述两个因素综合起来就是码元周期,经过仿真与分析,码元周期越长越好4. 同时也更加深入的了解了为何国际电信联盟会建议数据率低于 1200b/s 时采用2FSK 体制? 选题二:信道噪声特性仿真 一、 题目要求:产生信道高斯白噪声,设计信道带通滤波器对高斯白噪声进行滤波,得 到窄带高斯噪声。对信道带通滤波器的输入输出的噪声的时域、频域特性进&&&&行统计和分析,画出其时域和频域的图形。二、 信道噪声高斯白噪声介绍在分析通信系统的抗噪声性能时,常用高斯白噪声作为通信信道中的噪 声模型。这是因为,通信系统中常见的热噪声近似为白噪声,且热噪声的取 值恰好服从高斯分布。另外,实际信道或滤波器的带宽存在一定限制,白噪 声通过后,其结果是带限噪声,若其谱密度在通带范围内仍具有白色特性, 则称其为带限白噪声,他又可以分为低通白噪声和带通白噪声。 如果白噪声取值的概率分布服从高斯分布,则称之为高斯白噪声,我们 常用它作为通信信道中的噪声模型。高斯白噪声在任意两个不同时刻上的随 机变量之间,不仅是互不相关的,而且还是统计独立的。三、滤波器的实现滤波器是一种对信号有处理作用的器件或电路。分为有源滤波器和无源滤波器。主要作用是让有用信号尽可能无衰减的通过,对无用信号尽可 能大的反射。滤波器一般有两个端口,一个输入信号、一个输出信号,利 用这个特性可以选通通过滤波器的一个方波群或复合噪波,而得到一个特 定频率的正弦波。 滤波器的响应种类有巴特沃斯响应,贝塞尔响应,切比雪夫响应。这 里我采用的是巴特沃斯滤波器。 巴特沃斯响应能够最大化滤波器的通带平坦度。该响应非常平坦,接 近 DC 信号,然后慢慢衰减至截止频率点为-3dB,最终逼近-20ndB/decade 的衰减率,其中 n 为滤波器的阶数。巴特沃斯滤波器特别适用于低频应用, 其对于维护增益的平坦性来说非常重要。四、Matlab 仿真思路1. 用 wgn 函数产生高斯白噪声信号 y1,频谱信号为 ya。 2. 用 butter 函数产生巴特沃斯滤波器,滤波器的系统函数为 filter_h。 3. 使信号 ya 通过滤波器产生信号 yb,通过反傅里叶变换得到时域信号 y2。 4. 对时域信号进行均值,最大值,最小值,标准差,方差,自相关函数的 分析。&&&&5. 对频域信号进行频谱,功率谱密度(自相关函数的频谱)分析五、Matlab 仿真结果使用采样 1000 个点且采样频率为 1khz 的高斯白噪声模拟信道中的噪声。 1.高斯白噪声的时域图和频谱图2.滤波器的幅频特性&&&&3.对高斯白噪声和窄带高斯白噪声时域的分析波 均值 形 滤 0.0134 波 器 前 滤 -9.1e-19+i-1.3e-1 波 9 器 后极小值极大值标 准 方差 差-3..030 51.062 0-0.001-i0.000 4-5. 40.517 30.267 5&&&&4.通过滤波器前后的噪声频谱图对比5.通过滤波器前后的功率谱密度图对比&&&&六、仿真中遇到的问题功率谱密度理论上来说应该在频带上均匀分布,而仿真结果却不是。? 附录 一、 2FSK 信号传输代码%%2FSK 信号传输仿真,省略画图代码clear all codn=10; % 仿真的码元个数 fc1=30000; fc2=60000; % 设定载波频率 Fc1=30khz,Fc2=60Khz fs=fc2*5; % 数据采样率 bode=800; % 信号波特率 code=round(rand(1,codn)); code_len=round(1/bode/(1/fs)); % 得到一个码元周期的数据长度 %产生基带信号 st1=0; for i=1:codn if code(i)&=1 for m=(i-1)*code_len+1:i*code_len st1(m)=0; end else for m=(i-1)*code_len+1:i*code_len st1(m)=1; end end end n=length(st1); %产生基带信号的反码 st2=0; for i=1:n if st1(i)&=1 st2(i)=0; else st2(i)=1; end end t=(1:n)/ s1=cos(2*pi*fc1*t); %产生频率为 Fc1 和 Fc2 的载波 s1,s2 s2=cos(2*pi*fc2*t);&&&&y_2fsk=st1.*s1+st2.*s2; y_2fsk_n=awgn(y_2fsk,5); ay=abs(fft(y_2fsk_n)); f=0:fs/length(y_2fsk_n):fs/2; ay=ay(1:length(f));%采用模拟相乘法产生 FSK 信号 %生成高斯白噪声 % 进行幅频特性分析%%低通滤波 b1=fir1(101,[0.18 0.22]); b2=fir1(101,[0.38 0.42]); %%带通滤波器系数 z1=filter(b1,1,y_2fsk_n); %%经过带通滤波器的信号 z2=filter(b2,1,y_2fsk_n); ay_1_1=abs(fft(z1)); % 进行幅频特性分析 ay_1_1=ay_1_1(1:length(f)); ay_1_2=abs(fft(z2)); ay_1_2=ay_1_2(1:length(f)); st1_1=z1.*s1; %%相乘器 st2_1=z2.*s2; bn=fir1(101,[0.04 0.16]); %%低通滤波器 st1_2=filter(bn,1,st1_1); st2_2=filter(bn,1,st2_1); ay_2_1=abs(fft(st1_2)); % 进行幅频特性分析 ay_2_1=ay_2_1(1:length(f)); ay_2_2=abs(fft(st2_2)); ay_2_2=ay_2_2(1:length(f)); %%判决器 for i=1:n if st1_2(i)&=st2_2(i) code_s_1(i)=0; else code_s_1(i)=1; end end %%计算误码率 for i=1:codn tag=code_s_1((i-1)*code_len+1:i*code_len); j=length(find(tag==0)); if j&=(code_len/2) code_s(i)=1; else code_s(i)=0; end end P1=sum(abs(code_s-code))/ %%误码率&&&&二、 信道噪声特性仿真代码%%产生高斯白噪声 省略画图代码 t=0:0.001:0.999;%确定取点数和采样频率 y1=wgn(1,);%高斯白噪声 ya=abs(fft(y1)); f1=(0:length(ya)-1)'*1/length(ya); yb=ya.*filter_h; y2=ifft(yb); %%滤波器 ws=[0.35,0.65];%ws 为归一化阻带边界频率 wp=[0.36,0.64];%wp 为归一化通带边界频率 Ap=3; %Ap 单位为 dB 的通带波形 As=15; %As 单位为 dB 的最小阻带衰减 [n1,wn1]=buttord(wp,ws,Ap,As);%n1 为数字滤波器的阶数 %wn1 为归一化截止频率 [num,den]=butter(n1,wn1);%设计数字滤波器,num 系统函数的分子 %计算单位为 dB 的增益函数 den 系统函数的分母 w=0:pi/999: %单位园上将函数转化为 999 等分 %计算相位 filter_h=freqz(num,den,w);%频率响应计算[0,pi] g=20*log10(abs(filter_h));%计算幅度 pha=angle(filter_h); %相角计算 %%时域分析 [a,b]=xcorr(y1);%高斯白噪声的自相关性 [c,d]=xcorr(y2);%窄带高斯白噪声的自相关性 m1= mean(y1); disp (m1);%计算平均值 mi1= min(y1); disp (mi1);%极小值 mx1= max(y1); disp (mx1);%极大值 st1= std(y1); disp (st1);%标准差 fc1= st1.^2;%方差 m2= mean(y2); disp (m2);%计算平均值 mi2= min(y2); disp (mi2);%极小值 mx2= max(y2); disp (mx2);%极大值 st2= std(y2); disp (st2);%标准差 fc2= st2.^2;%方差 %%频域分析 fa=(0:length(ya)-1)'*1/length(ya);%换算出对应时域的频域横坐标值 fb=(0:length(yb)-1)'*1/length(yb);&&&&%%功率谱密度 nfft=1500; CXk1=fft(a,nfft); Pxx1=abs(CXk1); index=0:round(nfft-1); k=index*1000/ plot_Pxx1=10*log10(Pxx1(index+1)); CXk2=fft(c,nfft); Pxx2=abs(CXk2); plot_Pxx2=10*log10(Pxx2(index+1)); 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
雷达频域脉压系统的设计.pdf
下载积分:800
内容提示:雷达频域脉压系统的设计.pdf
文档格式:PDF|
浏览次数:7|
上传日期: 00:12:08|
文档星级:
全文阅读已结束,如果下载本文需要使用
 800 积分
下载此文档
该用户还上传了这些文档
雷达频域脉压系统的设计.pdf
关注微信公众号& 传递函数
所谓传递函数即线性定常系统在零初始条件下,输出量的拉氏变换式与输入量的拉氏变换式之比。传递函数通常用于单输入、单输出的模拟电路,主要用在信号处理、通信理论、控制理论。这个术语经常专门用于如本文所述的线性时不变系统(LTI)。实际系统基本都有非线性的输入输出特性,但是许多系统在标称参数范围内的运行状态非常接近于线性,所以实际应用中完全可以应用线性时不变系统理论表示其输入输出行为,有的书中也把其译为:“转移函数”。
1&&2&&3&&4&&
1传递函数的常识
传递函数概念的适用范围限于线性常微分方程系统.当然,在这类系统的分析和设计中,传递函数方法的应用是很广泛的.下面是有关传递函数的一些重要说明(下列各项说明中涉及的均为线性常微分方程描述的系统).
1. 系统的传递函数是一种数学模型,它表示联系输出变量与输入变量的微分方程的一种运算方法.
2. 传递函数是系统本身的一种属性,它与输入量或驱动函数的大小和性质无关.
3. 传递函数包含联系输入量与输出量所必需的单位,但是它不提供有关系统物理结构的任何信息(许多物理上完全不同的系统,可以具有相同的传递函数,称之为相似系统).
4. 如果系统的传递函数已知,则可以针对各种不同形式的输入量研究系统的输出或响应,以便掌握系统的性质.
5. 如果不知道系统的传递函数,则可通过引入已知输入量并研究系统输出量的实验方法,确定系统的传递函数.系统的传递函数一旦被确定,就能对系统的动态特性进行充分描述,它不同于对系统的物理描述.
6. 用传递函数表示的常用连续系统有两种比较常用的数学模型,说明如下
第一种表示方式为:
第二种表示方式也叫零极点增益模型,具体形式为:
2传递函数的性质
  1、传递函数是一种数学模型,与系统的微分方程相对应。
  2、是系统本身的一种属性,与输入量的大小和性质无关。
  3、只适用于线性定常系统。
  4、传递函数是单变量系统描述,外部描述。
  5、传递函数是在零初始条件下定义的,不能反映在非零初始条件下系统的运动情况。
  6、一般为复变量 S 的有理分式,即 n ≧ m。且所有的系数均为实数。
  7、如果传递函数已知,则可针对各种不同形式的输入量研究系统的输出或响应。
  8、如果传递函数未知,则可通过引入已知输入量并研究系统输出量的实验方法,确定系统的传递函数。
  9、传递函数与脉冲响应函数一一对应,脉冲响应函数是指系统在单位脉冲输入量作用下的输出。3传递函数的幅度近似
  1.频率归一化
  在设计的传递函数和研究滤波器的幅频特性近似问题时,为了简化计算,使计算规格化和通用化,通常采用频率归一化的处理方法。所谓频率归一化,是将传递函数复频率s=α十jω除以基准角频率ωλ,得到归一化复频率
  对于低通、高通滤波器,一般采用截止角频率(1),作为基准角频率;对于带通、带阻滤波器,一般采用中心角频率00作为基准角频率。在用波特图描述滤波器的幅频特性时,通常横坐标用归一化频率Ω代替ω。
  2.传递函数的幅度近似
  在设计、研究滤波器时,通常是按通频带分类,分为低通滤波器、高通滤波器、带通滤波器、带阻滤波器。在这4种滤波器中,常将低通滤波器作为设计滤波器的基础,高通、带通、带阻滤波器传递函数可由低通滤波器传递函数转换过来,因此,低通原型传递函数的设计是其他传递函数设计的基础。
  如图1所示为理想低通滤波器的幅频特性。但是这种理想的幅频特性不可能采用有限个元件组成的网络来实现,只能采用一个有理函数来近似实现。因此,需要对滤波器的幅频特性提出一个允许的变化范围,如通带增益波动范围、阻带必须达到的衰减、过渡带带宽和衰减特性等,如图2所示为幅度近似的低通幅频特性。寻找一个合适的有理函数来满足对滤波器幅频特性提出的要求,寻找这个合适的有理函数即是滤波器的幅度近似。
  图1理想低通滤波器的幅频特性幅度近似的方式有两类。
  图2 幅度近似的低通幅频特性
  滤波器的幅度近似
  ①最平幅度近似,也称为泰勒近似,这种幅度近似用了泰勒级数,其幅频特性在近似范围内呈单调变化。
  ②等波纹近似9也称切比雪夫近似,这种幅度近似用了切比雪夫多项式,其幅频特性呈等幅波动。
  在通带和阻带内可分别采用这两种幅度近似方式,组合起来有4种幅度近似的方法,并有4种滤波器,分别是:巴特沃思滤波器、切比雪夫滤波器、反切比雪夫滤波器和椭圆函数滤波器。如图3所示为这4种幅度近似低通滤波器的幅频特性曲线。
  图3种幅度近似低通滤波器的幅频特性曲线
  一个n阶低通滤波器,其频率归一化的传递函数通式为
  式中,K2(Ω)=B1Ω2十B2Ω4+…+BnΩ2n为幅度近似方法的特征函数。采用不同的近似方法,Κ(Ω)为不同的多项式。4由DAC谐波频谱成分重构其传递函数
所有DAC都会表现出一定程度的谐波失真,谐波失真是用来衡量当DAC输入端采用一个理想的均匀采样正弦波的数值序列驱动时,其输出端能在多大程度上再现这个理想的正弦波。由于DAC的瞬态和静态特性并不理想,因此输出频谱将会包含谐波成分。DAC的瞬态输出特性包括压摆率限制、非对称上升和下降时间、有限建立时间。静态特性与传递函数偏离直线的程度有关。本文将重点讨论静态特性,并阐述一种由输出频谱中观察到的谐波成分导出DAC传递函数的方法。分析中假设,传递函数而非瞬态输出特性是所观察到的谐波失真的主要来源。此假设在低频时成立。
  DAC传递函数
  图1显示一个理想的DAC传递函数,它是一条斜线,y=mx+b。数字输入位于x轴,模拟输出位于y轴。
图1. 理想的DAC传递函数。
  x轴上的目标范围是从左边的最小码(A)到右边的最大码(B)。y轴上的目标范围是从底部的最小输出值(C)到接近顶部的最大输出值(D)。定义理想传递函数的斜率(m)和y轴截距(b)的方程式用边界值A、B、C、D表示。信号g(t)代表一个无失真的正弦波,由A至B范围内的数字输入组成,时间轴向下。信号u(t)代表模拟输出,其值在C至D范围内,时间轴向右。
  输出信号是通过传递函数反射的输入信号。请注意,输出信号是将g(t)上各点链接到u(t)上相应点的结果。图1显示在特定时间点t=tk的传递操作例子,该时间点确定输入信号上的点g(tk)。传递函数进而将g(tk)链接到输出信号上的相应点u(tk)。对于理想的线性传递函数,u(t)与g(t)成比例关系。请注意,g(tk)对应于x轴上的点xk,它通过传递函数反射至y轴上的点yk。借助关于耦合点集(g(tn),u(tn))的已有知识,可以确定传递函数上的相关点(xn,yn)。因此,通过输入信号g(t)上的点与输出信号u(t)上的点之间的关系,完全可定义传递函数。
  对于N位DAC,边界值A和B取特定值,即A = 0且B = 2N–1。而为了方便起见,指定边界值C和D为C = A且D = B。这样意味实际DAC输出信号的比例和偏移,因而其峰峰值范围为0至2N–1。利用A、B、C、D的这些值,因为斜率m = 1且截距b = 0,所以理想传递函数可简化为y = x。
  到目前为止,讨论的重点还是理想的DAC传递函数,但现在我们有了可以处理失真DAC传递函数f(x)的工具,如图2所示。需要注意的主要特点是:传递函数不再是直线y = x,而是一个形状函数f(x);图中随意以平滑弧形来表示。f(x)对输出函数u(t)的影响也同样重要。理想输入g(t)通过传递函数f(x)反射,产生失真输出u(t)。与现成DAC的传递函数相比,图中所示的弧形传递函数较为夸张,仅为加强说明效果而已。现代DAC的传递函数与理想的直线几乎没有偏差,但即使最微小的偏差也会导致输出频谱中出现谐波杂散。
图2. 失真的DAC传递函数。
  能否成功重构DAC传递函数,取决于是否能通过已知的g(t)和u(t)确定各点(xk,f(xk))。这一过程分为两步:首先采用一个代表理想采样正弦波的数值序列驱动DAC输入,利用测量DAC输出,并记录基波信号和尽可能多谐波成分的幅值;然后将测得的谐波幅值转换为特定形状的传递函数。如果操作得当,将g(t)代入f(x)仿真u(t)将产生与测量结果相同的谐波失真值。
  第一步:测量DAC谐波
  第一步需要一个输入序列,用来代表一个以等距时间间隔采样的理想正弦波周期。目标是重构DAC传递函数,因此从0到2N–1的每个DAC码必须在输入信号中至少出现一次。输入序列需要2N以上的采样点才能以等距间隔使用每个DAC码,实际上至少需要2N+3个采样才能保证每个码都出现。下式可产生2K DAC码的理想正弦序列(K ≥ N+3)。函数round{x}将x舍入为最近的整数。
  其中n=0,1,2,3, ... 2K–1
  此方程式假设DAC将标准二进制格式的数字输入字解码为0至2N–1范围内的无符号整数。对于偏移二进制或二进制补码DAC,必须调整gn以表示负值。
  数值序列(gn)以采样速率fs重复提供给DAC,因此DAC输出频谱含有频率f0=fs/2k的基波信号。谐波出现在2f0、3f0、4f0和f0的其它整数倍。由于DAC输出频谱具有采样性质,因此这些谐波的幅度受sin(x)/x响应的限制。不过,f0与fs相比微不足道,因此sin(x)/x响应实际上是平坦的,可忽略不计。例如,对于一个8位DAC,K ≥ 11且f0 ≤ fs/次谐波的sin(x)/x将不超过0.39% (0.034 dB)。
  为了准确重构传递函数f(x),需要根据谐波数(h)集尽可能记录更多谐波的幅值。这些整数从h = 1(基波频率)至h=H,其中H表示取测量幅值的最高谐波数。例如,对于10次谐波的测量,H = 10,该谐波数集为h={1, 2, 3, .. 10}。
  然后,将各测量谐波的幅值(M)与其谐波数关联。例如,M1是1次谐波(基波)的幅值,M2是2次谐波的幅值,依此类推至MH。谐波幅值通常用相对于基波幅值的分贝数(dBc)来衡量。dBc转换为线性单位的公式如下:
  其中D表示测得的谐波幅值,单位为dBc。例如,如果3次谐波的幅值为–40 dBc,则线性幅值M3 = 10–40/20或0.01。M1始终等于1,因为根据定义,基波的幅值为0 dBc。
  第二步:重构DAC传递函数
  该过程的第二步涉及到将谐波测量结果与传递函数相关。f(x)上的点取决于g(t)和u(t)上对应点之间的关系,因此首先必须将频域中的谐波幅值转换到时域。请注意,组成g(t)的DAC码与g(t)正弦形式的相关时间点一一对应。因此,构成g(t)的DAC码与时域相关。此外,u(t)通过f(x)与g(t)相关,而g(t)是一个时域函数,因此u(t)也必须表示为时域函数。这样就能将g(t)中的各时间点tk链接到u(t)中的相关时间点,从而由g(t)和u(t)确定f(x)。
  将谐波幅值转换到时域非常困难,因为f(x)必须明确与g(t)中的各可能DAC码(0至2N–1)相关。g(t)是一个理想正弦波,因此确保唯一性的唯一方法是将范围限制在该正弦波单调增加的位置,如图3加粗部分所示。如果没有这一限制条件,f(x)上的一个点可能会映射到g(t)上的两个点,从而导致不明确。
  为演示这种不定性,请想象将区间T向下移动。现在,f(x)上的点(xk, fkxk))可以与g(t)上的两个点相关,这是不可接受的。将范围T限制在图中所示位置,将不存在不定性。g(t)为正弦波,因此所需范围T对应于½周期,其初始相位偏移为3π/2弧度。
图3. f(x)与g(t)之间的关系。
  g(t)的范围受T限制意味着u(t)也具有类似的范围限制。因此,将所记录的谐波幅值转换到时域时,必须确保将u(t)限制在与g(t)相同的范围T,如图4所示。
图4. g(t)和u(t)的时域范围。
  请注意,实际的时间范围T无关紧要,因为f(x)仅在g(t)和u(t)二者的幅值之间起转换作用。为简化分析,将基波频率(f0)归一化为1。因此,2次谐波的频率为2,3次谐波的频率为3,如此类推。所以,谐波频率与谐波数(h)相等:fh=h。这一便捷关系可简化从谐波测量结果Mh创建u(t)的数学计算。
  正弦波的一般时域表达式为:
  其中β为峰值振幅,θ为初始相位偏移。
  用h代替f,并用Mh代替β,可以获得各谐波uh(t)的时域表达式。不过应记住,g(t)偏移3π/2弧度。此外,g(t)与u(t)之间通过f(x)关联意味着g(t)和u(t)在相位上是对准的。用3π/2代替θ可提供所需的对准。下式中,请注意0 ≤ t & 1且π取代了2π,目的是将基波限制在范围T所表示的半个周期:
  利用各谐波uh(t)的时域表达式,便可以重构复合输出u(t),表示为基波和谐波信号的和:
  如前所述,我们的目标是将g(t)与u(t)相关以重构DAC传递函数f(x)。此外,g(t)必须恰好由2N个样本组成,以便与f(x)上的点一一对应。因此,g(t)的样本计算公式为:
  (n=0,1,2,3 .. 2N–1)
  g(t)由2N个样本组成,因此由包括2N个采样的u(t)采样值集重构f(x)似乎是合理的。然而,事实却是至少需要2N+3个采样才能为较小的Mh值提供适当的精度。这种情况下,u(t)各采样点的计算公式应如下:
  (n=0,1,2,3 .. 2N+3–1)
  请注意,这将导致u(t)所含的采样数多于g(t),u(t)的多个样本可能与f(x)和g(t)上的一个点对应,从而使u(t)和g(t)到f(x)的映射关系复杂化。因此,必须对特定的样本组求平均值,以便提供到f(x)的合理映射。下面的伪代码反映了所需的映射关系,其中假设使用一个N位DAC,g(t)有2N个点,u(t)有2N+3个点。阵列DacXfr含有2N个元素,初始值均为0。执行该代码后,阵列DacXfr的元素包含归一化的DAC传递函数。
  FOR i = 0 TO 2N–1
  AvgCnt = 0
  WHILE i = g[n]
  AvgCnt = AvgCnt + 1
  DacXfr[i] = DacXfr[i] + u[n]
  n = n + 1
  IF n &= 2N+3
  EXIT WHILE
  END IF
  END WHILE
  IF AvgCnt = 0
  EXIT (fail because array, g[ ], is missing a DAC e)
  END IF
  DacXfr[i] = (DacXfr[i]/AvgCnt)/2N
  END FOR
  为验证本文所述的方法,使用一台频谱分析仪来测量一个14位DAC的输出;该DAC由一个代表理想正弦波的输入序列驱动。记录了前14次谐波的幅值(2次到15次,单位dBc),并利用这些值重构DAC传递函数f(x)。然后,将理想正弦输入序列g(t)代入重构的DAC传递函数f(x)进行模拟,产生一个输出序列。一个FFT将u(t)转换为频域等效值U(ω)。从U(ω)提取谐波幅值,并将其与频谱分析仪的测量结果相比较,如表1所示。请注意,与7次谐波相关的最大误差仅为0.065 dB。
  由于比例关系,重构传递函数的图形呈现为一条直线(y = x)。事实上,该传递函数与y = x的偏差足以产生表1所示的谐波成分。为帮助理解,图5仅显示了该传递函数与理想直线的偏差。垂直轴的单位为LSB。
图5. DAC传递函数的残差。
浏览次数:约 4125 次
编辑次数:0次
最近更新:
创建者:ckadmin2010
京公网安备:09号
Copyright (C)
All Rights Reserved 版权所有

我要回帖

更多关于 一阶滤波器传递函数 的文章

 

随机推荐