电子科技大学数字信号处理DSP课程设计自适应均衡器.docVIP

  • 8
  • 0
  • 约5.14千字
  • 约 11页
  • 2017-09-02 发布于浙江
  • 举报

电子科技大学数字信号处理DSP课程设计自适应均衡器.doc

电子科技大学数字信号处理DSP课程设计自适应均衡器

2014级数字信号处理课程设计报告 题目:自适应均衡器 姓名:邱晨曦 :时间:/12/12 1. 题目要求: (1)输入一段字符串,进行编码()将编码后的信号通过一个信道(高斯白噪声和) (2)设计一个自适应滤波器来接信号 (3)译码,结果。 编码、调制与解调、白噪声、码间串扰变步长比特流 直接采用根据编码的0比特流传输; 比特流进行调制,如何再传输。 序列最后译码的时候性能更强,因为译码采用的是门限的方法。 按照PPT上的举例采用二阶的码间串扰; 的码间串扰,并且的系数时变的; ,1可能误码率要低一些,但是方法接近实际情况一些,因此选择方法 C. LMS算法部分 固定步长 其中,步长因子固定的常数自适应的有什么影响呢?我们先观察步长因子的误码率曲线图: 从这个图中至少可以得到一个结论:采用不同的步长因子,自适应滤波器的性能也会随之而改变。那究竟步长因子是如何影响滤波器特性的呢?再回到LMS算法的数学公式当中。其中步长因子仅出现在更新系数的表达式中: 从表达式中可以看出,步长因子越大,则每次更新的变化量就越大;步长因子越小,则每次更新的变化量就越小。可以想象,当自适应滤波器达到“适应”的时候,其误差越来越小,那么抽头系数的修正量就也应该越来越小,也就是抽头系数达到相对“稳定”的状态,也就是“收敛”。因此,可以研究不同步长因子取不同值的情况下,自适应滤波器的收敛特性是怎样的? 从上面两个图中可以得到下面结论:步长因子越小,自适应滤波器的收敛速度就越小,但是收敛以后的变化也越小;步长因子越大,自适应滤波器的收敛速度就越大,但是收敛后的稳态误差也就更大。 也就是说,在固定步长LMS算法下,收敛速度和稳态误差是处于“鱼和熊掌不可兼得”的关系。要想鱼和熊掌同时兼得的话,就得采用其它的一些办法。变步长LMS算法便应运而生。变步长的 变步长的的基本思想就: 基于sigmoid函数的变步长LMS算法,称为SVSLMS算法,其变步长是e(n)的sigmoid函数:. 该算法能满足步长变化的要求,但是在算法收敛阶段,误差接近零时步长变化较大。 通过观察sigmoid函数发现,sigmoid函数的变形是偶函数,而偶函数与偶函数相乘仍是偶函数,另外,由于在稳态阶段sigmoid函数步长变化较大,因此采用2个sigmoid函数的乘积,相比sigmoid函数,误差相同时,能够获取更小的步长因子,使算法在误差很小时步长变化缓慢,降低稳态误差。建立了步长和误差之间的关系: 式中:是控制函数取值范围的常数,、、是控制函数形状的常数。 通过下图,我们能够更直观地看出该算法与的区别: 看出:在自变量为附近,函数值更加平稳。 改变系数、、的,使得滤波器处于最佳的性能分析分析。例如: 根据图像可以看出取,滤波器收敛特性达到最佳。 ,通过分析知道的是步长因子的取值范围,保证取太大导致发散就可以了从下图可以看出发散的情况: 显然取0.09时就会导致发散,所以最终 在控制好取值情况下,只要保证不发散就可以了,、、影响的都是步长因子函数的形状测试,系数取值为 从误码率结果分析更能证明该算法要优于 比特流长度为200000bit,可以看出该算法误码率要低一些。因为自适应滤波器可能在前几百bit就已经收敛,所以虽然误码率低一些,但低的不是很多,可以想象在比特流长度较短时,该算法的收敛性能就更能得到体现。 另外,该函数在追踪性能上也要优于固定步长以及SVSLMS算法,可以在工程上得到应用。,变步长的性能要优于固定步长的算法 期望得到的序列选择 中,期望得到的序列出来的序列;我认为这里有个缺点就是:当上一个判决错误以后接下来抽头系数的更新也会受到影响。 ,我认为应用的时候可以采用方法:更新的时候发送方和接收方都知晓的序列也就是说发送方和接收方先预先设定好一段序列专门用于更新系数,在环境发生巨大变化时,可以再次更新,当信道没有发生变化时,可以直接连续不断发送消息信号。 就可以避免序列判决错误带来的不利影响。输入的字符串依据成序列,将转换成; 好的消息信号一个带有高斯白噪声和码间串扰的信道,为; 发送已知的段更新自适应滤波器的参数,然后噪声的消息信号通过自适应滤波器来接收; 接收到的进行判决,判决门限为 将-1、1的序列转换成1序列,并根据来进行解码; 结果。部分缺省 主函数部分:clear all; clc; str=input(请输入发送的内容:,s); %读取输入的内容 x=abs(str); %根据ASCII码表转换成十进制数据 x=dec2bin(x,7); %十进制转换成二进制,每个十进制数据转换成7位的二进制数据 N=size(x,1); %获取字符个数 for i=1:N y(i,:)=x(i,:)-0;

文档评论(0)

1亿VIP精品文档

相关文档