【SoCVisa】Noble Identities.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Noble Identity Noble Identity 是多采样率系统中最为常用的,用于将抽取器(或插值器)移动到合适的位置。如下图,以抽取器和FIR滤波器为例,证明一下Nobel变换的等价性,至于其他的情况可以类似得证。 假设FIR滤波器H(z)为 则H(z^M)为 先滤波再抽取 对x(n)用H(z^M)滤波后得到的中间值t(n)为 再对t(n)进行M阶减采样,得 先抽取再滤波 对x(n)先进行M阶抽取得w(n)为 再对w(n)用H(z)滤波 ---------------------------------------------------- 比较y_1和y_2两个输出序列,完全一样,问题得证。 %H(z)=1+2z^(-1)+3z^(-2)+4z^(-3) clear all clc t=1:0.2:10; x=2*sin(t)./t; %---------------------先滤波后抽取 b1=[1 0 2 0 3 0 4]; a1=[1 0 0 0 0 0 0]; y1=filter(b1,a1,x); y1=y1(2:2:end); %---------------------先抽取再滤波 b2=[1 2 3 4]; a2=[1 0 0 0]; x=x(2:2:end); y2=filter(b2,a2,x); %---------------------比较两个输出 subplot(2,1,1); stem(y1);title(y1); subplot(2,1,2); stem(y2);title(y2); 抽取器的多相实现: 图一、系统框图 上图是一个典型抗混叠抽取的系统。输入x(n)数据量很多,而抽取后的输出y(n)却要少得多,如果直接采用上图的结构,H(z)所需的计算量将是非常大的。 图二、直接实现 这是直接实现,所需乘法次数是 x(n)输入频率的N倍,加法次数是x(n)输入频率的N-1倍。 图三、多相实现 这是低功耗的多相实现形式,与直接形式的区别是,将抽取器移动到每一个乘法器之前。 证明:假设H(z)为FIR形式, 首先看看直接形式中,x(n)经过H(z)滤波后的结果w(n),如下 对w(n)进行M阶抽取得到y1(n)为 也就是 y1(n)就是直接实现所得到的结果。下面再证明,其实y1(n)可以用多相结构实现,问题就解决了。 仔细观察y1(n)的表达式,与b0相乘的只能是x(nM),x(nM)是什么?x(nM)就是x(n)的M阶抽取啊,也就是 同样的道理,与b1相乘的只能是x(nM-1),而x(nM-1)正好是x(n-1)的M阶抽取,也可以说成x(n)延迟一个单元后的M阶抽取 其他单元也是这个道理,看最后一项,与bN-1相乘的只能是x(nM-(N-1)),也就是x(n)延时N-1个单元后进行M阶抽取,如下图 这就是多相结构的来源了。。 Matlab 验证 clear all clc %原始24阶fir b =[0.8147 0.9058 0.1270 0.9134 0.6324 0.0975 0.2785 0.5469 0.9575 0.9649 0.1576 0.9706 0.9572 0.4854 0.8003 0.1419 0.4218 0.9157 0.7922 0.9595 0.6557 0.0357 0.8491 0.9340]; %输入随机信号,3000点 x = rand(1,3000); %延时x为24路 %取Q个点来观察,Q3000/6=500 Q=30; xd = zeros(24,Q); for k=1:24 t = x(k:6:end); xd(25-k,:) = t(1:Q);% 取450个点来观察即可 end w = repmat(b,1,Q).*xd; y2 = sum(w); %原始滤波再抽取的结果 y1 = filter(b,[1,zeros(1,23)],x); y1 = y1(24:6:end); y1 = y1(1:Q); subplot(2,1,1);stem(y1);title(y1); subplot(2,1,2);stem(y2);title(y2); disp(max(abs(y1-y2))) 结果:y1为直接实现;y2为多相实现 比较两个序列误差为 3.5527e-015,,,其实可以认为y1和

文档评论(0)

lanhe8975915 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档