预处理信号——在测量中找到信号

简介: 预处理信号——在测量中找到信号

您接收到一些数据,并想知道它是否与您测量的较长的流相匹配。即使数据被噪声破坏,相互关系也能让你做出这样的判断。


将一个环在桌面上旋转的记录加载到工作区中。截取一个一秒钟的片段,然后听一听。


load('Ring.mat')
Time = 0:1/Fs:(length(y)-1)/Fs; 
m = min(y);
M = max(y);
Full_sig = double(y);
timeA = 7;
timeB = 8;
snip = timeA*Fs:timeB*Fs;
Fragment = Full_sig(snip);
% To hear, type soundsc(Fragment,Fs)


绘制信号和片段。突出显示片段端点以供参考。


plot(Time,Full_sig,[timeA timeB;timeA timeB],[m m;M M],'r--')
xlabel('Time (s)')
ylabel('Clean')
axis tight

8272c51cc0848d00bdf851e2fd157cfa_459c3212f6d741b4b2321dff27e83d5b.png


plot(snip/Fs,Fragment)
xlabel('Time (s)')
ylabel('Clean')
title('Fragment')
axis tight

ca6fab6f09ec1adfadb2cf5fdcf442e2_e1da8e02b3e84af990e3ab2fd9b4db58.png


计算并绘制完整信号和片段的相互关系。


[xCorr,lags] = xcorr(Full_sig,Fragment);
plot(lags/Fs,xCorr)
grid
xlabel('Lags (s)')
ylabel('Clean')
axis tight

e8f7e6386722fc776f44f51bcdebc5dd_7e4a5fb36a6e4241b489d86e63862f4e.png


互相关最大的滞后是信号起始点之间的时间延迟。重新绘制信号,覆盖片段。


[~,I] = max(abs(xCorr));
maxt = lags(I);
Trial = NaN(size(Full_sig));
Trial(maxt+1:maxt+length(Fragment)) = Fragment;
plot(Time,Full_sig,Time,Trial)
xlabel('Time (s)')
ylabel('Clean')
axis tight

49ecaabdc49b543217b8b12b82940ad1_1341c985fce344dc9ba74ee8f848a670.png


重复这一过程,但在信号和片段中分别添加噪声。声音无法从噪音中分辨出来。


NoiseAmp = 0.2*max(abs(Fragment));
Fragment = Fragment+NoiseAmp*randn(size(Fragment));
Full_sig = Full_sig+NoiseAmp*randn(size(Full_sig));
% To hear, type soundsc(Fragment,Fs)
plot(Time,Full_sig,[timeA timeB;timeA timeB],[m m;M M],'r--')
xlabel('Time (s)')
ylabel('Noisy')
axis tight

8ddd06fba15201affcaf34602f07f2d8_ae0ea4a20f574ef1a7b75830512c94d1.png


尽管噪声水平很高,该程序仍能找到丢失的片段。


[xCorr,lags] = xcorr(Full_sig,Fragment);
plot(lags/Fs,xCorr)
grid
xlabel('Lags (s)')
ylabel('Noisy')
axis tight

97e0f33fdd1554b9eb6a15b5808b2c9d_e487d76ab70f445089f71fd5a1b5a684.png


[~,I] = max(abs(xCorr));
maxt = lags(I);
Trial = NaN(size(Full_sig));
Trial(maxt+1:maxt+length(Fragment)) = Fragment;
figure
plot(Time,Full_sig,Time,Trial)
xlabel('Time (s)')
ylabel('Noisy')
axis tight

d5219183d867dadfc7adc3d1f94e2f00_5cb11814cc1547cab66b5ada90d700b8.png


目录
相关文章
|
算法 异构计算
m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench
m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench
155 0
|
2月前
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
信号与系统:拉式变换(s域)求解电路的零输入、零状态响应
61 6
|
机器学习/深度学习 传感器 算法
【雷达信号分析】基于单载频矩形脉冲信号时频分析附Matlab代码
【雷达信号分析】基于单载频矩形脉冲信号时频分析附Matlab代码
|
4月前
|
算法 5G Windows
OFDM系统中的信号检测算法分类和详解
参考文献 [1]周健, 张冬. MIMO-OFDM系统中的信号检测算法(I)[J]. 南京工程学院学报(自然科学版), 2010. [2]王华龙.MIMO-OFDM系统传统信号检测算法[J].科技创新与应用,2016(23):63.
82 4
|
7月前
|
C语言
输出4种波形的函数信号发生器
设计了一款基于MCS-51单片机的函数信号发生器,能生成四种波形(正弦、方、三角、锯齿),频率范围10-100Hz,步进值0.1-10Hz。系统包括5V电源、AT89C51单片机、DAC0832、LM358、LCD1602、键盘和LED电路。通过按键切换波形、设定频率和步进值,LCD实时显示信息,LED指示波形类型。Proteus和Altium仿真验证了设计功能。
143 10
|
7月前
|
存储 算法 异构计算
m基于FPGA的多功能信号发生器verilog实现,包含testbench,可以调整波形类型,幅度,频率,初始相位等
使用Vivado 2019.2仿真的DDS信号发生器展示了正弦、方波、锯齿波和三角波的输出,并能调整幅度和频率。DDS技术基于高速累加器、查找表和DAC,通过频率控制字和初始相位调整产生各种波形。Verilog程序提供了一个TEST模块,包含时钟、复位、信号选择、幅度和频率控制输入,以生成不同波形。
210 18
|
7月前
|
存储 Linux
【linux进程信号(二)】信号的保存,处理以及捕捉
【linux进程信号(二)】信号的保存,处理以及捕捉
|
7月前
|
数据安全/隐私保护
matlab程序, 脉冲波合成与提取,滑冲效应、方向性效应,自定义脉冲模型,提取脉冲波
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
传感器 索引
预处理信号——将信号与不同开始时间对齐
预处理信号——将信号与不同开始时间对齐
192 0
|
算法
【信号去噪和正交采样】流水线过程的一部分,用于对L波段次级雷达中接收的信号进行降噪(Matlab代码实现)
【信号去噪和正交采样】流水线过程的一部分,用于对L波段次级雷达中接收的信号进行降噪(Matlab代码实现)