科学网

 找回密码
  注册

tag 标签: 频率响应

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

[转载]用多项式之比表达复值白噪声和系统频率响应
SciteJushi 2020-10-12 13:01
原载 http://blog.sina.com.cn/s/blog_729a9214010304b7.html 曾提到较直接地估计系统函数的分子和分母多项式系数,可借鉴frep2tf的成功处。不受那些应用所限,面向宽泛背景,本短文演示些基础测试。居士做了拟合函数子程序PdnLinFit存入TexpSubs.bin归并极点模型处理,其第二个输入是待处理的数据序列,相对应的多项式自变量值由第一个输入给定,它们可以都为实数;第三个输入有两个元素,分别指定分母和分子的阶次(阶数),相等时可以损去后一个数;仅当第四个输入为字符cc时,才允许在需要时用复系数(分两段简称之为分子系数、分母系数)多项式。其内不限变元物理意义,不做尺度伸缩、复频率或角频率等转换,设这些复合于输入里以定输出的意义;拟定分母没有根为零,但不预备插值或外推或者作传函时系统的稳定性。 测验程序PdnFitNtf.sce如图片1.所示。主体MorFr2tf有外内两重for循环,分别指定复值白噪声序列y的长度N取值和噪声试验的序号。高斯噪声y的实部和虚部都用函数rand直接生成后乘以增益因子K0。K0为-6至6之间均匀分布随机数的exp值,约可跨 。多项式自变量值x初始定为exp((%i*2*%pi/N)*(0:(N-1))),但是,内循环里读取一个正态随机数,当且仅当它大于理想均值时,先对x做复共轭运算改变指数的符号。每次用均匀分布随机序列的元素排序,确定数据及其自变量的实际重排输入。分母和分子的阶次都在 上随机取值,而总和为N-1不变。这组拟合测试允许复系数。把得到的多项式,作为Scilab的horner的输入,计算函数值z。计算z与原y之间的相对误差(范数比;用“伪”随机数,常假设除数不为零),记入误差矩阵NR0,矩阵的行和列号即为内和外层for循环指针。 把y叠加上它自身的保持零位点在首而其余倒序的复共轭序列。直接使用前面复系数时的分子和分母阶次。只截取这个新y和前面x的开始部分,用于计算实系数复变元多项式。取用数据的长度,是随机的但多于一半。计算新z,把它与全长y之间的相对误差,记入矩阵NR1。 按frep2tf帮助文档中的10维状态空间随机系统的例子,生成频率响应在其固定的等对数间隔频率点的值。把频率响应乘以上述K0得y2,然后用于PdnLinFit求分母和分子,其中输入的分母和分子阶数为10、9与分别随机抽取的0、1或2之和,不强迫分子比分母有更低阶次。令其结果作为连续时间系统传函,输给repfreq计算频率响应z2,把z2与y2的相对误差,记入矩阵NR2。 最后用三行显示三个误差矩阵元素的最小值、均值、标准差、最大值。结果如图片1.的右上角所示,显示了很小的误差(一般大于10的负15次方;用6.0.0类似),如可逆变换似地表达了白噪声。测验了噪声序列的36种长度值,1、2、3、4,5、8、11......95、98,各做了50次。 正态随机变量,实际取值附近的概率密度不比理想均值0处大,但零概率奇迹一个接一个发生了序列。“有”就才是奇迹。程序中备用1代替等于0的除数的语句,被注释符关闭了,其条件检测和赋值等本不算增加负担;序列短至单点,也未现错误。误差矩阵未显非数字的符号。不限定随机数种子,反复运行程序多次,也还未见repfreq处理随机系统时遇被零除。 有人担心或不喜欢平常多项式的疯狂增长或它们曲线族的张牙舞爪时,可试把物理变量先复合到更显灵秀的无阻尼复指数函数系中;“Fourier”极广布于人类现代科技文献中,数字化深刻地改变人类社会,这些或添鼓励。在第一和二部分测试中,固定选有理整式的形式,限分母为零阶多项式吸收与N有关的常数因子,可以比较DFT和IDFT以及分子的N个系数。低阶拟合应用中抗白噪声的能力,有赖于数据相对于模型自由度的冗余度,希望待定参数尽量少,可丢掉次要的东西。 此所谓零阶多项式,仍包括任意复数,即使它限于分子时恒等于真0。但是,6.1.0版degree已对0例如形式上求得10的-330次方,特约输出为负无穷大,与旧版本不同了,好在coeff和horner更兼容。居士感觉用“阶次”特顺(用传函、频响等简称时类似,但不确定起因),也笼统地指阶数或次数。沿初等代数的习惯,宜用“次”(相乘的次数,用一个“文字”或“符号”),但所谓的首项系数不能为零,零多项式的次数没有意义它不同于零次多项式,这样“次”偏重言某个多项式或部分。很多情形要涉及阶,例如函数的n阶泰勒多项式、方阵的阶及其特征多项式、微分方程中求导的次数、线性系统的多阶极点等。居士认为,就建模处理而言,“阶”偏重指容许的多项式集里的最高次数,一种形式设定或界限或者期望的表达“度”,视次数更低的多项式只不过是较高次项系数为零而已,负无穷界于整数有限值以下也就可行了。 有时不同运行方式或载入途径或者其它任务忙等可能引起微差别,有点像曾提过的eps和FFT那样,但居士未见bin文件包方式及其环境有大碍。 新浪赛特居士SciteJushi-2020-10-12。 图片1.测验多项式之比表达白噪声和系统频响
2350 次阅读|22 个评论
[转载]频响对称性与功率平衡性之间的数字误差和修整
SciteJushi 2016-7-10 09:02
原载 http://blog.sina.com.cn/s/blog_729a92140102wg6n.html 从小波分析的经典名著“十讲”,便可知离散小波变换中的滤波器系统,具有功率(或者说能量,power)平衡补偿特性,例如,正交小波变换的FIR尺度滤波器的频响函数的模平方(对被处理信号中相应频率成分的能量或功率的乘因子),及其半周期移位的结果(对应于高通滤波器的功率分布),相叠加后,恒等于常数(常表示为2或1)。常可以此为依据,预估变换精度以及重建时的基本误差。 依据傅立叶变换的基本性质,欲让滤波器的冲激响应为实数序列时,也就必须要求其频率响应函数,具有共轭对称性。用调制或频谱搬移的方式产生复系数滤波器时,也可利用这一特点,重点考察对称中心点的移动。 上述两方面,在理论上可以一致、同时得到满足,然而在数字滤波系统的设计和运算中,它们之间一般存在误差。例如,几年前的博文,在讨论FIR尺度滤波器的增益与数字序列范数之间的一致性的误差时,就曾使用了所谓的能量误差。直接用频响的函数式的采样值,或者,利用共轭对称性从已知的半周期数据直接填补上其余部分,这两种数字处理过程,都不显式地利用功率补偿性。过渡带越陡峭,就越近乎“不连续”函数,对采样等处理的精度要求也更高。正交镜像处理,在时域或频域都可以进行,但可能由于FFTW的计算策略,引入些误差。在维持应用对幅频响应的其它需求的前提之下,使其尽量满足功率平衡补偿条件,这可能提高离散变换的重建精度。 本短文考察,无级变宽余弦镶边频响的4个函数子程序方案: PfCosrim,曾见于博文《用小波包变换检验无级变宽余弦镶边频响》(2015-08-14),输出直流增益为1的时域序列。 FPfCosrim,曾用于《给实变换中无级变阶或变宽镶边频响附加噪声化相谱》(2016-01-15),它与PfCosrim都强迫,频域采样的数字序列具备偶对称性。 FsPfCosrim,在PfCosrim的基础之上,允许有第4个输入,以指定频响函数的平移量。它计算整个周期内的频率点,然后把它们代入频响函数,不特别计较采得的数字序列的偶对称性或功率补偿性。 FspcPfCosrim,强迫离散频谱序列满足功率平衡补偿条件,然而不检验数字序列的偶对称性。 用大写字母F开头命名的3个函数,有两个输出,都为周期化滤波器的频谱序列 , 未经过逆傅立叶变换。第一个输出,对应低通滤波器(当输入频移为零时);第二个,对应高通滤波器,由直接在频域实现正交镜像处理而得,不再是空矩阵。增益,已是标准化的。 图片1.的右半部,显示了将这4个函数子程序用于离散小波包变换的测验程序PwpRandFsPfCosrim.m。依阶次从低至高,辅助多项式的序号,为1至12。频率响应的平顶宽度比值,从区间(0,0.98)上随机抽取。频谱的搬移的量,可从区间(-pi,pi)上随机无级取值。 从标准正太分布随机数的发生器,读取一个数值,如果它大于零,那么就把字母F开头命名的函数的第二个输出F1,直接视为“尺度滤波器”的频谱序列F0,替换掉第一个输出。 再给F0添加一重噪声化相位谱序列后,用IFFT把它变换到时域。既然用噪声作相频响应序列,也就不必如Matlab的函数fftshift或ifftshift那样计较时间零点。不局限于普通双通道QMF的视角,以免纠缠于Z变换域、与被处理信号或FIR滤波器的长度或IIR有关的特别时延、与相位频率响应有关的失真等。 紧接着,又从标准正太分布随机数的发生器,读取一个数值,如果它大于零,那么,就对已附有噪声化相位谱的滤波器时域序列,再做复共轭运算。 然后,把经上述处理的尺度滤波器序列F0,用于随机设置和尺度独立地噪声化相位谱的复小波包变换,考察双向重建误差和双向保内误差。这部分,与博文《用小波包变换测验FIR尺度滤波器频响的随机无级搬移》(2016-06-25)中的那些源代码,相同(尽管不再需F1),其实质内容已在过去博文中重复了很多次。 在图片1.的左上角的命令窗内,运行 =PwpRandFsPfCosrim(256,1,88,k)。其中,输入量k,是4个频响处理函数子程序的序号;88,是初始化随机数发生器的种子;输入值,1,是分解深度值的下限;256,是测试信号长度的最大编号;Er2,是输出双向保内误差的数据矩阵,有12行256列;Er1,是对应的双向重建误差矩阵。把测验4个子程序时的输出结果(Er1加上Er2),依次组合到有48行256列的矩阵中,最后用曲线图集中显示,如图片1.的左下部所示。 误差曲线族,在横轴点12、24、36附近,呈现了形状相似的可以高过10的负12次方的尖峰。然而,在横轴点40以后的区段里,一直没有第4个这种高峰,误差集中于10的负14次方的水平。 图片2.左上部的命令窗中的代码,检验了,用Matlab的IFFT函数求得时域尺度滤波器序列后,各自的虚部值,并比较了它们之间的误差(范数比)。用PfCosrim、FPfCosrim时,都可以直接得虚部“真正为0”的结果。由FsPfCosrim、FspcFPfCosrim生成的时域序列,相对于PfCosrim的输出的误差,以及其虚部偏离0值的程度,都可能因辅助多项式阶次增高而明显增大。 受到在修整FIR时的幅相加长迭代重组方法的鼓励,可以考虑:在频谱搬移量为0时,直接抛弃由FspcFPfCosrim生成的时域序列的虚部,这就相当于迫使频响又具有了对称性,那么,也就实现了保护好了滤波器基本属性的有益的修整吗?抛弃虚部,这会使离散变换的重建误差又显著攀升吗? 图片2.的右半部,显示了一个测验程序mlt_DWT_PcPf.m。第23行之前的可以执行的语句,与今年初测验FPfCosrim等的源程序mlt_DWT_FPf.m中的对应部分相同。第23至第28行,调用FPfCosrim、FsPfCosrim或FspcPfCosrim生成低通滤波器的频域序列F0,对应的滤波器序列编号,分别为1至60、61至120、121至180的三个部分。利用滤波器编号(减1)除以12的余数(加1),指定12个不同阶次的辅助多项式。平顶宽度比例参数,在区间(0,0.98)上随机取值。频移量,多为零,少数为pi乘以2、-2、4 、-4 等小偶数。 在第29行,给F0附加上噪声化相位谱序列后,用IFFT把它变换到时域,再抛弃其虚部,仅把其实部序列,视为普通离散正交小波变换中的FIR尺度滤波器序列。这以后的语句,利用Matlab小波工具箱的函数orthfilt、wavedec和waverec,测验双向重建误差。 图片2.的右上角,是512条误差曲线。在横轴的前三分之二区段内,有10个形状相似的高过了10的负12次方的尖峰;然而,在最后三分之一区段内,没有这种误差明显增大的状况。 新浪赛特居士SciteJushi-2016-07-10 。 图片 1.用Tpwp小波包变换试验频移及功率补偿修整的程序和结果 图片 2.用Matlab实小波变换试验功率补偿修整的程序和结果
818 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-28 14:27

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部