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

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

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


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


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


目录
相关文章
|
7月前
|
算法 异构计算
m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench
m基于插入导频相关峰判决法的基带信号跳频图样识别FPGA实现,包含testbench
111 0
|
4天前
|
存储 算法 异构计算
m基于FPGA的多功能信号发生器verilog实现,包含testbench,可以调整波形类型,幅度,频率,初始相位等
使用Vivado 2019.2仿真的DDS信号发生器展示了正弦、方波、锯齿波和三角波的输出,并能调整幅度和频率。DDS技术基于高速累加器、查找表和DAC,通过频率控制字和初始相位调整产生各种波形。Verilog程序提供了一个TEST模块,包含时钟、复位、信号选择、幅度和频率控制输入,以生成不同波形。
27 18
|
5天前
|
存储 Linux
【linux进程信号(二)】信号的保存,处理以及捕捉
【linux进程信号(二)】信号的保存,处理以及捕捉
|
3月前
|
算法 定位技术
GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤
GPS信号的数字接收处理matlab仿真,包括频率点搜索,捕获跟踪,相关峰检测等步骤
|
8月前
|
传感器 索引
预处理信号——将信号与不同开始时间对齐
预处理信号——将信号与不同开始时间对齐
90 0
|
8月前
|
算法
【信号去噪和正交采样】流水线过程的一部分,用于对L波段次级雷达中接收的信号进行降噪(Matlab代码实现)
【信号去噪和正交采样】流水线过程的一部分,用于对L波段次级雷达中接收的信号进行降噪(Matlab代码实现)
|
9月前
信号与系统实验
信号与系统实验
|
11月前
labview图形显示正弦曲线信号发生器频率幅值相位数字示波器滤波器频谱分析
labview图形显示正弦曲线信号发生器频率幅值相位数字示波器滤波器频谱分析
218 0
|
算法 图形学
labview信号时域分析算法
labview信号时域分析算法
88 0
|
机器学习/深度学习 传感器 算法
基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)
基于matlab模拟雷达信号检测中的恒虚警处理方法(慢门限和快门限)