M序列测量幅频特性

news2024/11/27 8:29:24

M序列

  M 序列是一种伪随机序列,具有很好的伪噪声特性,常用于信道噪声测试和保密通信。不过 M 序列还有一个用途,也就是本文所介绍的——通过 M 序列测量频率响应。在讨论这个问题之前,我们先介绍 M 序列的特征与生成方法。

  M 序列通过 N 阶线性反馈移存器生成,其周期为 2 N − 1 2^N-1 2N1

在这里插入图片描述

如上图所示,反馈到最左端的信号为
a n = ∑ i = 1 n c i a n − i   ( m o d   2 ) a_n=\sum_{i=1}^{n}c_ia_{n-i}\ (mod\ 2) an=i=1nciani (mod 2)
经过 k k k 次移位后的输出为
a k = ∑ i = 1 n c i a k − i   ( m o d   2 ) a_k=\sum_{i=1}^{n}c_ia_{k-i}\ (mod\ 2) ak=i=1nciaki (mod 2)
  用特征多项式表示反馈的连接状态
f ( x ) = c n x n + c n − 1 x n − 1 + ⋯ + c 1 x + c 0 = ∑ i = 0 n c i x i f(x)=c_nx_n+c_{n-1}x^{n-1}+\dots+c_1x+c_0=\sum_{i=0}^nc_ix^i f(x)=cnxn+cn1xn1++c1x+c0=i=0ncixi
由于连接状态中, c 0 、 c n c_0、c_n c0cn 均为 1,因此特征多项式必然包含 x n + 1 x^n+1 xn+1 ,特征多项式的次数 n 即是移存器的级数。

  输出序列用多项式表示(母函数)
G ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ = ∑ i = 0 ∞ a i x i G(x)=a_0+a_1x+a_2x^2+\cdots=\sum_{i=0}^\infin a_ix^i G(x)=a0+a1x+a2x2+=i=0aixi
本原多项式:若一个多项式满足:1. f ( x ) f(x) f(x) 是既约的;2. f ( x ) f(x) f(x) 可以整除 2 m + 1 2^m+1 2m+1 m = 2 n − 1 m=2^n-1 m=2n1 ;3. f ( x ) f(x) f(x) 除不尽 2 q + 1 2^q+1 2q+1 q < m q<m q<m ;则称该多项式为本原多项式。

  当特征多项式为本原多项式时,反馈移存器的输出序列为 M 序列。

matlab 实现

% M 序列生成器
% @mg: M序列
% @f : 本原多项式
% a(k)=mod(sum_1^n(c(i)*a(k-i)),2)
function mg=m_generator(f)
    f=dec2bin(f)-'0';
    n=length(f)-1;    %M序列阶数
    N=2^n-1;          %伪随机码的周期
    register=[zeros(1,n-1),1];
    newregister=zeros(1,n);
    mg=zeros(1,N);
    f_inv=f(end-1:-1:1);
    for i=1:N
        newregister(1)=mod(sum(f_inv.*register),2);
        newregister(2:n)=register(1:n-1);
        register=newregister;
        mg(i)=register(n);
    end
end
% 测试
clc,clear,close all

N=10;   % N级反馈移存器,需要N-1阶本原多项式
L=2^N-1;
F=primpoly(N,'all'); %显示该阶数下的全部本原多项式

mg=m_generator(F(1)); %使用一个本原多项式生成m序列

M序列测量滤波器频率响应

  通常测量某一系统的幅频响应,是通过扫频来完成的,然而需要时间较长,还需要实现 DDS,比较复杂。而考虑到 m 序列具有白谱,因此测量经过滤波器后的 m 序列的值,并做 DFT,即可获知滤波器的幅频特性。

  假设生成 10 阶 M 序列(1023 点),以 256 k H z 256kHz 256kHz 的比特速率发送该序列,经过滤波器后,以同样的采样率用 ADC 采样,则频率分辨率为 256 k H z / 1023 = ∼ 250 H z 256kHz/1023=\sim 250Hz 256kHz/1023=∼250Hz

%---------m序列--------
clc,clear,close all

N=10;   % N级反馈移存器,需要N-1阶本原多项式
L=2^N-1;
F=primpoly(N,'all'); %显示该阶数下的全部本原多项式

mg=m_generator(F(1))'*2-1;

%% m序列幅频特性
fs=256e3;
freq=fs*(0:(L/2))/L;

mg_fft=fft(mg)/L*2;
plot(freq/1e3,abs(mg_fft(1:floor(L/2)+1)))  %幅频显示为白谱
xlabel('f/kHz')

%% 滤波
mg2=smooth(mg);

mg2_fft=fft(mg2)/L*2;
figure
plot(freq/1e3,abs(mg2_fft(1:floor(L/2)+1))) %滤波器幅频特性曲线
xlabel('f/kHz')

测试中使用了平滑滤波器,测得的滤波器频率响应如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

活力二八:CRM助力销售管理再现“浓缩”新活力

活力28、沙市日化&#xff01; 央视段子手朱广权再次喊出这句口号时&#xff0c;迅速激活了人们心中对于曾经“日化一哥”的记忆。 作为市场占率曾超 70% 的家清品牌&#xff0c;活力二八业务始于1950年&#xff0c;前身为沙市油脂化工厂&#xff0c;伴随中国改革开放大潮&…

第十一章_SpringBoot集成Redis

总体概述 redisTemplate-jedis-lettuce-redission之间的的联系 1、redisTemplate是基于某个具体实现的再封装&#xff0c;比如说springBoot1.x时&#xff0c;具体实现是jedis&#xff1b;而到了springBoot2.x时&#xff0c;具体实现变成了lettuce。封装的好处就是隐藏了具体的…

大家都在用的视频音频提取器,免费用!

随着互联网的日益普及&#xff0c;人们可以通过多种方式获取和分享媒体内容&#xff0c;例如通过社交媒体、视频共享网站等。但是&#xff0c;在处理媒体文件时&#xff0c;提取其中的音频或视频仍然是一个挑战。这就是为什么越来越多的人都在使用免费的视频音频提取器。 这些…

Node框架 【Koa】介绍、安装以及使用

文章目录 &#x1f31f;前言&#x1f31f;介绍&#x1f31f;koa优势&#x1f31f;洋葱模型&#x1f31f;安装&#x1f31f;具体步骤&#xff1a;&#x1f31f;创建项目目录&#x1f31f;初始化项目&#x1f31f;进入目录,安装koa &#x1f31f;使用&#x1f31f;案例&#x1f3…

C++STL详解(十一)-- 位图(bitset)

文章目录 位图的介绍位图的引入位图的概念位图的应用 位图的使用位图的定义位图的成员函数位图运算符的使用 位图的模拟实现成员函数构造函数set reset testflip,size,countnone,any,all 位图应用题扩展位图模拟实现代码 位图的介绍 位图的引入 有一道面试题: 给40亿个不重复…

QFIELD-GIS工具 定位功能使用方法

一、 简介 定位是一款GIS APP重要功能&#xff0c;可以帮助我们快速在地图上找到现在所处的位置。结合地图我们就可以快速了解我们所处环境的情况。同时可以利用APP的信息标注采集功能采集当前位置的信息到数据库中。 下面我们来介绍【QFIELD-GIS】如何进行GPS定位、如何…

平衡二叉树的实现(包含旋转)

平衡二叉树是子啊二叉排序树的基础上建立的&#xff0c;他的概念就是这棵树中的任意节点的平衡因子都必须要大于1或是小于-1。平衡因子就是这个节点的左子树高度减右子树高度所得到的差。那么&#xff0c;它有什么优点呢&#xff1f;为什要在二叉排序树的基础上来建立这个平衡二…

语音芯片排行榜,为何唯创知音WT588F语音芯片如此受欢迎

随着智能家居、智能玩具、智能机器人等领域的快速发展&#xff0c;语音芯片逐渐成为智能硬件的重要组成部分。在众多语音芯片中&#xff0c;唯创知音WT588F语音芯片备受关注&#xff0c;成为市场上备受欢迎的产品。那么&#xff0c;WT588F语音芯片具备哪些功能&#xff0c;为何…

您的云,您做主:Google Distributed Cloud Hosted 全面可用

近日&#xff0c;谷歌宣布Google 分布式云(GDC) 托管的全面可用性来扩展该产品组合&#xff0c;它支持具有最严格要求的客户的需求&#xff0c;包括机密、受限和绝密数据。 GDC Hosted 包括部署、操作、扩展和保护完整托管云所需的硬件、软件、本地控制平面和操作工具。此外&…

【高危】MySQL Server拒绝服务漏洞(CVE-2023-21912)

漏洞描述 MySQL是Oracle开源的关系型数据库管理系统。 MySQL Server 受影响版本存在拒绝服务漏洞&#xff0c;攻击者者无需身份验证可发送连接数据包导致MySQL Server 崩溃拒绝服务。官方未公布相关细节&#xff0c;可能由于对客户端设置字符集的处理不当&#xff0c;当客户端…

关于倾斜摄影超大场景的三维模型轻量化中的数据质量优化方法浅析

关于倾斜摄影超大场景的三维模型轻量化中的数据质量优化方法浅析 倾斜摄影超大场景的三维模型轻量化处理需要兼顾数据大小和渲染性能&#xff0c;同时保证模型的准确性和真实感。为了提高轻量化质量&#xff0c;可以从以下方面入手&#xff1a; 1、选择合适的轻量化算法和参数…

OpenCV实战5 车牌号识别

原文在这里&#xff0c;参考这个进行了改进 感觉学到了很多东西&#xff0c;便在这里作下笔记。 效果&#xff1a; 目录 一、知识点学习&#xff1a; 1. fstream 2. 形态学开操作与形态闭操作 2.1 第一个角度:消除较小的联通区域 vs 弥合较小的联通区域 2.2 第二个角度&…

【LeetCode】222.完全二叉树的节点数

1.问题 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层节点数都达到最大值&#xff0c;并且最下面一层的节点都集中在该层最左边的若干位…

【MySQL】存放页面的大池子——InnoDB的表空间

1 前置知识回顾 1.1 页面类型 InnoDB是以页为单位管理存储空间的。我们的聚簇索引&#xff08;也就是完整的表数据&#xff09;和其他的二级索引都是以B树的形式保存到表空间中&#xff0c;而B树中的节点就是数据页&#xff0c;这个数据页的类型名其实是 FIL_PAGE_INDEX。 除…

JS手撕代码系列【手写实现Promise.all】

Promise.all() 方法接收一个 Promise 对象数组作为参数&#xff0c;返回一个新的 Promise 对象。该 Promise 对象在所有的 Promise 对象都成功时才会成功&#xff0c;其中一个 Promise 对象失败时&#xff0c;则该 Promise 对象立即失败。 本篇博客将手写实现 Promise.all() 方…

初始 Ajax

文章目录 一、服务器的基本概念1、客户端与服务器2、url地址3、客户端与服务器的通信过程4、服务器对外提供资源5、资源的请求方式 二、初始 Ajax1、了解Ajax2、JQuery中的Ajax&#xff08;1&#xff09;$.get()函数的用法&#xff08;2&#xff09;$.post()函数的语法&#xf…

国民技术N32G430开发笔记(7)- Gpio EXTI中断的使用

GPIO EXTI中断的使用 1、N32G430C8L7_STB板卡带有三个用户按键&#xff0c;我们初始化key1 key2 按键&#xff0c;当按键按下时&#xff0c;在中断处理函数里输出我们的打印信息。 2、根据芯片手册上N32G430C8L7有24 条中断线&#xff0c;16条分配给GPIO使用&#xff0c;其余八…

中国移动发布COCA软硬一体片上计算架构,引领云计算市场下一个黄金十年

当前&#xff0c;数字经济发展已经成为改变全球竞争格局的关键力量&#xff0c;随着算力成为数字经济新引擎&#xff0c;算力规模持续增长&#xff0c;算力结构发生改变。主动拥抱智算浪潮&#xff0c;持续输出优质算力支撑数字中国建设&#xff0c;适配泛在化、异构化算力推动…

JavaWeb之过滤器Filter(通俗易懂版)

今天开发遇到了&#xff0c;简单记录一下&#xff01; 简介&#xff1a;Filter是JavaWeb三大组件之一&#xff08;Servlet程序、Listener监听器、Filter过滤器&#xff09; 作用&#xff1a;既可以对请求进行拦截&#xff0c;也可以对响应进行处理。 1、Filter中的三个方法 …

【无标题】c++异常机制的一些总结以及思考

在谈及c处理异常机制的方法之前我们不妨来回顾一下c语言是如何应对这块的。 终止程序&#xff0c;如assert&#xff0c;缺陷&#xff1a;用户难以接受。如发生内存错误&#xff0c;除0错误时就会终止程序。 返回错误码&#xff0c;缺陷&#xff1a;需要程序员自己去查找对应的…