哪些网站做免费送东西的广告6,有梦商城公司网站,建筑工程培训课程,千万不要报电子商务文章目录 前言一、迫零均衡器设计说明二、迫零均衡器MATLAB源代码1.函数说明2.代码实现3.辅助函数 前言
使用MATLAB实现迫零均衡器。给出完整的MATLAB设计源代码。 一、迫零均衡器设计说明
理想的迫零均衡器有无限多个抽头权系数#xff0c;是不能实现的#xff0c;本文考虑… 文章目录 前言一、迫零均衡器设计说明二、迫零均衡器MATLAB源代码1.函数说明2.代码实现3.辅助函数 前言
使用MATLAB实现迫零均衡器。给出完整的MATLAB设计源代码。 一、迫零均衡器设计说明
理想的迫零均衡器有无限多个抽头权系数是不能实现的本文考虑有2M1个抽头权系数的横向线性均衡滤波器。具体理论推导可以参考《现代数字信号处理》方面的书籍。
最小二乘法可用于求解形式为Hwδk0的超定线性方程组即H矩阵是一个矩形LN−1×N矩阵其中方程多于未知数LN-1N。 当H的列线性独立时迫零均衡器系数w的解是唯一的由下式给出 ZF均衡器的MSE可以写成
使MSE最小化的最佳延迟只是矩阵HH的最大对角元素的索引
下面给出这个例子的MATLAB源代码。
二、迫零均衡器MATLAB源代码
1.函数说明
【函数功能】 为给定的信道冲激响应h设计一个迫零均衡器w期望的均衡器长度为N均衡器延迟为delay。 同时返回均衡器误差err和最佳优化延迟optDelay该延迟对于设计的均衡器可能效果最好。 【参数说明】 h - 给定的信道冲激响应。 N - 期望的均衡器长度即抽头数。 辅助参数varargin - 均衡器延迟delay可选参数。 【返回值说明】 w - 所设计的迫零均衡器。 err - 均衡器误差。 optDelay - 最佳优化延迟该延迟对于设计的均衡器可能性能最好。
2.代码实现
function [w,err,optDelay] zf_equalizer(h,N,varargin)h h; % 信道冲激响应L length(h); % 信道冲激响应的长度H convMatrix(h,N); % 生成卷积矩阵% 基于MSE计算最优时延Hp inv(H*H)*H; % 求Moore Penrose伪逆[~,optDelay] max(diag(H*Hp)); % 基于MSE计算最优时延optDelay optDelay - 1; % MATLAB索引从1开始if nargin 2k0 optDelay;elseif nargin 3 % 第3个参数是设置的固定延迟delay varargin{1};if delay (LN-1)error(Too large delay!);endk0 delay; % 此时均衡器的延迟k0使用所设置的延迟elseerror(The number of actual parameters is incorrect.);endd zeros(NL-1,1);d(k01) 1; % 均衡器最优延迟的位置w Hp*d; % 最小二乘法解MSE 1 - d*H*Hp*d; % 均方误差err MSE;
end3.辅助函数
函数功能从大小为N的输入矩阵h构造大小为Np-1x p的卷积矩阵。 代码如下
function [H]convMatrix(h,p)h h(:).;col [h zeros(1,p-1)];row [h(1) zeros(1,p-1)];H toeplitz(col,row);
end