首页 > 其他分享 >基于matlab的CQMFB单带滤波器设计仿真

基于matlab的CQMFB单带滤波器设计仿真

时间:2023-04-02 22:33:56浏览次数:42  
标签:滤波器 Gr 误差 高通 matlab N0 hlf 单带 CQMFB

1.算法描述

QMF

 

        在滤波器的某些附加条件下,与分析滤波器组和合成滤波器组相关联的变换是正交的。正态性意味着样品的能量在转换过程中保持不变。如果满足这些条件,滤波器具有以下显著特性:合成滤波器是分析滤波器的时间反转版本,高通滤波器是低通滤波器的调制版本,即,其中K是整数延迟。这种滤波器通常被称为正交镜滤波器(QMF)、共轭正交滤波器(CQF)或功率互补滤波器,因为两个低通(分别为高通)滤波器具有相同的频率响应,并且低通和高通滤波器的频率响应通过功率互补特性,适用于所有频率。滤波器h0(n)被视为原型滤波器,因为它自动确定其他三个滤波器。

 

  在滤波器的某些附加条件下,与分析滤波器组和合成滤波器组相关联的变换是正交的。正态性意味着样品的能量在转换过程中保持不变。如果满足这些条件,滤波器具有以下显著特性:合成滤波器是分析滤波器的时间反转版本,高通滤波器是低通滤波器的调制版本,即,其中K是整数延迟。这种滤波器通常被称为正交镜滤波器(QMF)、共轭正交滤波器(CQF)或功率互补滤波器,因为两个低通(分别为高通)滤波器具有相同的频率响应,并且低通和高通滤波器的频率响应通过功率互补特性,适用于所有频率。滤波器h0(n)被视为原型滤波器,因为它自动确定其他三个滤波器。

 

QMF 正交镜像滤波器和共轭QMF

 

 

 

 

最小相位:所有的零点都在单位圆内或者单位圆上最大相位:所有零点都在单位圆外

 

CQMFB

 

       滤波器组包括分析滤波器组和综合滤波器组。分析滤波器组将信号分成M个子带,对每个子带做M倍的抽取。综合滤波器组做M倍插值,得到和原信号相同的抽样率,实现信号的重建。

 

      当M=2时,分析滤波器组由一个低通滤波器和一个高通滤波器组成,把信号分成一个低通信号和一个高通信号。对于一个给定的信号,经过分析滤波器后,再进行抽取、编码、传输,可以通过零值内插、综合滤波器滤波、求和运算得到恢复和重建。重建后的信号与原始信号存在误差,误差来源包括:

 

混叠失真

抽取和内插产生的混叠和镜像带来的误差,导致分析滤波器组和综合滤波器组的频带不能完全分开。

幅度失真

由于分析和综合滤波器组的频带在通带内不是全通函数,其幅频特性波纹产生的误差。

相位失真

由滤波器相频特性的非线性所产生的误差。

量化失真

由编、解码产生的误差,与量化噪声相似,这类误差无法完全消除,只能设法减小。

3.完全重建QMFB的设计

 

选定W,对应不同的输入信号 ,改变的大小求出均方误差,通过比较得到最优的值;

固定N,对应不同的输入信号 ,改变的大小求出均方误差,通过比较得到最优的值。至此,找到了使得完全重建QMFB效果最好的参数和。

2.仿真效果预览

matlab2022a仿真结果如下:

 

 

 

 

 

 

 

 

 

 

3.MATLAB核心程序

 

% 由单带滤波器得到半带滤波器
for j=1:N+1
   tmp(2*j-1)=0.5*hsb(j);
   tmp(2*j)=0;
end
hlf=tmp(1:(2*N+1));
hlf(N+1)=hlf(N+1)+0.5;
 
wf=0:pi/N0:pi*(N0-1)/N0;
wff=0:0.5/N0:(N0-1)/N0/2;
a=1;
Gw= freqz(hlf,a,wf);
Ew=exp(i*2*N*wf/2);
Gr=Ew.*Gw;
% Gr 现在是零相位半带滤波器的频率特性,,其虚部应为零,实际上是滤波器的“增益”
mmax=max(real(Gr))
mmin=min(real(Gr))
 
subplot(222)
plot(wff,real(Gr));grid;
%title('half band filter HLF(z)')
 
% 获得“增益”恒正的半带滤波器, P+
hlf(N+1)=hlf(N+1)+abs(mmin);
p=hlf*0.5/(0.5+abs(mmin));
subplot(223)
stem(p,'.');grid;
%title('halfband filter p(n)');
 
Gw= freqz(p,a,wf);
Gr=Ew.*Gw;
subplot(224)
plot(wff,real(Gr));grid;
%title('halfband filter P(z)');
%save p.mat p;
%---------------------------------------------------------------------
% 谱分解部分,求出 h0(n);
l=2*N+1;
A=zeros(l,1);
A(1)=1;
A=A';
[Z,P,K]=tf2zp(p,A);
Z1=sort(Z)
ll=length(Z1)/2;
ZZ=Z1(1:ll);
temp=1;
for m=1:ll
    temp=(-ZZ(m))*temp;
end
if imag(temp)<0.0001
   temp=real(temp);
end
KK=sqrt(K/temp);
l2=length(ZZ);
PP=zeros(l2,1);
[h0,P1]=zp2tf(ZZ,PP,KK);
subplot(122)
zplane(h0,P1);
title('the zeros and poles after resolve') 
%-----------------------------------------------------------------------------
% 利用CQMFB四个滤波器之间的关系,得到 h1, g0, g1;
h1=qmf(h0,1);
g0=-wrev(h0);
g1=qmf(g0);
% 求出并画出分析滤波器组的对数幅频特性;
[H0,w]= freqz(h0,a,N0,Fs);
[H1,w]= freqz(h1,a,N0,Fs);
absH0=abs(H0);
absH1=abs(H1);
ah0=20*log10(absH0);
ah1=20*log10(absH1);

 

  

 

标签:滤波器,Gr,误差,高通,matlab,N0,hlf,单带,CQMFB
From: https://www.cnblogs.com/51matlab/p/17281601.html

相关文章

  • m基于最小生成树算法的无线传感器网络MCDS生成matlab仿真
    1.算法描述       一个有n个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有n个结点,并且有保持图连通的最少的边。最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。图的所有生成树中具有边上的权值之和最小的树称为图的最小生成树(Minimu......
  • m基于WOA优化的SVM乳腺癌细胞和正常细胞分类识别算法matlab仿真,对比BP网络,SVM,PSO+S
    1.算法描述       SVM是有监督的学习模型,我们需要事先对数据打上分类标签,通过求解最大分类间隔来求解二分类问题。如果要求解多分类问题,可以将多个二分类器组合起来形成一个多分类器。        WOA算法设计的既精妙又富有特色,它源于对自然界中座头鲸群体狩猎行......
  • matlab神经网络训练函数和性能函数
    Theresponseisderivedfromwebsearchresults.Hereisatablethatsummarizessomeoftheadvantages,disadvantagesandapplicationsofdifferenttrainingfunctionsandperformancefunctionsforneuralnetworks.训练函数性能函数优点缺点应用场合......
  • 下载并安装matlab2018
    欢迎来到我的友链小屋下载链接:链接:https://pan.baidu.com/s/1zo_8g0iqWxEwbNa9-FesFw 提取码:4r1w 百度网盘vip:在拼多多搜索百度网盘一天vip 安装流程:http://www.zhanshaoyi.com/8567.html......
  • MATH 455 matlab问题
    Spring2023,CMPSC/MATH455HomeworkAssignment#4ThehomeworkisdueApril3rd.Allquestionscarryequalweight.Pleasesubmitthecode(.mfiles)forproblems1and2onCanvas.1JoehaddecidedtobuystocksofaparticularlypromisingInternetcompany.......
  • 基于matlab的高精度信号峰值检测算法
    1.算法描述       峰值检验是示波表中数据采集方式之一,这种技术起源于存储深度不能满足捕获毛刺的需要。如果用模拟示波器去观察,只有当毛刺信号是重复性的并且和主信号同步时,才能看到毛刺信号。由于毛刺源于其他电路系统,所以这些毛刺只是偶尔发生,并且和主信号......
  • MATLAB代码:计及碳排放交易及多种需求响应的微网 虚拟电厂日前优化调度
    MATLAB代码:计及碳排放交易及多种需求响应的微网虚拟电厂日前优化调度关键词:碳排放交易需求响应空调负荷电动汽车微网虚拟电厂优化调度   参考文档:《计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型》参考其电动汽车模型以及可中断负荷部分;《StochasticAdap......
  • MATLAB代码:考虑多微网电能互补与需求响应的微网双层优化模型
    MATLAB代码:考虑多微网电能互补与需求响应的微网双层优化模型关键词:多微网电能互补需求响应双层优化 动态定价 能量管理参考文档:《自编文档》仿真平台:MATLAB+CPLEX主要内容:代码主要做的是考虑多微网电能互补共享的微网双层优化模型,同时优化配电网运营商的动态电价以及微......
  • MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型
    MATLAB代码:考虑P2G和碳捕集设备的热电联供综合能源系统优化调度模型关键词:碳捕集 综合能源系统电转气P2G热电联产低碳调度 参考文档:《ModelingandOptimizationofCombinedHeatandPowerwithPower-to-GasandCarbonCaptureSysteminIntegratedEnergySystem》......
  • 纯电动汽车Matlab Simulink软件模型,纯电动汽车动力性、经济性仿真模型
    纯电动汽车MatlabSimulink软件模型,纯电动汽车动力性、经济性仿真模型1.本模型基于MatlabSimulink搭建,包含:电池、电机、整车纵向动力学、控制策略、驾驶员等模块。2.模型搭建时参考了部分mathwork官方模型,但比官方模型更容易理解。同时输入数据采用m脚本文件编辑,更容易管理。......