随机解调-多频点信号与伪随机序列混频

2023-05-16

 

 

随机解调的多频点信号x与伪随机序列经过混频后,被均匀的涂抹到了整个频率轴上,然后经低通滤波,低速均匀采样,最后通过OMP等算法恢复原始信号,整体上是压缩感知求解欠定方程y=Ax的思路。以下给出matlab程序和各个信号的时频域图,更容易理解。

这里的x(n)包含了两个频率:3000Hz和4000Hz,伪随机序列由matlab内部函数randsrc()生成。

首先是绘制频域稀疏信号x(n)与m序列的时域图和频域图

clc;clear all;close all;
%%-------------------------------------------------
Fs = 10000;%采样频率
dt = 1/Fs;%采样时间间隔
L = 1000;
t = (0:L-1)*dt;%生成时间向量
f1=3000;%频率1
f2=4000;%频率2
x1=cos(2*pi*f1*t);
x2=cos(2*pi*f2*t);
x  = x1+x2;

F1 = fft(x)/L;
W = (0:L/2-1)*(Fs/L);%实际频率
subplot(2,1,1);%2行3列,第一个区域
plot(t(1:40),x(1:40),'o');%绘制采样点,只取了一部分区间

figt =(0:400)/100000;
figx = cos(2*pi*f1*figt)+cos(2*pi*f2*figt);
hold on;
plot(figt,figx);
%axis([0 0.1 -2.2 2.2]);
xlabel('时间/s');ylabel('幅值/v');title('频域稀疏信号的时域图');
subplot(2,1,2);%2行1列,第一个区域
stem(W,abs(F1(1:L/2)));%stem用于绘制茎状图
xlabel('频率/Hz');ylabel('幅值');title('频域稀疏信号的频域图');


figure;
pn = randsrc(1,L);
subplot(2,1,1);%2行1列,第一个区域
stairs(t(1:100),pn(1:100));%绘制阶梯图
axis([0 0.01 -1.2 1.2]);%调节坐标轴刻度
xlabel('时间/s');ylabel('幅值/v');title('m序列时域图');
 

第一幅图片是多频点信号的时域和频域图,由于plot绘图时默认的是直接用直线连接,因此波形不够平滑,为此我绘制了一条非常秘集的线,在线上用圆圈标记出了采样点。

由第二幅图我们可以看到,伪随机序列的频谱非常杂乱。事实上伪随机序列是周期信号,一个周期是TP的话,基波频率为1/TP,周期信号只能做傅里叶级数展开,它的频谱是基波及高次谐波组成的,谐波频率是基波频率的整数倍。

figure;
y = x.*pn;%y为混频信号
subplot(2,1,1);
plot(t,y);
axis([0 0.1 -2.5 2.5]);
xlabel('时间/s');ylabel('幅值/v');title('原信号和m序列相乘后的信号的波形图');
Fy = fft(y)/L;
subplot(2,1,2);
plot(W,abs(Fy(1:L/2)));
xlabel('频率/Hz');ylabel('幅值');title('混频后的信号频谱');

混频后的频谱依然是杂乱无章,但现在频谱的低频区不只是伪随机序列的频谱,它已经包含了原始输入信号的频谱。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

随机解调-多频点信号与伪随机序列混频 的相关文章

  • OBS 录制没有声音怎么办?

    1 检查obs设置 音频 是否是默认选项 2 检查win10 是否允许使用麦克风 1 xff09 右下角出现麦克风标识 2 xff09 设置 隐私 麦克风 xff0c 查看允许放开你的麦克风是否打开 如果上述还是为解决问题 xff0c 那么
  • android.os.deadObjectException异常

    deadObjectException异常 xff0c 说明应用的service已经停止 xff0c 要么是从操作系统中丧生 xff0c 要么从应用程序中终止
  • 2038问题

    2038年一月19号 xff0c 星期二 xff0c 凌晨3点14分7秒钟的时候 xff0c 如果Linux程序员会做恶梦的话 xff0c 那么梦的内容一定是关于这个日期的 xff0c 在这一秒钟滑过后 xff0c 凡是安装着linux的计
  • ChkBugReport工具for Android

    关于这个工具 xff0c 找到的资料都比较旧了 xff0c 貌似是索尼移动的开发人员开发的 xff0c 2014年左右的文章比较多 xff0c 应该是那个时候索尼移动还是比较鼎盛的时期吧 现在已经很少看到关于这个工具的文章了 xff0c G
  • kernel panic

    Linux kernel panic是很难定位和排查的重大故障 一旦系统发生了kernel panic xff0c 相关的日志信息非常少 xff0c 而一种常见的排查方法 重现法 又很难实现 xff0c 因此遇到kernel panic的问
  • PS域业务与CS域业务的区别

    1 CS和PS是针对核心网部分而言的 xff0c 两者的不同在于交换方式 CS是电路交换 xff0c 通信之前 xff0c 资源预留 xff0c 不同用户独占各自分配的资源 xff0c 没有统计复用 PS是包交换 xff0c 不同的用户可以
  • sh_脚本语法

    介绍 xff1a 1 开头 程序必须以下面的行开始 xff08 必须方在文件的第一行 xff09 xff1a bin sh 符号 用来告诉系统它后面的参数是用来执行该文件的程序 在这个例子中我们使用 bin sh来执行程序 当编写脚本完成时
  • 【深度学习系列(三)】:基于CNN+seq2seq公式识别系统实现 (1)

    这段时间一直在做公式识别相关的项目 xff0c 尝试了传统的方法 xff0c 效果不怎么好 想到能不能使用深度学习的方法进行相关方法 然后在github找到了相关代码 xff0c 这里做下分析 具体github地址 xff1a GitHub
  • 困惑多年,为什么printf可以重定向?

    很多人在用printf函数进行串口打印的时候 xff0c 都会被告知需要重定向fputc函数 xff08 别的平台可能不是这个函数 xff09 xff0c 让字符串数据输出到指定串口 xff0c 按照网上的教程也能很快解决 但是却没人告诉你
  • 多线程并发编程

    文章目录 多线程并发编程一 多线程带来的问题相关概念 二 互斥1 互斥与互斥量2 申请互斥量I 静态方法申请互斥量 xff1a II 动态方法申请互斥量 xff1a 3 利用互斥量加锁与解锁4 销毁互斥量5 互斥量综合应用 模拟抢票6 互斥
  • 【嵌入式】---- 串口UART波形分析

    串口参数的配置 波特率 xff08 bit s xff09 xff1a 大多数使用115200 但有些芯片特殊 xff0c 具体要看数据手册中波特率的容错率 比如中微的CMS32L051就不支持115200bps 停止位 xff1a 一般选
  • 手把手教你用JAVA实现“语音合成”功能(文字转声音)标贝科技

    手把手教你用JAVA实现 语音合成 功能 xff08 文字转声音 xff09 标贝科技 前言 什么是语音合成 xff1f 将文本转换成自然流畅的语音 xff0c 本篇文章将介绍 实时在线合成 xff08 文本长度不得超过1024字节 xff
  • cv::imread(cv::String const&, int)’未定义的引用

    在 Makefile文件的195 行 LIBRARIES 43 61 opencv core opencv highgui opencv imgproc 后面添加 xff1a opencv imgcodecs opencv videoio修
  • 【C/C++】C++ 网络多线程编程

    关键词 xff1a C C 43 43 网络编程 多线程 套接字 UDP 前言 学习C 43 43 网络编程多线程编程的目的 xff1a 巩固C 43 43 xff1b 由于C 43 43 大多用于服务器 xff0c 因此网络和多线程是进入
  • 在ubuntu20.04上配置VINS_Fusion(亲测有效,一应俱全)

    最近在做科研训练的时候配置了HKUST Aerial Robotics实验室的VINS Fusion代码项目 xff0c 经历了一些编译报错的问题 xff0c 在网上查找的时候博客内容良莠不齐 xff0c 且实质针对性意见不多 xff0c
  • 无人机项目跟踪记录二十五--无线接收模块的输入输出

    无线接收模块的功能是接收无线遥控器的命令 xff08 应该对应的是无人机上面的无线接收芯片 xff09 xff0c 无人机根据接收的指令进行不同的处理 用同样方法 xff0c 无线接收模块包含的函数是 xff1a Nrf Irq void
  • UDP校验和及代码

    UDP校验和采用反码求和 xff1a 两数相加 xff0c 把超出16位加入到第0位 校验和算法 unsigned short UDPCheck unsigned short data int len int carryBit 61 0 i
  • ROS Moveit:rviz和gazebo仿真出现rviz规划后gazebo没有反应

    在用rviz规划后 xff0c 警告 WARN 1649654675 728414350 42 937000000 Failed to validate trajectory couldn 39 t receive full current
  • Libcurl实现HTTP/HTTPS客户端(支持get、post、保持session)

    前面的文章 Libcurl编译指南 Android和Windows系统 已经就libcurl在Windows和Android系统编做了详细的说明 本文档用C C 43 43 实现简单的HTTP HTTPS客户端 xff0c 支持get和po
  • 基于uart的RS232和RS485总线

    我们之前讲uart的时候就已经提过一个问题 xff0c 就是它并不是直接连接到SOC里面的 xff0c 而是经过了一个芯片的转换 这个芯片的转换就是和我们要说的rs232 485总线有关的 RS232和RS485总线其实本质就是uart 只

随机推荐